黑马程序员技术交流社区

标题: 猜数字游戏,虽不是原创,但对于初学者来说,是一个很好的例子,供大家参考。 [打印本页]

作者: shw16888    时间: 2015-4-9 15:37
标题: 猜数字游戏,虽不是原创,但对于初学者来说,是一个很好的例子,供大家参考。
  1. /**
  2. 猜数字游戏
  3. 摘要
  4. 这个游戏涉及到game与player两个对象。game会产生介于0~9之间的随机数字,而3个player对象会
  5. 猜测该数字
  6. 类:
  7. GuessGame.class Player.class  GameLauncher.class
  8. 程序逻辑
  9. 1.GameLanucher这个类带有main()方法,是应用程序的入口点。
  10. 2.main()中会创建出GuessGame对象,并调用它的startGame方法。
  11. 3.startGame()方法是游戏的起点。它会创建3个player,然后挑出要猜测的随机数字。它会
  12. 要求player猜测并检查结果,过程会被列出来

  13. */
  14. public class GuessGame
  15. {
  16.         //用3个实例变量分别表示3个Player
  17.         Player p1;
  18.         Player p2;
  19.         Player p3;

  20. public void startGame()
  21. {
  22. //创建出Player对象
  23. p1=new Player();
  24. p2=new Player();
  25. p3=new Player();

  26. //声明3个变量来保存是否猜中
  27. int guessp1=0;
  28. int guessp2=0;
  29. int guessp3=0;

  30. //声明3个变量来保存猜中的数字
  31. boolean p1isRight=false;
  32. boolean p2isRight=false;
  33. boolean p3isRight=false;

  34. //产生谜底数字
  35. int targetNumber=(int)(Math.random() *10);
  36. System.out.println("I'm thinking of a number between 0 and 9....");
  37. while(true){
  38. System.out.println("Number to guess is "+targetNumber);

  39. // 调用Player的guess()方法
  40. p1.guess();
  41. p2.guess();
  42. p3.guess();

  43. //取得每个Player所猜测的数字并将它列出
  44. guessp1=p1.number;
  45. System.out.println("Player one guessed" +guessp1);
  46.   guessp2=p2.number;
  47. System.out.println("Player one guessed" +guessp2);
  48.   guessp3=p3.number;
  49. System.out.println("Player one guessed" +guessp3);

  50. //检查是否猜中,若是猜中则去设定是否猜中的变量
  51. if (guessp1==targetNumber)
  52. {
  53.         p1isRight=true;
  54. }
  55. if (guessp2==targetNumber)
  56. {
  57.         p2isRight=true;
  58. }
  59.         if (guessp3==targetNumber)
  60. {
  61.         p3isRight=true;
  62. }

  63. //如果有一或多个猜中。。。
  64. if (p1isRight||p2isRight||p3isRight)
  65. {
  66.         System.out.println("We have a winner!");
  67.         System.out.println("Player one got it right?"+p1isRight);
  68.         System.out.println("Player two got it right?"+p2isRight);
  69.         System.out.println("Player three got it right?"+p3isRight);
  70.         System.out.println("Game is Over!");
  71.         break;//游戏结束,终止循环
  72. }
  73. else{
  74. //都没有猜到,所以要继续下去。重复循环继续猜下去
  75. System.out.println("Players will have to try again.");

  76. }//if/else结束
  77. }//循环结束
  78. }//方法结束
  79. }//类结束

  80. //运行猜数字游戏
  81. public class Player
  82. {
  83.         int number=0;//要被猜的数字
  84.         public void guess(){
  85.         number=(int)(Math.random()*10);
  86.                 System.out.println("I'm guessing "+number);
  87.         }
  88. }
  89.         public class GameLauncher
  90.         {
  91.         public static void main(String[] args)
  92.         {
  93.                 GuessGame game =new GuessGame();
  94.                 game.startGame();
  95.         }

  96.         }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2