using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 匹配游戏
{
public partial class Form1 : Form
{
Random random = new Random();
List<string> icons = new List<string>()
{"!", "!", "N", "N", ",", ",", "k", "k",
"b", "b", "v", "v", "w", "w", "z", "z" };
Label firstClicked = null;
Label secondClicked = null;
int t = 0;
public Form1()
{
InitializeComponent();
AssignIconsToSquares();
}
private void AssignIconsToSquares()
{
foreach (Control control in tableLayoutPanel1.Controls)
{
Label iconLabel = control as Label;
if (iconLabel != null)
{
int randomNumber = random.Next(icons.Count);
iconLabel.Text = icons[randomNumber];
iconLabel.ForeColor = iconLabel.BackColor;
icons.RemoveAt(randomNumber);
}
}
}
private void label1_Click(object sender, EventArgs e)
{
if (timer1.Enabled == true)
return;
Label clickedlabel = sender as Label;
if (clickedlabel != null)
{
if (clickedlabel.ForeColor == Color.White)
return;
if (firstClicked == null)
{
timer2.Start();
firstClicked = clickedlabel;
firstClicked.ForeColor = Color.White;
return;
}
secondClicked = clickedlabel;
secondClicked.ForeColor = Color.White;
checkforwinner();
if (firstClicked.Text == secondClicked.Text)
{
firstClicked = null;
secondClicked = null;
return;
}
timer1.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
firstClicked.ForeColor = firstClicked.BackColor;
secondClicked.ForeColor = secondClicked.BackColor;
firstClicked = null;
secondClicked = null;
}
private void checkforwinner()
{
foreach (Control control in tableLayoutPanel1.Controls)
{
Label iconlabel = control as Label;
if (iconlabel != null)
{
if (iconlabel.ForeColor == iconlabel.BackColor)
{
return;
}
}
}
timer2.Stop();
MessageBox.Show("恭喜您完成游戏"+ "\r\n" + "用时"+lab_time.Text, "祝贺");
}
private void timer2_Tick(object sender, EventArgs e)
{
t = t + 1;
lab_time.Text = (t / 60).ToString() + "分" + (t % 60).ToString() + "秒";
}
private void 新游戏ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Hide();
Form form = new Form1();
form.ShowDialog();
this.Close();
}
}
}