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

掷骰子游戏骰子掷在infinte循环中

钱焕
2023-03-14

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

 static int RollDice()
    {

        int roll;


        Random random = new Random();
        int die1 = 0;
        int die2 = 0;

        die1 = random.Next(1,6);

        die2 = random.Next(1,6);

        roll = die1 + die2;
        Console.WriteLine($"You rolled {die1} + {die2} = {roll}");
        return roll;

    }

    static void processCraps()
    {

        string gameStatus;
        double betAmount;
        double netWinning = 0;
        int point;


            do
            { 
                Console.WriteLine("Enter the amount to bet");
                betAmount = double.Parse(Console.ReadLine());



                if (RollDice() == 2 || RollDice() == 3 || RollDice() == 12)
                {
                    Console.WriteLine($"You lost {betAmount}");
                    netWinning = netWinning - betAmount;

                }
                else if (RollDice() == 7 || RollDice() == 11)
                {
                    Console.WriteLine($"You won {betAmount}");
                    netWinning = netWinning + betAmount;
                }
                else if (RollDice() != 2 || RollDice() != 3 || RollDice() != 12 || RollDice() != 7 || RollDice() != 11)
                {

                    point = RollDice();
                    Console.WriteLine($"Point is {point}");
                   for(int rollCount =0; rollCount <= point; RollDice() )
                {
                   if(RollDice() == 7)
                    {
                        Console.WriteLine($"You lost {betAmount}");
                        netWinning = netWinning - betAmount;
                    }
                   else if(RollDice() == point)
                    {
                        Console.WriteLine($"You won {betAmount}");
                        netWinning = netWinning + betAmount;
                    }

                }

                }

                Console.WriteLine("Do you want to play again (y/n)");
                gameStatus = Console.ReadLine();



            } while (gameStatus == "y") ;
            Console.WriteLine($"Your net winning is {netWinning}");

        }

共有1个答案

钮才哲
2023-03-14

你打电话给RollDice的次数太多了。在他们输入下注金额并将结果存储在变量中后调用一次。然后使用该变量检查滚动的值。

static void processCraps()
{
    string gameStatus;
    double betAmount;
    double netWinning = 0;
    int point;


    do
    { 
        Console.WriteLine("Enter the amount to bet");
        betAmount = double.Parse(Console.ReadLine());


        var diceRoll = RollDice();
        if (diceRoll == 2 || diceRoll == 3 || diceRoll == 12)
        {
            Console.WriteLine($"You lost {betAmount}");
            netWinning = netWinning - betAmount;
        }
        ... // repeat for the other rolls
    }

}
 类似资料:
  • 代码的目的是让两个玩家掷一对骰子。第一个掷出20分的玩家赢得比赛。我很难弄清楚如何正确地跟踪滚动的总和;它只给我当前回合的总和,然后当每个玩家滚动10次时游戏就结束了。 我如何正确地计算每个玩家游戏的总和,然后当其中一个玩家的总和等于20时停止循环?

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

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

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

  • 我正在用java创建一个掷骰子的应用程序。我有一个掷骰子的“骰子”类,和一个使用“骰子”的多个实例变量的“骰子”类。但是,它只为我的值返回0。骰子类本身可以工作,并且会掷出一个随机数,但是我不知道如何在我的“骰子”类中得到多个掷骰子。感谢任何帮助。 骰子类 模具等级

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