用c#做的骰子游戏

时间:2017-05-02 15:48:28

标签: c#

所以我为我的作业制作了一个骰子游戏而且我被卡住了,因为我不知道如何制作它希望我包含的2个功能。这些功能是:

如果游戏为玩家分配点数,如果在5个骰子中他掷出3,4或5种,但如果玩家掷出2种,他可以重新掷出3个其他骰子2次(即骰子哪里不是2的那种)因此,如果他第一次滚动并且没有得到3,4或5种他第二次重新滚动,但如果他得到例如3,4或5在第一次重新开始时他没有重新开始,第二次重新开始也是如此,但如果在第二次掷骰之后他没有得到3,4或5种,他得到0分。

一旦玩家或AI /第二名玩家达到某个值,游戏结束,即他们的得分可以说为50。

这是我到目前为止的代码:

class Game
    {
        public static void Main(string[] args)

        {

            Console.BackgroundColor = ConsoleColor.Red;
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Press enter to Start Game");
            Console.ReadKey();
            Console.ResetColor();
            Console.Clear();


            bool gameProg = false;
            while (gameProg == false)
            {
                Console.WriteLine("Press Enter to roll your 5 Die");
                Console.ReadKey();
                Console.WriteLine();
                Die.DieGen();
                Console.ReadLine();
                Console.Clear();
            }

           /* if(Score = 50)
            {
                Console.WriteLine("\nCongratulation you have won press enter to exit");
                Console.ReadKey();
            }*/
        }

    }
    class Die
    {
        public static void DieGen()
        {
            int i;
            int[] Score = new int[50];
            Random rnd = new Random();
            int die1 = rnd.Next(1, 6 + 1);
            int die2 = rnd.Next(1, 6 + 1);
            int die3 = rnd.Next(1, 6 + 1);
            int die4 = rnd.Next(1, 6 + 1);
            int die5 = rnd.Next(1, 6 + 1);
            Console.Write("You Rolled {0}", die1);
            Console.Write(" {0}", die2);
            Console.Write(" {0}", die3);
            Console.Write(" {0}", die4);
            Console.Write(" {0}", die5);

            int sum = die1 + die2 + die3 + die4 + die5;

            Console.WriteLine("Your Score {0}", sum);

            Score[sum]=Convert.ToInt32(Console.ReadLine());

            int tsum = Score.Sum();
            Console.WriteLine("Your Total Score {0}",tsum);
            Console.ReadLine();


        }
    }
    class Player
    {
        public static void Score()
        {
            int ScoreSum;


        }
    }

目前,我正在测试是否可以获得一个数组来存储骰子总和的数字输出并存储它们并添加它们并为其设置一个值,以便一旦总和达到50个游戏结束并且循环终止,但它不起作用(即不是我应该做的任务,但想看看我是否可以使用你从滚动3,4或5中得到的分数来使用数组并总结它并显示它。)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先,您应该创建一个集合来保存您的骰子,而不是为每个骰子保留单独的变量。 (在这种情况下,数组可以正常工作。)

其次,我能给出的最好的建议是将问题分解成一小部分,由各个函数表示。例如,您应该有一个函数来帮助您确定是否滚动了3,4或5。这样,您的逻辑可以像您的需求描述一样阅读。

int[] dice = new int[5];
int numberOfTries = 0;
do 
{
    RollDice(dice);
    ...
    numberOfTries++;
}
while(numberOfTries < 3 && !DiceHaveOfAKind(dice, 3))

一旦你将这个问题打破了这个问题,你就会更容易在视觉上推断每个方法的正确性和整个逻辑流程。此外,如果您正在努力解决某个特定部分,那么如果您可以根据一个明确定义的方法的预期输入和输出来表达它,那么您将在StackOverflow上获得更好的答案。比起一般的&#34;有些事情我不知道怎么做这个任务&#34;问题的风格。