在二维垄断游戏阵列中移动玩家

时间:2013-11-15 07:46:26

标签: java arrays

我正在为垄断棋盘游戏创建玩家类。我不确定如何让玩家在棋盘上移动然后存储玩家的位置。我使用

创建了一个包含40个位置的数组
    BoardSquare[] square = new BoardSquare[40];

我用

创建了两个模具
    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循环等等。我看了一些例子,但我不确定如何正确开发棋盘游戏的逻辑。任何关于棋盘游戏开发的建议都超出了本问题的范围,这是非常受欢迎的。 THX。

2 个答案:

答案 0 :(得分:0)

您可以使用modulo operator来包裹位置,例如:

int newPosition = (oldPosition + diceRoll) % 40;

至于传球Go,你有很多选择。如果将Go定义为索引0,这是最简单的。您可以在模40之前计算位置,并检查它是否大于40(意味着它将要环绕)。您还可以检查新位置是否小于旧位置(假设您不能使用骰子滚动> = 40)。

答案 1 :(得分:0)

在更新播放器的新位置之前,请执行以下检查:

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

使用省钱细节更新已更改的位置