Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
29
Добавлен:
28.01.2014
Размер:
83.73 Кб
Скачать

ВВЕДЕНИЕ

Основной целью расчетно-графической работы заключается разработка игрового приложения, а также в практическое закрепление навыков, полученных в ходе изучения языка программирования C#. Разрабатываемое игровое приложение будет нести в себе следующее требование:

  • управление операционными системами Windows, с использованием языка программирования C# и платформы .NET.

1 РАЗРАБОТКА ТЕХНИЧЕСКОГО И ЭСКИЗНОГО ПРОЕКТА

ПРОГРАММЫ

1.1 Назначение и область применения

Необходимо разработать игровое приложение "Крестики - Нолики". Программа представляет собой игровое приложение, целью которого является составить линию из трёх крестиков или ноликов. Необходимо учитывать следующие правила: игроки по очереди ставят на свободные клетки поля 3х3 знаки (один всегда крестики, другой всегда нолики). Первый, выстроивший в ряд 3 своих фигуры по вертикали, горизонтали или диагонали, выигрывает. Первый ход делает игрок, ставящий крестики. Поскольку ставится задача разработать приложение для Windows, то использоваться программа может под управлением Windows XP, Vista, Seven и более ранние версии с поддержкой .NET Framework версии 3.0 или Unix систем по средствам программ-эмуляторов среды Windows.

1.2 Технические характеристики и постановка задачи

В программе использованы различные типы данных, такие как int, string, bitmap. В программе также использован массив строкового типа.

1.3 Описание алгоритма

В программе были использованы операторы условия, такие как if ветви if-else. Так же были использованы операторы сравнения ==, =, >. В связи с этим программа имеет ветвящуюся структуру.

1.4 Организация входных и выходных данных

Таблица 1 - Входные и выходные данные

Переменная

Тип

Описание

xo

Целочисленный

(int)

Массив

xod

Строковый тип

(string)

Крестики ходят первые

chv

Графический

(Bitmap)

Представление изображения в форме прямоугольной матрицы

i

Целочисленный

(int)

Задаёт количество строк

j

Целочисленный

(int)

Задаёт количество столбцов

а

Целочисленный

(int)

Увеличение хода

1.5 Выбор состава технических и программных средств

Данная программы выполняется на языке C# редактора Microsoft Visual Studio 2009, версия 9.0.21022.8 RTM, Microsoft .NET Framework версия 3.5 SP1. Для запуска программы достаточно запустить исполняемый файл с расширением exe.

Минимальные системные требования:

  • Процессор Pentium Core или AMD Phenom II, или аналогичный, с частотой 3.1 Гц;

  • Видеокарта 1000Мб;

  • Оперативная память 4000Мб;

  • Клавиатура.

1.6 Сообщение оператору

Оператору (игроку) в качестве сообщения выводится сообщение о проигрыше.

2 Разработка рабочего проекта

2.1 Разработка программы

Для разработки игрового приложения "Миллионер" использовались средства визуального программирования C# Microsoft Visual Studio. Проект программы содержит одно окно, представленное на рисунке 1.

Рассмотрим основные компоненты:

Компонент – окно программы.

События:

private void Form1_Load;

private void pictureBox2_Click; \\ создаём контейнер для картинки при нажатии на которую будет происходить событие

private void pictureBox3_Click;

private void pictureBox4_Click;

private void pictureBox5_Click;

private void pictureBox6_Click;

private void pictureBox7_Click;

private void pictureBox8_Click;

private void pictureBox9_Click;

private void pictureBox10_Click;

Код программы:

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 _666

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

int a = 0;

for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++)

{

xo[i, j] = a;

a++;

}}}

int [,] xo=new int [3,3];

string xod = "x";

Bitmap[] chv = new Bitmap[10];

PictureBox[,] kv = new PictureBox[40, 40];

void zap()

{

pictureBox1.Size = new Size(90 * 90, 90 * 90);

for (int x = 0; x < 3; x++)

{

for (int y = 0; y < 3; y++)

{

kv[x, y] = new PictureBox();

kv[x, y].Parent = pictureBox1;

kv[x, y].Width = 90;

kv[x, y].Height = 90;

kv[x, y].Left = x * 90;

kv[x, y].Top = y * 90;

kv[x, y].Image = chv[0];

}}}

private void Form1_Load(object sender, EventArgs e)

{

chv[0] = _666.Properties.Resources._11;

zap();

}

private void pictureBox2_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox2.Image = _666.Properties.Resources.Копия__3__1;

xo[0, 0] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox2.Image = _666.Properties.Resources._0;

xo[0, 0] = 1;

}

pictureBox2.Enabled = false;

proverca();

}

private void pictureBox3_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox3.Image = _666.Properties.Resources.Копия__3__1;

xo[0, 1] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox3.Image = _666.Properties.Resources._0;

xo[0, 1] = 1;

}

pictureBox3.Enabled = false;

proverca();

}

private void pictureBox4_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox4.Image = _666.Properties.Resources.Копия__3__1;

xo[0, 2] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox4.Image = _666.Properties.Resources._0;

xo[0, 2] = 1;

}

pictureBox4.Enabled = false;

proverca();

}

private void pictureBox5_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox5.Image = _666.Properties.Resources.Копия__3__1;

xo[1, 0] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox5.Image = _666.Properties.Resources._0;

xo[1, 0] = 1;

}

pictureBox5.Enabled = false;

proverca();

}

private void pictureBox6_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox6.Image = _666.Properties.Resources.Копия__3__1;

xo[1, 1] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox6.Image = _666.Properties.Resources._0;

xo[1, 1] = 1;

}

pictureBox6.Enabled = false;

proverca();

}

private void pictureBox7_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox7.Image = _666.Properties.Resources.Копия__3__1;

xo[1, 2] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox7.Image = _666.Properties.Resources._0;

xo[1, 2] = 1;

}

pictureBox7.Enabled = false;

proverca();

}

private void pictureBox8_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox8.Image = _666.Properties.Resources.Копия__3__1;

xo[2, 0] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox8.Image = _666.Properties.Resources._0;

xo[2, 0] = 1;

}

pictureBox8.Enabled = false;

proverca();

}

private void pictureBox9_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox9.Image = _666.Properties.Resources.Копия__3__1;

xo[2, 1] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox9.Image = _666.Properties.Resources._0;

xo[2, 1] = 1;

}

pictureBox9.Enabled = false;

proverca();

}

private void pictureBox10_Click(object sender, EventArgs e)

{

if (xod == "x")

{

xod = "o";

pictureBox10.Image = _666.Properties.Resources.Копия__3__1;

xo[2, 2] = 0;

}

else if (xod == "o")

{

xod = "x";

pictureBox10.Image = _666.Properties.Resources._0;

xo[2, 2] = 1;

}

pictureBox10.Enabled = false;

proverca();

}

private void proverca()

{

if (xo[0, 0] == xo[0, 1] && xo[0, 0] == xo[0, 2])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[1, 0] == xo[1, 1] && xo[1, 0] == xo[1, 2])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[2, 0] == xo[2, 1] && xo[2, 0] == xo[2, 2])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[0, 0] == xo[1, 0] && xo[0, 0] == xo[2, 0])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[0, 1] == xo[1, 1] && xo[0, 1] == xo[2, 1])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[0, 2] == xo[1, 2] && xo[0, 2] == xo[2, 2])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[0, 0] == xo[1, 1] && xo[0, 0] == xo[2, 2])

{

MessageBox.Show("Проиграл " + xod);

}

if (xo[0,2] == xo[1, 1] && xo[0, 2] == xo[2, 0])

{

MessageBox.Show("Проиграл " + xod);

}}}}

2.2 Написание программы

Игра написана на языке программирования С#. При запуске программы открывается form1, на которой располагаются: поле состоящее из 9 pictureBox.

2.3 Спецификация программы

В таблице 2 приведены наименования файлов, которые входят в программу, а также их краткое описание:

Таблица 2 - Наименование файлов

Наименование

Обозначение

666.exe

Файл запуска программы

Form1.cs

Файл, содержащий программный код формы

Form1.designer.cs

Файл, содержащий описание компонентов формы

2.4 Тестирование программы

Для тестирования программы выполним несколько действий, для проверки работоспособности программы. Результаты тестирования представлены ниже на рисунках 1 – 3.

Рисунок 1 – Основное окно игры

Рисунок 2 – Первый ход

Рисунок 3 – Сообщение о проигрыше

ЗАКЛЮЧЕНИЕ

При разработке данной работы были закреплены знания, полученные в ходе изучения языка программирования C# на занятиях по дисциплине «Объектно-ориентированное программирование». Результатом работы получилось игровое приложение «Крестики-нолики», предназначенное для развлечения и развития логики.

В данной работе были использованы инструменты:

  • PictureBox, для вывода картинок на экран;

  • MessageBox, для вывода на экран сообщений;

Соседние файлы в папке лабораторные работы