C#之简易猜数字游戏

游戏规则说明:

由系统生成一个随机数,玩家有三次猜数字的机会,如果在三次内猜出数字反馈玩家猜对了,否则Game Over!

 

代码设计说明

1.首先设计一个简易的欢迎界面,并提示玩家是否开始游戏;

        public void Rule()
        {
            string symbol;
            bool flag = false;
            Console.WriteLine("***********************************************");
            Console.WriteLine("------------欢迎进入猜数字游戏!-------------");
            Console.WriteLine("我们将从1到10间随机生成一个数字由玩家进行猜测!");
            Console.WriteLine("  来看看你们的运气,提供你们三次猜测机会!");
            Console.WriteLine("\tY--开始游戏\t\tN--退出游戏");
            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}次机会\n", 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("\tY--开始游戏\t\tN--退出游戏");
            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}次机会\n", count);

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

                }

            }

        }
    }
}

 

转载于:https://www.cnblogs.com/drift-code/p/8821582.html

C#编写的GUI游戏 源代码 using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace gn { public partial class Form1 : Form { string ready; int counti = 1; public Form1() { InitializeComponent(); this.label1.Hide(); this.button2.Hide(); this.button1.Hide(); this.button3.Hide(); this.button4.Hide(); this.textBox1.Hide(); this.pictureBox1.Hide(); this.pictureBox2.Hide(); } private void button1_Click(object sender, EventArgs e) { string number; int x, y; int count = 0; number = textBox1.Text; if (number.Length != 4) { MessageBox.Show("请输入4位数字"); } else { if (counti <=8) { if (count <= 3) { x = 0; y = 0; for (int i = 0; i <= 3; i++) { for (int j = 0; j <= 3; j++) { if (number[i] == ready[j]) { if (i == j) ++x; else ++y; } } } label2.Text = "你已经猜过" + counti + "次"; ++count; label3.Text = x.ToString() + "A" + y.ToString() + "B"; if (number == ready) { this.label2.Text = "答对了"; this.pictureBox1.Show(); } } if (counti == 8) { this.button1.Enabled = false; this.pictureBox2.Show(); } } else { this.button1.Enabled = false; this.pictureBox2.Show(); } ++counti; } } private void button2_Click(object sender, EventArgs e) { MessageBox.Show(ready); } private void button3_Click(object sender, EventArgs e) { //this.button2.Hide(); this.textBox1.Text = ""; this.label3.Text = ""; this.label2.Text = ""; this.button1.Enabled = true; counti = 1; this.pictureBox1.Hide(); this.pictureBox2.Hide(); Random r = new Random(); string[] a; a = new string[8]; a[0] = "1263"; a[1] = "6598"; a[2] = "9654"; a[3] = "5986"; a[4] = "2915"; a[5] = "2046"; a[6] = "9035"; a[7] = "1057"; int z; z = r.Next(8); ready = a[z]; } private void label1_Click(object sender, EventArgs e) { } private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void button4_Click(object sender, EventArgs e) { Close(); } private void button5_Click(object sender, EventArgs e) { Random r = new Random(); string[] a; a = new string[8]; a[0] = "1263"; a[1] = "6598"; a[2] = "9654"; a[3] = "5986"; a[4] = "2915"; a[5] = "2046"; a[6] = "9035"; a[7] = "1057"; int z; z = r.Next(8); ready = a[z]; this.textBox1.Show(); this.button1.Show(); this.button3.Show(); this.button4.Show(); this.label1.Show(); this.button2.Show(); this.button5.Hide(); } private void label4_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { } private void pictureBox1_Click_1(object sender, EventArgs e) { } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值