- 用C#开发的一个猜数字的小游戏
namespace 猜数字游戏__线程
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int num = 0;
int number;
private void Form1_Load(object sender, EventArgs e)
{
this.Width = 396;
this.Height = 465;
this.MaximizeBox = false;
this.FormBorderStyle = FormBorderStyle.FixedDialog;
setnum();
}
bool flag = false;
private void StartBnt_Click(object sender, EventArgs e)
{
if (!flag)
{
Thread t1 = new Thread(new ThreadStart(TimeThread));
t1.Priority = ThreadPriority.Normal;
t1.Start(); //启动线程
timer.Enabled = true;
StartBnt.Text = "复位";
flag = true;
}
else {
//this.Close();
groupBox.Controls.Clear();
num = 0;
timer.Enabled = false;
setnum();
label.Text = "0";
StartBnt.Text = "开始";
flag=false;
}
}
private void bt_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;//实例化一个按钮,来进行事件的设置
if (flag) {
int temp;
if (int.TryParse(btn.Text, out temp))
{
if (temp < number)
{
btn.BackColor = Color.Red;
btn.Text = "小";
}
else if (temp > number)
{
btn.BackColor = Color.Blue;
btn.Text = "大";
}
else
{
timer.Enabled = false;
if (MessageBox.Show("恭喜你,猜对了!用时" + num + "秒", "finish") != 0)
{
num = 0;
label.Text = "0";
groupBox.Controls.Clear();
setnum();
StartBnt.Text = "开始";
flag = false;
}
}
}
}
}
private void TimeThread()
{
//BeginInvoke((ThreadStart)delegate()
//{
// num++;
//}, ThreadPriority.Normal);
Random random = new Random();
number = random.Next(1, 101);
}
private void timer1_Tick(object sender, EventArgs e)
{
label.Text = Convert.ToString(++num);
}
void setnum() {
int p_x = 10;
int p_y = 0;
//动态加载控件
for (int i = 0; i < 100; i++)
{
Button bt = new Button();
bt.Text = (i + 1).ToString();
bt.Name = (i + 1).ToString();
bt.Width = 35;
bt.Height = 35;
bt.Location = new Point(p_x, p_y);
bt.BackColor = Color.YellowGreen;
bt.Click += new EventHandler(this.bt_Click);//加载按钮事件
p_x += 36;
if ((i + 1) % 10 == 0)
{
p_x = 10;
p_y += 36;
}
groupBox.Controls.Add(bt);
}
}
}
}