C#之簡易猜數字遊戲

飄散的楓葉發表於2018-04-13

遊戲規則說明:

由系統生成一個隨機數,玩家有三次猜數字的機會,如果在三次內猜出數字反饋玩家猜對了,否則Game Over!

 

程式碼設計說明

1.首先設計一個簡易的歡迎介面,並提示玩家是否開始遊戲;

        public void Rule()
        {
            string symbol;
            bool flag = false;
            Console.WriteLine("***********************************************");
            Console.WriteLine("------------歡迎進入猜數字遊戲!-------------");
            Console.WriteLine("我們將從1到10間隨機生成一個數字由玩家進行猜測!");
            Console.WriteLine("  來看看你們的運氣,提供你們三次猜測機會!");
            Console.WriteLine("	Y--開始遊戲		N--退出遊戲");
            Console.WriteLine("***********************************************");
            Console.Write("是否進入遊戲:");
            symbol = Convert.ToString(Console.ReadLine());
            while (flag == false)
            {
                switch (symbol)
                {
                    case "Y":
                        Console.Clear();
                        Console.WriteLine("遊戲開始!");
                        flag = true;
                        break;
                    case "N":
                        Console.WriteLine("退出遊戲!");
                        Console.ReadKey();
                        Environment.Exit(0);
                        break;
                    default:
                        Console.WriteLine("輸入無效符號!");
                        Console.Write("是否進入遊戲:");
                        symbol = Convert.ToString(Console.ReadLine());
                        break;
                }
            }           
        }

 

2.由系統自動生成一個隨機數;

        public int SetRandom()
        {
            int number;

            var random = new Random();
            number = random.Next(1,10); // 使用該方法獲得的隨機數大於等於1,小於10;
            return number;
        }

 

3.由玩家輸入一個數值與系統生成隨機數進行比較,判斷是否相同,如果相同則表示玩家猜對,否則繼續猜,直到三次機會使用完反饋Game Over!

public void Guess(int num)
        {
            int number;
            int count = 0;
            Console.WriteLine("請輸入猜測數值:");
            number = Convert.ToInt32(Console.ReadLine());

            while (num <= 10)
            {
                if (number == num)
                {
                    Console.WriteLine("恭喜你,猜對了!");
                    break;
                }
                else
                {
                    count++; // 獲取玩家輸入次數
                    Console.WriteLine("親。猜錯了哦! 您以使用{0}次機會
", count);

                    if (count >= 3) //判斷玩家是否已輸入三次
                    {
                        Console.WriteLine("您已用完猜測次數,Game Over!");
                        break;
                    }
                    Console.WriteLine("請再次輸入猜測數值:");
                    number = Convert.ToInt32(Console.ReadLine());

                }

            }

        }

 

完整程式碼

using System;

namespace GuessNumberApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            var guessNumber = new GuessNumber();
            var ruleExplain = new RuleExplain();

            ruleExplain.Rule();
            int number = guessNumber.SetRandom();
            guessNumber.Guess(number);

            Console.ReadKey();
        }
    }
    class RuleExplain
    {
        public void Rule()
        {
            string symbol;
            bool flag = false;
            Console.WriteLine("***********************************************");
            Console.WriteLine("------------歡迎進入猜數字遊戲!-------------");
            Console.WriteLine("我們將從1到10間隨機生成一個數字由玩家進行猜測!");
            Console.WriteLine("  來看看你們的運氣,提供你們三次猜測機會!");
            Console.WriteLine("	Y--開始遊戲		N--退出遊戲");
            Console.WriteLine("***********************************************");
            Console.Write("是否進入遊戲:");
            symbol = Convert.ToString(Console.ReadLine());
            while (flag == false)
            {
                switch (symbol)
                {
                    case "Y":
                        Console.Clear();
                        Console.WriteLine("遊戲開始!");
                        flag = true;
                        break;
                    case "N":
                        Console.WriteLine("退出遊戲!");
                        Console.ReadKey();
                        Environment.Exit(0);
                        break;
                    default:
                        Console.WriteLine("輸入無效符號!");
                        Console.Write("是否進入遊戲:");
                        symbol = Convert.ToString(Console.ReadLine());
                        break;
                }
            }           

        }
    }

    class GuessNumber
    {
        public int SetRandom()
        {
            int number;

            Random random = new Random();
            number = random.Next(1, 10); // 使用該方法獲得的隨機數大於等於1,小於10;
            return number;
        }

        public void Guess(int num)
        {
            int number;
            int count = 0;
            Console.WriteLine("請輸入猜測數值:");
            number = Convert.ToInt32(Console.ReadLine());

            while (num <= 10)
            {
                if (number == num)
                {
                    Console.WriteLine("恭喜你,猜對了!");
                    break;
                }
                else
                {
                    count++; // 獲取玩家輸入次數
                    Console.WriteLine("親。猜錯了哦! 您以使用{0}次機會
", count);

                    if (count >= 3) //判斷玩家是否已輸入三次
                    {
                        Console.WriteLine("您已用完猜測次數,Game Over!");
                        break;
                    }
                    Console.WriteLine("請再次輸入猜測數值:");
                    number = Convert.ToInt32(Console.ReadLine());

                }

            }

        }
    }
}

 

相關文章