猜数游戏(JAVA)

GuessGame.java

package com.wondersgroup.game;

/**
 * 猜数游戏
 * 
 * @author Administrator
 * 
 */
public class GuessGame {
	// 创建3个player对象
	Player p1;
	Player p2;
	Player p3;

	// 启动游戏
	public void startGame() {
		p1 = new Player();
		p2 = new Player();
		p3 = new Player();

		// 用来保存猜测的数字
		int guessp1 = 0;
		int guessp2 = 0;
		int guessp3 = 0;

		// 判断猜测数字是否正确
		boolean p1isRight = false;
		boolean p2isRight = false;
		boolean p3isRight = false;

		// 产生谜底数字
		int targetNumber = (int) (Math.random() * 10);
		System.out.println("产生的谜底数在0-9之间");

		while (true) {

			System.out.println("target number is " + targetNumber);
			// 调用player的guess()方法
			p1.guess();
			p2.guess();
			p3.guess();
			// 取得猜测者猜出的数字
			guessp1 = p1.number;
			System.out.println("player1 guess" + guessp1);
			guessp2 = p2.number;
			System.out.println("player2 guess" + guessp2);
			guessp3 = p3.number;
			System.out.println("player3 guess" + 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("player1 get it?" + p1isRight);
				System.out.println("player2 get it?" + p2isRight);
				System.out.println("player3 get it?" + p3isRight);
				System.out.println("game is over");
				break;
			} else {
				// 如果没有猜中,游戏继续循环
				System.out.println("player have to try again");
			}
		}
	}
}

Player.java

package com.wondersgroup.game;

public class Player {

	//要被猜测的数字
	int number = 0;

	public void guess() {
		number = (int) (Math.random()*10);
		System.out.println("I guess number" + number);
	}

}

GameLaucher.java

package com.wondersgroup.game;

public class GameLaucher {

	public static void main(String[] args) {
		GuessGame guessGame = new GuessGame();
		guessGame.startGame();
	}

}

在这里插入图片描述

猜数游戏是一款常见的编程练习,其中通常包含一个计时器功能,用来增加游戏的互动性和挑战性。在Java中,你可以使用`java.util.Timer`或者`java.time`包中的`TimerTask`和`Duration`类来实现计时器。 以下是一个简单的猜数字游戏Java代码示例,包含了计时器功能: ```java import java.util.Random; import java.util.Timer; import java.util.TimerTask; import java.time.Duration; public class GuessNumberGame { private int secretNumber; private int guess; private Timer timer; private long startTime; public void startGame() { // 生成随机数作为秘密数字 secretNumber = new Random().nextInt(100) + 1; System.out.println("欢迎来到猜数字游戏,你有60秒的时间猜测一个1到100之间的数字。"); // 初始化计时器 timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if (guess < secretNumber) { System.out.println("太小了,你还有59秒(当前剩余时间)"); } else if (guess > secretNumber) { System.out.println("太大了,你还有59秒(当前剩余时间)"); } else { System.out.println("恭喜你,你猜对了!用时" + Duration.between(startTime, System.currentTimeMillis()).toSeconds() + "秒。"); endGame(); } } }, 0, 1000); // 每隔1秒检查一次,总共60秒 startTime = System.currentTimeMillis(); // 记录开始时间 askForGuess(); } private void askForGuess() { try { guess = Integer.parseInt(System.console().readLine("请输入你的猜测: ")); } catch (Exception e) { System.out.println("输入无效,请输入一个整数。"); askForGuess(); } } private void endGame() { timer.cancel(); // 停止计时器 timer.purge(); // 清理已取消的任务 System.out.println("游戏结束,感谢参与!"); } public static void main(String[] args) { new GuessNumberGame().startGame(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值