减小字体
增大字体
作者:佚名 来源:翔宇亭IT乐园 发布时间:2018-12-31 11:51:00
} if (click[mx, my] == 13) { //第三次右击 恢复原样 click[mx, my] = 2; dline.DrawLine(new Pen(Color.White), mx1, my1, mx1 + 20, my1 + 20); dline.DrawLine(new Pen(Color.White), mx1, my1, mx1, my1 + 20); dline.DrawLine(new Pen(Color.Black), mx1 + 20, my1, mx1 + 20, my1 + 20); dline.DrawLine(new Pen(Color.Black), mx1, my1 + 20, mx1 + 20, my1 + 20); dline.FillRectangle(new SolidBrush(Color.FromArgb(224, 224, 224)), mx1 + 1, my1 + 1, 18, 18); } } } } /// /// 初始化屏幕 (包还所有的) /// public void Startscr() { Graphics dline = labdraw.CreateGraphics(); time = 0; Blpl(); timer1.Enabled = false; Color c = Color.FromArgb(224, 224, 224); labdraw.CreateGraphics()。Clear(c); Drawscreen(dline); timerEnable = 0; labtime.Text = ("000"); } /// /// 画界面 /// /// > public void Drawscreen(Graphics dline) { sum = 0; //得到没清楚的格子数 int mx, my; int mx1 = 0, my1 = 0; //得到要画图的坐标 string text; for (mx = 0; mx < ls; mx++) { for (my = 0; my < hs; my++) { //画图地位置 mx,my分别是屏幕x,y轴 mx1 = mx * 2 + mx * 20 + 4; my1 = my * 2 + my * 20 + 4; if (click[mx, my] != 10 && click[mx, my] != 12 && click[mx, my] != 16 && click[mx, my] != 15) { //下面用于画立体形矩形; sum++; Pen mypen = new Pen(Color.Gray); Dline(dline, mx1, my1, mypen); dline.FillRectangle(new SolidBrush(Color.FromArgb(224, 224, 224)), mx1 + 1, my1 + 1, 18, 18); } if ((click[mx, my] == 10 || click[mx, my] == 16)) { click[mx, my] = 16; //清除的格子 //提示周围的雷数 if (bulei[mx, my] <= 8 && bulei[mx, my] > 0) { text = bulei[mx, my].ToString(); dline.DrawString(text, new Font("宋体", 15), new SolidBrush(Color.Black), mx1 + 2, my1 + 2); } //显示雷 if ((bulei[mx, my] == 9 || bulei[mx, my] == 100)) { text = "*"; dline.DrawString(text, new Font("宋体", 15), new SolidBrush(Color.Black), mx1 + 2, my1 + 2); if (bulei[mx, my] == 100) { //被单击的雷上画上叉号 dline.DrawLine(new Pen(Color.Red), mx1, my1, mx1 + 20, my1 + 20); dline.DrawLine(new Pen(Color.Red), mx1, my1 + 20, mx1 + 20, my1); } } } } //用于画旗 和问号 Rdraw(dline); } } /// /// 当为雷时的算法 /// /// > /// > public void Panlei(int x, int y) { if (bulei[x, y] != 0) { if (bulei[x, y] == 9) { timer1.Enabled = false; //使计时器停止 timerEnable = 1; //使游戏出游结束状态 bulei[x, y] = 100; int i, j; for (i = 0; i < ls; i++) { for (j = 0; j < hs; j++) { if (bulei[i, j] == 9 || bulei[i, j] ==100) { click[i, j] = 10; //显示所有的雷 } } } } if (bulei[x, y] > 0 && bulei[x, y] < 9) { click[x, y] = 10; } } else { Panjie(x, y); } } /// /// 回到游戏开始的界面 /// /// /// private void btnreplay_Click(object sender, EventArgs e) { //初始化一切 包括布雷 ,界面, click数组 Startscr(); } /// /// 计算游戏所用的时间 /// /// /// private void timer1_Tick(object sender, EventArgs e) { time++; if (time <= 99) { if (time < 10) { labtime.Text = ("00" + time.ToString()); } else { labtime.Text = ("0" + time.ToString()); } } else { if (time < 99) { labtime.Text = (time.ToString()); } else { timer1.Enabled = false; MessageBox.Show("RIME OVER "); time = 0; timerEnable = 1; } } } /// /// 在启动的游戏时初始化界面 /// /// /// private void labdraw_Paint(object sender, PaintEventArgs e) { Graphics dline = e.Graphics; if (bl == 0) { Blpl(); Drawscreen(dline); } else { Drawscreen(dline); } } /// /// //单击时触发的事件 /// /// /// private void labdraw_MouseClick(object sender, MouseEventArgs e) { bl = 10; int i=0, j=0; if (timerEnable == 0) //判断游戏是否处于结束状态 { timer1.Enabled = true; Graphics dline = labdraw.CreateGraphics(); //将LAB1建立成图形对象 int mx = 0, my = 0; int mx2 = 0, my2 = 0; int mx3 = 0, my3 = 0; //判断鼠标所点位置 mx2 = e.X; my2 = e.Y; for (i = 0; i < ls; i++) { for (j = 0; j < hs; j++) { mx = 4 + i * 2 + i * 20; my = 4 + j * 2 + j * 20; //找到单击位置代表的数组 if (mx < mx2 && mx + 20+4 > mx2 && my < my2 && my2 < my + 20+4 ) { mx3 = i; my3 = j; break; } } if (j < 9) { break; } } //判断是左击还是右击 if (e.Button == MouseButtons.Right && click[mx3, my3] != 10 && mx3 >= 0 && my3 >= 0 && click[mx3, my3] != 16) { //第2次右击 if (click[mx3, my3] == 11 && click[mx3, my3] != 10) { click[mx3, my3] = 12; --qishu; } else { //第1次右击 if (click[mx3, my3] != 12 && click[mx3, my3] != 10) { if (qishu { click[mx3, my3] = 11; qishu++; } } if (click[mx3, my3] == 12 && click[mx3, my3] != 10) { click[mx3, my3] = 13; } } //右击的绘图事件 Rdraw(dline); Qishu(); } else { //左击 if (click[mx3, my3] != 11 && click[mx3, my3] != 16) 上一页 [1] [2] [3] 下一页