Head first java中猜数字游戏的原理

来源:8-1 什么是类和对象

差不多先生1234

2016-04-26 16:34

package book.java;

public class Guessgame {
	/**
	 * 首先创建三个玩家对象
	 */
	Player p1;
	Player p2;
	Player p3;
	
	
	public void startGame(){
		p1=new Player();
		p1=new Player();
		p1=new Player();
		//定义三个变量用来保存玩家猜测的值
		int a;
		int b;
		int c;
		
		//系统随机生成数字
		int targetNum=(int) (Math.random()*10);
		System.out.println("系统给出需要玩家猜测的数据");
//		while(true){
			System.out.println("待猜的数字为:"+targetNum);
			
			//此时应该调用定一个guess方法,用来给出玩家定义的数字
			//将该数字如系统给出的数字相匹配,给出true或者false
			
			p1.guess();
			p2.guess();
			p3.guess();
			//将得到的每一个玩家猜测值都赋给一个新值
			
			
			a=p1.num;
			b=p1.num;
			c=p1.num;
			
			
			
			//打印输出每一个玩家的猜测值
			System.out.println("第一个玩家猜测值为:"+a);
			System.out.println("第二个玩家猜测值为:"+b);
			System.out.println("第三个玩家猜测值为:"+c);
			//这里用一个for循环来比较玩家的猜测值和系统随机给出值是否一致
			if(a==targetNum){
				System.out.println("第一个玩家猜测正确");
			
			}else{
				System.out.println("第一个玩家猜测错误");
			}
			if(b==targetNum){
				System.out.println("第二个玩家猜测正确");
			
			}
			else{
				System.out.println("第二个玩家猜测错误");
			}
			if(c==targetNum){
				System.out.println("第三个玩家猜测正确");
			
			}else{
				System.out.println("第三个玩家猜测错误");
			}
			
			
		
	}//方法体结束

}//类结束
package book.java;

public class GameLauncher {

	public static void main(String[] args) {
	Guessgame gg=new Guessgame();
	gg.startGame();
		

	}

}


package book.java;

public class Player {
	int num=0;
	
	//定义一个猜测的方法
	public void guess(){
		num=(int) (Math.random()*10);
		//System.out.println("玩家猜测数字为:"+num);
	}

}



为什么我的p1调用不了guess方法啊?完全打印不出来,求大神看看问题在哪儿?


写回答 关注

1回答

  • LeePaddy
    2016-04-26 17:01:52
    已采纳

    估计你创建对象时是直接复制粘贴吧。全将对象赋给p1了。13-15   36-38

    差不多先生1...

    确实啊,我忘记,感谢

    2016-04-27 16:53:14

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题