请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
简单的扫雷游戏
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
{
static int hang = 16;
static int lie = 16;
static int leishu = 30;
static bool over = false;
static int sy = leishu;
Button[,] Button1 = new Button[lie, hang];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
groupBox1.Location = new Point(6, 26);
groupBox1.Size = new Size(1354, 710);
groupBox1.AutoSize = true;
groupBox1.FlatStyle = FlatStyle.Standard;
textBox1.Text = leishu.ToString();
for (int x = 0; x < lie; x )
{
for (int y = 0; y < hang; y )
{
Button1[x, y] = new Button();
Button1[x, y].Size = new Size(30, 30);
Button1[x, y].Location = new Point(x * 30, y * 30);
Button1[x, y].Tag = 0;
Button1[x,y].Font= new Font("宋体", 10.5F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(134)));
groupBox1.Controls.Add(Button1[x, y]);
Button1[x, y].MouseUp = Form1_MouseUp;
}
}
bulei();
}
private void bulei()
{
Random rand = new Random();
for (int i = 0; i < leishu; i )
{
int position_x = rand.Next(lie - 1);
int position_y = rand.Next(hang - 1);
if (Convert.ToInt16(Button1[position_x, position_y].Tag) == 0)
{
Button1[position_x, position_y].Tag = 1;
}
else
i = i - 1;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (!over)
{
Button B = (Button)sender;
B.Enabled = false;
int x = B.Right / 30 - 1;
int y = (B.Top 30) / 30 - 1;
switch (e.Button)
{
case MouseButtons.Left:
if (Convert.ToInt16(B.Tag) == 1)
{
B.Text = "*";
over = true;
showlei();
MessageBox.Show("失败,游戏结束!");
}
else
{
B.Text = leigeshu(x, y).ToString();
shaolei(x, y);
}
break;
case MouseButtons.Right:
B.Text = "q";
B.Enabled = true;
if (Convert.ToInt16(B.Tag) == 1)
{
sy--;
}
win();
break;
}
}
}
private void showlei()
{
for (int i = 0; i <lie; i )
{
for (int j = 0; j <hang; j )
{
Button1[i, j].Enabled = false;
if (Convert.ToInt16(Button1[i, j].Tag) == 1)
{
Button1[i, j].Text = "q";
}
}
}
}
private void win()
{
if (sy == 0)
{
over = true;
MessageBox.Show("胜利!");
}
}
private void shaolei(int x, int y)
{
int xmin = (x == 0) ? 0 : x - 1;
int xmax = (x == lie - 1) ? x : x 1;
int ymin = (y == 0) ? 0 : y - 1;
int ymax = (y == hang - 1) ? y : y 1;
if (leigeshu(x, y) == 0)
{
Button1[x, y].Enabled = false;
for (int i = xmin; i <= xmax; i )
{
for (int j = ymin; j <= ymax; j )
{
if (Convert.ToInt16(Button1[i, j].Tag) == 0 && Button1[i, j].Enabled == true)
{
shaolei(i, j);
}
Button1[i, j].Text = leigeshu(i, j).ToString();
Button1[i, j].Enabled = false;
if (Button1[i, j].Text == "0")
{
Button1[i, j].Text = string.Empty;
}
}
}
}
}
private int leigeshu(int x, int y)
{
int gs = 0;
int xmin = (x == 0) ? 0 : x - 1;
int xmax = (x == lie - 1) ? x : x 1;
int ymin = (y == 0) ? 0 : y - 1;
int ymax = (y == hang - 1) ? y : y 1;
for (int i = xmin; i <= xmax; i )
{
for (int j = ymin; j <= ymax; j )
{
if (Convert.ToInt16(Button1[i, j].Tag) == 1)
{
gs ;
}
}
}
return gs;
}
private void button2_Click(object sender, EventArgs e)
{
if(int.Parse(textBox1.Text)>=(hang*lie)/2)
{
MessageBox.Show("超过最大可设置数");
textBox1.Text = leishu.ToString();
return;
}
leishu = int.Parse(textBox1.Text);
for (int x = 0; x < lie; x )
{
for (int y = 0; y < hang; y )
{
Button1[x, y].Tag = 0;
Button1[x, y].Enabled = true;
Button1[x, y].Text = string.Empty;
}
}
bulei();
over = false;
sy = leishu;
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(e.KeyChar >= '0' && e.KeyChar <= '9') && !(e.KeyChar == '\b'))
{ e.Handled = true; }
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}