【发布时间】:2013-07-24 14:25:53
【问题描述】:
我想提供一个 4 人骰子游戏的实现,其中每个玩家都被实现为一个线程。每个玩家都有机会按照玩家编号的顺序掷骰子。每个投掷骰子只返回一个数字 1 到 6。每当任何玩家得分 25 分或更多打印获胜者玩家时,游戏就会停止。
我正在考虑创建类
骰子用于处理骰子
Board用于处理所有线程和玩家分数
TheGame 用于开始游戏
我的班级骰子
import java.util.Random;
public class Dice {
Random dice;
public Dice()
{
dice=new Random();
}
public int throwDice()
{
int a= dice.nextInt(70);
a=a/10;
if (a==0)
return 1;
else return a;
}
}
我的玩家类
public class Player extends Thread {
Board board;
int num;
public Player(Board b,int n)
{
board=b;
num=n;
}
public void run()
{
System.out.println("Player "+num+" is started, playing game...");
while(board.flag)
{
board.play(num);
}
}
}
游戏类
public class TheGame {
public static void main(String[] args) {
System.out.println("Initializing board...");
Board b=new Board(); //Creating object of class board
System.out.println("Initializing players...");
Player p1=new Player(b,1); // Every player is Thread
Player p2=new Player(b,2);
Player p3=new Player(b,3);
Player p4=new Player(b,4);
p1.start(); //Starting Thread
p3.start();
p2.start();
p4.start();
}
}
我无法思考逻辑或决定从哪里开始上课。 请帮我提供板代码
这不是作业或家庭作业。 我想自己做,但对线程中的同步没有任何深入的了解
【问题讨论】:
-
如果你的导师告诉你在基于文本的骰子游戏中使用多线程,我会找一个新导师。
-
@hexafraction 我只是想尝试一下。如果你能提供帮助,那就太好了
-
在答案中放置完整的线程教程相对困难。我建议the Oracle tutorial 并在您有具体问题时询问。
-
你需要同步逻辑。阅读本教程的更多内容或重新表述您的问题以更具体。
-
我在我的问题中添加了代码和更多详细信息希望它会再次打开。
标签: java multithreading sync