如何在蛇和梯子中获得特定的初始骰子运动

时间:2014-03-31 23:49:05

标签: java javafx

非常感谢任何帮助!

我是java的新手,需要为大学项目制作java应用程序(蛇和梯子),但却被卡住了。

我面对骰子动作的问题我已完成编码,但它提供随机数,问题是:

我曾经告诉过,只有骰子值为1或6才能开始游戏。 那么我该如何预定它以使我的骰子的初始值为1或6?

第二个问题,如果玩家的骰子值为6,他应该再获得一次机会。

代码:

if(togglePlayer==1){
    turnIndicator.setText("Player A's turn");
    togglePlayer=0; // using togglePlayer to switch between players

    if(cheatInjector==0){
                face=1;    
                cheatInjector=1;
    }                                                                                                                                                                
    else{face=r.nextInt(6);

    }
    switch (face)
    {

        case 0:
            rollDice1(primaryStage);
            face = 1;

            break;
        case 2:
            rollDice2(primaryStage);
            face = 2;
            break;
        case 3:
            rollDice3(primaryStage);
            face = 3;
            break;
        case 4:
            rollDice4(primaryStage);
            face = 4;
            break;
        case 5:
            rollDice5(primaryStage);
            face = 5;
            break;
        case 6:
            rollDice6(primaryStage);
            face = 6;

            break;
    }

2 个答案:

答案 0 :(得分:0)

  

我一直告诉说,只有骰子值才能开始游戏   是1或6.所以我如何预定义它,以便我的骰子的初始值是   1还是6?

这里有两个不同的问题。

如果您的骰子卷是1或6,要开始游戏,应该如下所示:

int diceRoll = rollDice();
if (diceRoll == 1 || diceRoll == 6) {
    // start game
}

预定义您的骰子,只需:

int diceRoll = 1; 
// or
int diceRoll = 6;
  

第二个问题,如果玩家的骰子值是6,他应该得到另一个   机会。

你在这里没有真正提出问题,但是如果你总是想在6岁时再次滚动,你可以这样做:

int diceRoll = 0;
do {
    diceRoll = rollDice();
} while (diceRoll == 6);

但是还有很多其他方法可以实现它。

只是给你一个开始而不是做功课的地方。

答案 1 :(得分:0)

public static int rollDice(int repeat) {
    System.out.println("ROLLING DICE...PRESS ANY KEY TO CONTINUE:");
    Scanner in = new Scanner(System.in);
    String cont = in.nextLine();
    int rolledNo = (int) (Math.random() * 6) + 1;
    if (rolledNo == 6) {
        System.out.println("NUMBER IS:" + rolledNo + ". ANOTHER CHANCE.");
        rollDice(repeat++);
    } else {
        System.out.println("NUMBER IS:" + rolledNo);
    }
    int finalCount = rolledNo + (repeat * 6);
    return finalCount;
}