当前位置: 首页 > 知识库问答 >
问题:

掷骰子游戏问题

袁运锋
2023-03-14

代码的目的是让两个玩家掷一对骰子。第一个掷出20分的玩家赢得比赛。我很难弄清楚如何正确地跟踪滚动的总和;它只给我当前回合的总和,然后当每个玩家滚动10次时游戏就结束了。

我如何正确地计算每个玩家游戏的总和,然后当其中一个玩家的总和等于20时停止循环?

int a, b, c, d;
int playerone=0, playertwo=0;

Random gen = new Random();
a=gen.nextInt(6)+1;
b=gen.nextInt(6)+1;
c=gen.nextInt(6)+1;
d=gen.nextInt(6)+1;

while(playerone!=20 || playertwo!=20) {
    playerone=a+b;
    playertwo=c+d;

    System.out.println("Player 1 rolled " + a + " and a " + b );
    System.out.println("Player 1 now has " + playerone);
    System.out.println("Player 2 rolled " + c + " and a " + d );
    System.out.println("Player 2 now has " + playertwo);

    a=gen.nextInt(6)+1;
    b=gen.nextInt(6)+1;
    c=gen.nextInt(6)+1;
    d=gen.nextInt(6)+1;

    playertwo+=a+b;

    playerone+=c+d;
    if(playerone==20) 
        System.out.println("player one wins ");
    else if (playertwo==20)
        System.out.println("player two wins ");             
    }       
}

共有1个答案

章建木
2023-03-14

在循环中设置playerone=a+bplayertwo=c+d,这意味着总数仅基于最新的滚动。取而代之的是,在循环之前执行此操作。

不过,实际上,在循环中合并所有骰子滚动和输出会更好,这样您就可以在更新后输出新的总数,而不是在更新前输出。

AB是一号玩家还是二号玩家这一点上也不一致。您应该将更新玩家和掷骰子的所有代码移到方法中。

 类似资料:
  • 我试图为一个游戏的掷骰子程序,其中用户输入一个下注金额和2个六面骰子滚动,如果7或11是滚动,他们赢了。如果掷2,3或12就输了,如果掷其他任何一个数字,它就显示该数字为一个点。它会继续掷骰子,直到掷7或该点为止,如果掷7就输了,否则就赢了。出于某种原因,在掷骰子时,他会掷骰子,然后再掷一次,看看他们是否赢了或输了。我不知道如何解决这个问题,任何帮助都不会附带

  • 程序在最后未能计算出正确的和。我做错了什么?如有任何帮助,不胜感激。谢了。

  • 本文向大家介绍Java编写掷骰子游戏,包括了Java编写掷骰子游戏的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接奔主题。 **多线程&&观察者模式 题目要求:《掷骰子》窗体小游戏,在该游戏中,玩家初始拥有1000的金钱,每次输入押大还是押小,以及下注金额,随机3个骰子的点数,如果3个骰子的总点数小于等于9,则开小,否则开大,然后判断玩家是否押对,如果未押对则扣除下注金额,如果押对则奖

  • 我是一个C++初学者,我需要创建一个骰子游戏模拟掷两个骰子。我对头文件的使用感到很困惑。但首先,为什么我需要返回骰子的票面号码?其次,int roll函数做什么?来重置价值观和面孔?如果是,默认值是多少?而最后一个函数骰子(int n),我是否使用这个函数来控制骰子值的最大总和?函数必须有一个具有以下函数的类头文件:

  • 谁能告诉我代码出了什么问题吗?

  • 提示:“写一个程序对着电脑玩猪游戏。在每个回合,当前玩家将掷出一对骰子并累积点数。目标是在你的对手之前达到100分或更多。(为了测试的目的,使用30点而不是100点)如果在任何回合中,玩家掷出一个1,则该回合积累的所有点数都将被没收,骰子的控制权将转移到另一个玩家身上。如果玩家在一个回合中滚动两个1,则该玩家失去迄今为止积累的所有点数,控制权转移到另一个玩家身上。玩家可以在每次掷骰后自愿交出骰子的