2

各プレイヤーがスレッドとして実装される 4 プレイヤーのサイコロ ゲームの実装を提供したいと考えています。各プレイヤーは、プレイヤー番号順にサイコロを振るチャンスを得ます。各投げダイスは、1 から 6 までの数字のみを返します。いずれかのプレイヤーが 25 ポイント以上の勝者を獲得するたびに、ゲームは停止します。

クラスの作成を考えています

ダイスを扱うためのダイス

すべてのスレッドとプレイヤー スコアを処理するためのボード

ゲーム を開始するためのゲーム

私のクラスのサイコロ

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();
    }

}

ロジックを考えることができず、クラスのボードでどこから始めればよいかを決めることができません。ボードコードで私を助けてください

これは課題や宿題ではありません。自分でやりたいのですが、スレッド化の同期について深い考えがありません

私はコードを作成しようとしていますが、完全なチュートリアルを求めているのではなく、プレイヤー 1 がチャンスを逃した後にプレイヤー 1(スレッド) が実行されたときに順序を設定する方法を尋ねているだけです。

4

1 に答える 1