实例介绍
【实例简介】
简单的扫雷游戏
【实例截图】
【核心代码】
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();
}
}
}
标签: WindowsForms C# 游戏 扫雷
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论