猜字母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("只能输入一个字母!");
}
}
}
}
希望对大家有所帮助。感谢大家的关注和点赞。
8683

被折叠的 条评论
为什么被折叠?



