我有一个应该同时运行多个线程的程序。
这是纸牌游戏 Uno 的模拟,你应该为每个玩家设置一个线程。
现在问题来了:只要玩家手上的牌堆上的牌的数量和颜色与该牌相同,但轮到该牌手,他可以“切线”并放下牌。然后切线的玩家旁边的玩家继续。
我有一个类 Player :
class Player implements Runnable {
public boolean isHisTurn = false;
public Thread makeMove(final Card topCard, final boolean isHisTurn) {
Thread thread = new Thread(this);
thread.start();
return thread;
}
}
thread.start() 然后启动 run 方法,在这里我有我的逻辑和决策。在 run() 开始时,线程随机休眠 300 - 700 毫秒,以便在此时间范围内进行切割线。
我的问题是,我是否应该将线程存储在某个地方,如果是,那么当轮到其他玩家时,我可以在哪里以及如何在线程之间切换?我知道它与布尔isHisTurn有关,我只是不知道如何使用它。
是的,这是家庭作业,但我只要求其中的一小部分,我不想要一个完整的答案,只是为了把我推向正确的方向。