複数のスレッドを同時に実行することになっているプログラムがあります。
これはカードゲームの 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 と関係があることは知っていますが、使い方がわかりません。
はい、それは宿題ですが、私はそれのほんの一部を求めているだけです。完全な答えは望んでいません。正しい方向に私を後押しする何かだけです.