WinForm+C#小案例--->猜字母PK游戏

ModelEngine·创作计划征文活动 10w+人浏览 1.4k人参与

猜字母PK游戏演示:

实现这个案例我们可以分为2个步骤

效果演示:

步骤 1:创建 Winform 项目并设计界面

步骤 2:编写代码实现切换逻辑
using System;
using System.Windows.Forms;

namespace 打字游戏
{
    public partial class Form1 : Form
    {
        //正确率
        private int zhengquelv = 100;
        //随机数
        Random random = new Random();

        public Form1()
        {
            InitializeComponent();
            //正确率显示
            label1.Text = "正确率" + zhengquelv + "%";
            //电脑玩家输入框禁止手动输入
            textBox1.ReadOnly = true;
        }

        //开始按钮
        private void button1_Click(object sender, EventArgs e)
        {
            //判断是否输入一个字母和是否输入内容
            if (textBox2.Text.Length != 1 || string.IsNullOrEmpty(textBox2.Text))
            {
                MessageBox.Show("请输入一个有效的英文字母!");
                //清空玩家输入框
                textBox2.Clear();
                //聚焦
                textBox2.Focus();
            }
            //随机生成A-Z字母
            char zimu = (char)('A' + random.Next(26));
            //赋值给电脑玩家结果的 textBox1
            textBox1.Text = zimu.ToString();

            //玩家输入内容
            char wanjia = char.ToUpper(textBox2.Text[0]);

            //PK
            if (wanjia == zimu)
            {
                MessageBox.Show("恭喜你猜对了");
                //Min输出两个中最小的那个, 所以正确率最大只能是100%
                zhengquelv = Math.Min(zhengquelv + 25, 100);
            }
            else
            {
                MessageBox.Show("对不起,你猜错了");
                //Max输出两个中最大的那个, 所以正确率最小只能是0%
                zhengquelv = Math.Max(zhengquelv - 25, 0);
            }
            //正确率显示
            label1.Text = "正确率" + zhengquelv + "%";

            //当正确率为0%时提示重新开始
            if (zhengquelv == 0)
            {
                MessageBox.Show("正确率为0,请点击「退出」重新游戏!");
            }

            //清空玩家输入框
            textBox2.Clear();
            //聚焦
            textBox2.Focus();
        }

        //退出按钮
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        //游戏玩家结果输入框按下键后发生事件
        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            // 允许退格键
            if (e.KeyChar == '\b')
            {
                return;
            }

            // 检查是否为英文字母
            if (!char.IsLetter(e.KeyChar))
            {
                e.Handled = true; // 阻止输入
                MessageBox.Show("请输入英文字母!");
            }
            // 检查输入框是否已有内容
            else if (textBox2.Text.Length >= 1)
            {
                e.Handled = true; // 阻止输入
                MessageBox.Show("只能输入一个字母!");
            }
        }
    }
}

希望对大家有所帮助。感谢大家的关注和点赞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值