首页 > 解决方案 > 使用掷骰子方法的 C# 掷骰子游戏

问题描述

下面的代码是用于掷骰子游戏的。我不确定代码的逻辑是否正确。我想对其进行测试,但是当我运行此代码时,没有给出任何输出。它编译并显示一个没有输出的空白屏幕。我无法弄清楚为什么什么都没有显示。此外,任何关于代码逻辑的建议都将不胜感激。当最初未滚动 2、3、7、11 或 12 时,我对如何执行重新滚动过程感到困难。谢谢

对于那些不熟悉游戏的人:掷出 2 个骰子,掷出 7 或 11 即为获胜。2、3 或 12 是损失。任何其他数字都成为“点”,玩家重新滚动直到点或 7 被滚动。匹配点就是胜利。这一次 7 是损失。

class Craps
{
    const int dieSides = 6;

    int roll;
    //const int repeatGame = 1000;

    Random random = new Random();

    public void RollDice()
    {
        int die1 = 0;
        int die2 = 0;

        die1 = random.Next(6) + 1;

        die2 = random.Next(6) + 1;

        roll = die1 + die2;
        Console.WriteLine("The shooter roled: {0}", roll);
    }

    public void PlayCraps()
    {
        RollDice();
        int gameStatus = 0;
        int point = roll;
        int numRolls = 1;

        while (gameStatus < 1)
        {


            if (roll == 7 || roll == 11)
            {
                Console.WriteLine("You won!");
                break;
            }
            else if (roll == 2 || roll == 3 || roll == 12)
            {
                Console.WriteLine("You lost.");
                break;
            }
            else
            {

                RollDice();
                Console.WriteLine("The point is: {0}", point);

                while (point != roll || roll != 7)
                {
                    if (roll == point)
                    {
                        Console.WriteLine("You won!");
                        numRolls++;
                        gameStatus++;
                    }

                    if (roll == 7)
                    {
                        Console.WriteLine("You lost");
                        numRolls++;
                        gameStatus++;
                    }
                    RollDice();
                    numRolls++;

                }

            }
        }
    }



    static void Main(string[] args)
    {
        Craps NewGame = new Craps();
        Console.ReadLine();
    }
}
}

标签: c#loopsrandommethods

解决方案


在您的Main函数中,您正在创建一个Craps对象,但从未对它做任何事情。

如果你调用Craps.PlayCraps(),那将导致它实际上做一些事情,而不是创建一个对象然后等待用户输入。


推荐阅读