Часть 1
192
{
// игра завершена
if (status == 2) return;
// первый щелчок
if (status == 0) status = 1;
// преобразуем координаты мыши в индексы
// клетки поля, в которой был сделан щелчок;
// (e.X, e.Y) - координаты точки формы,
// в которой была нажата кнопка мыши
int row = (int)(e.Y/H) + 1,
col = (int)(e.X/W) + 1;
// координаты области вывода
int x = (col-1)* W + 1,
y = (row-1)* H + 1;
// щелчок левой кнопки мыши
if (e.Button == MouseButtons.Left)
{
// открыта клетка, в которой есть мина
if (Pole[row,col] == 9)
{
Pole[row,col] += 100;
// игра закончена
status = 2;
// перерисовать форму
this.panel1. Invalidate();
}
Примеры и задачи
193
else
if (Pole[row,col] < 9)
this.open(row,col);
}
// щелчок правой кнопки мыши
if (e.Button == MouseButtons.Right) {
// в клетке не было флага, ставим его
if (Pole[row,col] <= 9) {
nFlag += 1;
if (Pole[row,col] == 9)
nMin += 1;
Pole[row,col] += 200;
if ((nMin == NM) && (nFlag == NM)) {
// игра закончена
status = 2;
// перерисовываем все игровое поле
this.Invalidate();
}
else
// перерисовываем только клетку
this.kletka(g, row, col, status);
}
else
// в клетке был поставлен флаг,
// повторный щелчок правой кнопки мыши
// убирает его и закрывает клетку
if (Pole[row,col] >= 200)
Часть 1
194
{
nFlag -= 1;
Pole[row,col] -= 200;
// перерисовываем клетку
this.kletka(g, row, col, status);
}
}
}
// команда Новая игра
private void новаяИграToolStripMenuItem_Click
(object sender, EventArgs e)
{
newGame();
showPole(g, status);
}
// обработка события Paint панели
private void panel1_Paint(object sender, PaintEventArgs e)
{
showPole(g, status);
}
// выбор в меню Справка команды О программе
private void оПрограммеToolStripMenuItem_Click
(object sender, EventArgs e)
{
Form2 aboutBox = new Form2();
aboutBox.ShowDialog();
}
// выбор в меню Справка команды Правила игры
private void правилаToolStripMenuItem_Click
(object sender, EventArgs e)
Примеры и задачи
195
{
Help.ShowHelp(this,
helpProvider1.HelpNamespace,"saper_02.htm");
}
}
}
Листинг 1.33. Модуль формы О программе
// модуль формы "О программе"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
// щелчок на WEB-ссылке
private void linkLabel1_LinkClicked
(object sender, LinkLabelLinkClickedEventArgs e)
{
Do'stlaringiz bilan baham: |