当前位置:   article > 正文

龟兔赛跑-Race_用观察者模式实现龟兔赛跑

用观察者模式实现龟兔赛跑

案例:龟兔赛跑-Race

 1.首先来个赛道距离,然后来个要离终点越来越近;

 2.判断比赛是否结束;

 3.打印出胜利者;

 4.龟兔赛跑开始;

 5.故事中乌龟是胜利者,兔子需要睡觉,所以我们来模拟兔子睡觉;

 6.终于,乌龟赢得比赛;

代码

  1. package race;
  2. //模拟龟兔赛跑
  3. public class Race implements Runnable {
  4. private static String winner;
  5. @Override
  6. public void run() {
  7. for (int i = 0; i <= 100; i++) {
  8. //模拟兔子休息
  9. if (Thread.currentThread().getName().equals("兔子") && i % 50 == 0) {
  10. try {
  11. Thread.sleep(1);
  12. } catch (InterruptedException e) {
  13. e.printStackTrace();
  14. }
  15. }
  16. //判断比赛是否
  17. boolean falg = gameOver(i);
  18. //如果比赛结束就停止程序
  19. if (falg) {
  20. break;
  21. }
  22. System.out.println(Thread.currentThread().getName() + ":跑了" + i + "步");
  23. }
  24. }
  25. // 判断是否完成比赛
  26. private boolean gameOver(int steps) {
  27. //判断是否有胜利者
  28. if (null != winner) {
  29. return true;
  30. } else {
  31. if (steps >= 100) {
  32. winner = Thread.currentThread().getName();
  33. System.out.println("winner is " + winner);
  34. return true;
  35. }
  36. }
  37. return false;
  38. }
  39. public static void main(String[] args) {
  40. Race race = new Race();
  41. new Thread(race, "乌龟").start();
  42. new Thread(race, "兔子").start();
  43. }
  44. }

 运行结果

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/64411
推荐阅读
相关标签
  

闽ICP备14008679号