java猜数字多线程
时间: 2023-11-21 16:59:18 浏览: 83
猜数字小游戏JAVA程序报告.doc
在Java中实现猜数字的多线程游戏可以通过以下步骤完成:
1. 创建一个主线程类,用于控制游戏的开始和结束。
2. 创建一个猜数字的类,用于生成随机数字并接受玩家的猜测。
3. 创建一个猜测线程类,用于处理玩家的猜测并给出相应的提示。
4. 在主线程中创建一个猜数字对象和若干个猜测线程对象,并启动它们。
下面是一个示例代码,演示了如何在Java中实现猜数字的多线程游戏:
```java
import java.util.Random;
import java.util.Scanner;
public class GuessNumberGame {
private int targetNumber;
private boolean isGameOver;
public GuessNumberGame() {
Random random = new Random(); targetNumber = random.nextInt(100) + 1;
isGameOver = false;
}
public synchronized void guess(int number) {
if (isGameOver) {
return;
}
if (number == targetNumber) {
System.out.println("Congratulations! You guessed the correct number.");
isGameOver = true;
} else if (number < targetNumber) {
System.out.println("Too low. Try again.");
} else {
System.out.println("Too high. Try again.");
}
}
public static void main(String[] args) {
GuessNumberGame game = new GuessNumberGame();
int numThreads = 3; // 设置猜测线程的数量
for (int i = 0; i < numThreads; i++) {
Thread thread = new Thread(new GuessingThread(game));
thread.start();
}
}
}
class GuessingThread implements Runnable {
private GuessNumberGame game;
public GuessingThread(GuessNumberGame game) {
this.game = game;
}
@Override
public void run() {
Scanner scanner = new Scanner(System.in);
while (!game.isGameOver) {
System.out.print("Enter your guess: ");
int guess = scanner.nextInt();
game.guess(guess);
}
scanner.close();
}
}
```
在上面的代码中,GuessNumberGame类表示猜数字游戏,GuessingThread类表示猜测线程。主线程中创建了一个GuessNumberGame对象和若干个GuessingThread对象,并启动它们。每个GuessingThread对象会不断地接受玩家的猜测并调用GuessNumberGame对象的guess方法进行处理。当玩家猜中正确的数字时,游戏结束。
阅读全文