Рефераты. Генерирование псевдослучайных чисел на примере создания игры "Сапер"

this.Invalidate(new Rectangle(x, y, W, H));

//открыть примыкающие клетки слева, справа, сверху, снизу

this.open(row, col - 1);

this.open(row - 1, col);

this.open(row, col + 1);

this.open(row + 1, col);

//примыкающие диагонально

this.open(row - 1, col - 1);

this.open(row - 1, col + 1);

this.open(row + 1, col - 1);

this.open(row + 1, col + 1);

}

…………

}

а также два метода, основанных на работе с графикой:

private void mina(Graphics g, int x, int y)//метод,рисующий мину

{

//корпус

g.FillRectangle(Brushes.Green, x + 16, y + 26, 8, 4);

g.FillRectangle(Brushes.Green, x + 8, y + 30, 24, 4);

g.DrawPie(Pens.Black, x + 6, y + 28, 28, 16, 0, -180);

g.FillPie(Brushes.Green, x + 6, y + 28, 28, 16, 0, -180);

//полоса на корпусе

g.DrawLine(Pens.Black, x + 12, y + 32, x + 28, y + 32);

//вертикальный "ус"

g.DrawLine(Pens.Black, x + 20, y + 22, x + 20, y + 26);

//боковые "усы"

g.DrawLine(Pens.Black, x + 8, y + 30, x + 6, y + 28);

g.DrawLine(Pens.Black, x + 32, y + 30, x + 34, y + 28);

}

private void flag(Graphics g, int x, int y)//метод,рисующий флаг

{

Point[] p = new Point[3];

Point[] m = new Point[5];

//флажок

p[0].X = x + 4;

p[0].Y = y + 4;

p[1].X = x + 30;

p[1].Y = y + 12;

p[2].X = x + 4;

p[2].Y = y + 20;

g.FillPolygon(Brushes.Red, p);

//древко

g.DrawLine(Pens.Black, x + 4, y + 4, x + 4, y + 35);

//буква М на флажке

m[0].X = x + 8;

m[0].Y = y + 14;

m[1].X = x + 8;

m[1].Y = y + 8;

m[2].X = x + 10;

m[2].Y = y + 10;

m[3].X = x + 12;

m[3].Y = y + 8;

m[4].X = x + 12;

m[4].Y = y + 14;

g.DrawLines(Pens.White, m);

}

События

Событие вызывает исполнение некоторого фрагмента кода. События -- неотъемлемая часть программирования для Microsoft Windows. Например, события возникают при движении мыши, щелчке или изменении размеров окна. Важнейшую роль играет обработчики событий-- методы, исполняемые при генерации событий:

private void Сапер_MouseDown(object sender, MouseEventArgs e)//нажатие кнопки

мыши на игровом поле

{

}

private void новаяИграToolStripMenuItem1_Click(object sender, EventArgs e) //щелчок на пункте меню Новая игра

{

this.newGame(1);

this.Invalidate();

}

//обработчики щелчков на пунктах меню, в которых указывается размер поля и кол-во мин

private void минToolStripMenuItem_Click(object sender, EventArgs e)

{

}

private void минToolStripMenuItem1_Click(object sender, EventArgs e)

{

}

private void минToolStripMenuItem2_Click(object sender, EventArgs e)

{

}

private void минToolStripMenuItem3_Click(object sender, EventArgs e)

{

}

private void минToolStripMenuItem4_Click(object sender, EventArgs e)

{

}

private void минToolStripMenuItem5_Click(object sender, EventArgs e)

{

}

private void особыеToolStripMenuItem_Click(object sender, EventArgs e) //щелчок на пункте меню Особые

{

Настройки settings = new Настройки();//создание экземпляра формы

Настройки

settings.ShowDialog();//появление формы Настройки

//присваиваем значения полям на основе введенных пользователем на

форме Настройки

MR = settings.MR;

MC = settings.MC;

NM = settings.NM;

W = 30;

H = 30;

this.newGame(1);

this.Invalidate();

}

//обработчики щелчков на пунктах меню, в которых указывается способ расстановки мин

private void randomToolStripMenuItem_Click(object sender, EventArgs e)

{

}

private void инейныйКонгруэнтныйМеоToolStripMenuItem_Click(object sender, EventArgs e)

{

}

private void алгоритмToolStripMenuItem_Click(object sender, EventArgs e)

{

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

//щелчок на пункте меню Выход

{

this.Close();

}

private void справкаToolStripMenuItem_Click(object sender, EventArgs e) //щелчок на пункте меню Справка

{

Help.ShowHelp(this, this.helpProvider1.HelpNamespace);//вызов файла справки

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) //щелчок на пункте меню О программе

{

AboutBox1 saper = new AboutBox1();//создание экземпляра формы

О программе

saper.ShowDialog();//появление формы О программе

}

Отдельного внимания заслуживает событие Paint, которое сообщает программе о необходимости отобразить информацию в окне. Paint информирует программу о том, что вся клиентская область или ее часть недействительна (invalid) и требует перерисовки. Когда форма только что создана, вся клиентская область недействительна, так как программа еще ничего в ней не показывала. В программе происходит первое событие Paint, сообщающее о необходимости показать что-нибудь в клиентской области. Когда окна перемещаются по экрану, так что они перекрывают друг друга, Windows не запоминает вид клиентской области, закрытой другим окном. Потом, когда клиентская область снова открывается, программа должна восстановить ее вид. Поэтому в ней и происходит событие Paint. Когда окно программы после свертывания возвращается в нормальное состояние, в ней также происходит событие Paint.

private void Form1_Paint(object sender, PaintEventArgs e)//обработчик события

Paint

{

this.showPole(e.Graphics, status); //вызов метода showPole

}

3.Технологическая часть

3.1.Системные требования

Для запуска игры оптимальны следующие системные требования:

1. Процессор Pentium 3.

2. Частота процессора 800 Мгц.

3. 256 Мб ОЗУ.

4. Видеоадаптер Radeon 9600 и аналогичные.

5. Visual Studio 2003 или 2005.

6. Операционная система Windows 2000 и более поздние версии

3.2.Запуск и процесс игры.

Для запуска игры необходимо выполнить следующие действия:

1.Вставьте диск «Курсовая работа Темерева К., гр. САПР-31. Игра “Сапер”» в дисковод.

2.

- нажмите кнопку Пуск

- двойным щелчком левой кнопки мыши откройте Мой компьютер

- двойным щелчком откройте

3.На экране появится окно (см. рис.3.1)

4.Если на компьютере не установлена платформа .NET нужно открыть папку Microsoft .NET Framework 3.0 и двойным щелчком запустить установочный файл dotnetfx3.exe

5.Запуск игры осуществляется двойным щелчком на файле

Цель игры состоит в том, чтобы как можно быстрее найти все мины на минном поле, не вскрыв ни одну из них.

Чтобы начать игру в меню Игра нужно выбрать команду Новая игра (рис.3.2).

Игрок имеет возможность открыть любую ячейку, щелкнув ее левой кнопкой мыши. Если открываемая ячейка содержит мину, игра завершается.

Если мины нет, в ячейке появится цифра, которая указывает, сколько мин находится в восьми смежных с ней ячейках.

Чтобы пометить ячейку, в которой по мнению игрока находится мина, нужно щелкнуть ее правой кнопкой мыши.

Чтобы настроить игровое поле в меню Игра следует выбрать команду Игровое поле (рис.3.2), а далее:

ѕ выбрать размер поля 10 * 10 или 20 *20, затем количество мин 10, 15, 20, 40, 60

или выбрать команду Особые и задать размер поля, указав количество клеток по горизонтали и вертикали, а также ввести число мин. (рис.3.3)

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.