0

モノポリー ボード ゲームのプレーヤー クラスを作成しています。プレーヤーをボード上で移動させ、そのプレーヤーの位置を保存する方法が正確にはわかりません。を使用して40か所の配列を作成しました

    BoardSquare[] square = new BoardSquare[40];

を使用して2つのダイを作成しました

    diceOne=1+(int)(Math.random()*6);
    diceTwo=1+(int)(Math.random()*6);

    roll=diceOne+diceTwo;

これはこれまでの私のプレーヤークラスのコードです

class Player
{
private String name;
private String token;
private int location;
private int balance;

public Player()

{
        name = "";
        token = "";
        location = 0;
        balance = 1500;
        player = (name+token+location+balance);

} 


public Player(String name, String token, int location, int balance)

{
        this.name = name;
        this.token = token;
        this.location = location;
        this.balance = balance;
}

プレーヤーをゼロに初期化してから、ロールしたサイコロの値を追加して、プレーヤーにボード上の位置を与える必要があることに気付きました。ただし、スペースがなくなったときにどうなるか、for ループを適切に開発する方法などはよくわかりません。いくつかの例を見てきましたが、ボード ゲームのロジックを適切に開発する方法がよくわかりません。この質問の範囲外のボード ゲーム開発に関する提案は大歓迎です。どうも。

4

2 に答える 2

0

プレーヤーの新しい位置を更新する直前に、次のチェックを行います。

if(position>40)
{
position=position-40
}

変更された位置をお金の詳細で更新する

于 2013-11-15T07:56:27.770 に答える
0

モジュロ演算子を使用して、位置をラップできます。次に例を示します。

int newPosition = (oldPosition + diceRoll) % 40;

Go のパスに関しては、多くのオプションがあります。Go をインデックス 0 として定義する場合が最も簡単です。モジュロ 40 の前の位置を計算し、40 より大きいかどうかを確認できます (ラップアラウンドしようとしていることを意味します)。また、新しい位置が古い位置よりも小さいかどうかを確認することもできます (これは、ダイスの目が 40 以上になることがないと仮定して機能します)。

于 2013-11-15T07:51:45.587 に答える