猜数字游戏

import java.io.*;
import java.util.*;

class GuessGame{
	Player p1;		//Player是后面才写的类,但是可以使用(这一点与c/c++的前置声明不同)
	Player p2;		//用3个实例变量分别表示3个Player对象
	Player p3;
	
	public void startGame(){
		p1=new Player();	//创建出Player对象
		p2=new Player();
		p3=new Player();
		
		int guessp1=0;		//声明3个变量来保存猜测的数字
		int guessp2=0;	
		int guessp3=0;
		
		boolean p1isRight=false;	//声明3个变量来保存是否被猜中
		boolean p2isRight=false;
		boolean p3isRight=false;
		
		int targetNumber=(int)(Math.random()*10);	//产生谜底数字
		System.out.println("I'm thingking of a number between 0 and 9...");
		
		while(true){
			System.out.println("Number to guess is "+targetNumber);
			
			p1.guess();		//调用Player的guess()方法
			p2.guess();
			p3.guess();
			
			guessp1=p1.number;		//取得每个Player所猜测的数字并将它列出
			System.out.println("Player one guessed "+guessp1);
			
			guessp2=p2.number;
			System.out.println("Player two guessed "+guessp2);
			
			guessp3=p3.number;
			System.out.println("Player three guessed "+guessp3);
			
			if(guessp1==targetNumber){		//检查是否猜中
				p1isRight=true;
			}
			if(guessp2==targetNumber){
				p2isRight=true;
			}
			if(guessp3==targetNumber){
				p3isRight=true;
			}
			
			if(p1isRight||p2isRight||p3isRight){	//如果有一个或多个猜中......
				System.out.println("We have a winner!");
				System.out.println("Player one got it right? "+p1isRight);
				System.out.println("Player two got it right? "+p2isRight);
				System.out.println("Player three got it right? "+p3isRight);
				System.out.println("Game is over");
				break;	//游戏结束,终止循环
			}
			else{
				System.out.println("Players will have to try again.");
			}
		}
	}
}

class Player{
	int number=0;	//要被猜的数字
	
	public void guess(){
		number=(int)(Math.random()*10);		//Math.random()产生的是[0,1)
		System.out.println("I'm guessing "+number);
	}
}

public class GameLauncher{	//应用程序的入口,整个源程序只有这一个类是声明为public的(GuessGame类和Player类都不能声明为public)
	public static void main(String[] args){
		GuessGame game=new GuessGame();
		game.startGame();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值