Head First Java第2章猜数字游戏代码修改

来源:互联网 发布:mysql数据库修改密码 编辑:程序博客网 时间:2024/04/28 18:23

Head First Java第2章猜数字游戏代码运行会报错,一个java文件中不会有1个以上的public类,因而报错。

修改:

class GuessGame{//代表player的3个实例变量Player p1;Player p2;Player p3;//startGame()方法是游戏的起点。创建3个player,然后挑出要猜测的随机数字。它会要求player猜测并检查结果,过程会被列出来public void startGame(){//创建出Player对象p1=new Player();p2=new Player();p3=new Player();//声明3个变量来保存player猜测的数字int guess1 = 0;int guess2 = 0;int guess3 = 0;//声明3个变量来保存是否猜中boolean p1isRight = false;boolean p2isRight = false;boolean p3isRight = false;//产生谜底数字int targetNumber = (int) (Math.random() * 10);//随机产生0~9的数字System.out.println("想象0到9之间的某个数……");while(true){System.out.println("谜底是"+targetNumber);//调用Player的guess()方法,开始猜数字p1.guess();p2.guess();p3.guess();//取得player猜测的数字并列出guess1=p1.number;System.out.println("玩家1 猜的数字是"+guess1);guess2=p2.number;System.out.println("玩家2 猜的数字是"+guess2);guess3=p3.number;System.out.println("玩家3 猜的数字是"+guess3);//检查是否猜中,并将结果赋值给是否猜中的变量if (guess1 == targetNumber){p1isRight=true;System.out.println("玩家1 猜对了!");}if (guess2 == targetNumber){p2isRight=true;System.out.println("玩家2 猜对了!");}if (guess3 == targetNumber){p3isRight=true;System.out.println("玩家3 猜对了!");}//如果有一个或者多个猜中,循环结束if (p1isRight || p2isRight || p3isRight){break;}else{System.out.println("没人猜中,游戏继续!");}}}}class Player{int number = 0;//此player猜测的数字//执行猜测方法public void guess(){number = (int) (Math.random() * 10);System.out.println("我猜的数字是"+number);}}//GameLauncher带有main方法,是应用程序的入口点public class GameLauncher{//创建出GuessGame对象,并调用它的startGame()方法public static void main(String[] args){GuessGame game=new GuessGame();game.startGame();System.out.println("游戏结束!");}}

修改的地方:

1、GuessGame类和Player类的public删掉,但是方法还是public的,要不然类外无法调用

2、Player中的number是个变量,不是方法,startGame()方法调用时当成方法了

原创粉丝点击