Разработка приложения для игры "Крестики-нолики"

Понятие алгоритма в информатике, его основные свойства, исполнитель и разработчик. Алгоритмические языки близки к естественному языку. Этапы решения задач с помощью ЭВМ. Описание классов, их полей и методов. Распределение исходного кода по файлам проекта.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 21.10.2017
Размер файла 208,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»

КУРСОВАЯ РАБОТА

Введение

  • 1. Теоритическое введение
  • 2. Функция разрабатываемого приложения
  • 2.1 Варианты использования
  • 2.2 Описание классов, их полей и методов
  • 2.3 Описание переменных
  • 3. Распределение исходного кода по файлам проекта
  • 3.1 Проект Main
  • 3.2 Проект Library
  • 4. Контрольный пример и описание результатов
  • 4.1 Код библиотеки классов X0
  • 4.2 Код Form1(Main)
  • Список литературы
  • 1. Теоретическое введение
  • Рис. 1 Алгоритм. Понятие алгоритма.
  • Понятие алгоритма -- одно из основных в программировании и информатике[1]. Это последовательность команд, предназначенная исполнителю, в результате выполнения которой он должен решить поставленную задачу. Алгоритм должен описываться на формальном языке, исключающем неоднозначность толкования. Исполнитель может быть человеком или машиной. Исполнитель должен уметь выполнять все команды, составляющие алгоритм. Множество возможных команд конечно и изначально строго задано. Действия, выполняемые по этим командам, называются элементарными.
  • Запись алгоритма на формальном языке называется программой. Иногда само понятие алгоритма отождествляется с его записью, так что слова «алгоритм» и «программа» -- почти синонимы. Небольшое различие заключается в том, что под алгоритмом, как правило, понимают основную идею его построения. Программа же всегда связана с записью алгоритма на конкретном формальном языке.
  • Алгоритм обладает следующими основными свойствами, раскрывающими его определение:

· Дискретность (в данном случае, разделенность на части) и упорядоченность. Алгоритм должен состоять из отдельных действий, которые выполняются последовательно друг за другом.

· Детерминированность (однозначная определенность). Многократное применение одного алгоритма к одному и тому же набору исходных данных всегда дает один и тот же результат.

· Формальность. Алгоритм не должен допускать неоднозначности толкования действий для исполнителя.

· Результативность и конечность. Работа алгоритма должна завершаться за определенное число шагов, при этом задача должна быть решена.

· Массовость. Определенный алгоритм должен быть применим ко всем однотипным задачам.

Исполнитель и разработчик алгоритма

Разрабатывать, придумывать алгоритмы могут только разумные существа (например, человек). А вот формально (не думая и не оценивая) исполнять, могут какие-либо машины (например, компьютеры, бытовые приборы). В чем польза такого разделения труда? Дело в том, что человек освобождается от рутинной деятельности, которая часто может занимать много времени, и поручает ее машинам.

Однако машины не люди: приборы понимают лишь ограниченное число команд и могут обрабатывать данные (объекты) далеко не всех типов. Отсюда следует, что разработчик алгоритма в конечном итоге должен описать алгоритм в допустимых командах определенного исполнителя (той машины, которой будет поручено выполнение алгоритма). Совокупность команд, которые данный исполнитель может выполнять, называетсясистемой команд исполнителя. Объекты (данные), над которыми исполнитель может выполнять действия, формируютсреду исполнителя.

Изображение алгоритма в виде схемы.

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

Схемой называется наглядное графическое изображение алгоритма, когда отдельные действия (этапы) алгоритма изображаются при помощи различных геометрических фигур (блоков), а связи между этапами (последовательность выполнения этапов) указываются при помощи линий, соединяющих эти фигуры.

Рис. 2

Схема позволяет наглядно представить структуру алгоритма. В частности, на схеме хорошо видны циклы: это последовательности этапов, после последнего из которых осуществляется возврат к началу последовательности (на схеме - замкнутые участки). Схемы обычно используются для изображения промежуточных вариантов алгоритма. Окончательный вариант , предназначенный для исполнителя-ЭВМ(программа). Должен быть записан на алгоритмическом языке.

В настоящее время существует технология разработки программ без использования схему. Однако независимо от этого на начальном этапе изучения программирования использование схем при разработке алгоритма целесообразно. Использование схем обеспечивает приобретение прочных навыков разработки алгоритмов с использованием типовых структур алгоритмов, являющихся основой так называемого структурного подхода, особенно плодотворного при постановке и решения на ЭВМ сложных задач.

Алгоритмические языки близки к естественному языку. Именно такая цель ставилась при их разработке. Однако правила построения конструкций в алгоритмическим языке более «жесткие». Это означает, что алгоритмические языки допускают меньшее разнообразие для описания действий алгоритма, чем естественный язык и привычная математическая символика, и машина однозначно понимает любую конструкцию языка. Небольшие ошибки или описки. Допускаемые в предложениях естественного языка и не искажающие, на наш взгляд, смысла, совершенно недопустимы в алгоритмическом языке, где каждый символ и его место в конструкции имеют строго фиксированное значение.

Этапы решения задач

Первоначально ЭВМ были созданы для вычислений, но постепенно на ней стали решать задачи по физике, химии, биологии, управлению технологическими процессами, рисованию мультфильмов и т.д., т.е. для решения задач с математикой непосредственно не связанных. В общем случае выделяют несколько этапов в подготовке и решении задач на ЭВМ. На первом этапе анализируется условие задачи, определяются исходные данные и результаты, устанавливается зависимость между величинами, рассматриваемыми в задаче. Некоторые задачи имеют множество способов решения, поэтому необходимо выбрать способ решения (сделать постановку задачи, составить модель задачи). Для этого необходимо определить математические соотношения между исходными данными и результатом. Выполнив перевод задачи на язык математики, получают математическую модель.

Второй этап заключается в составлении алгоритма решения задачи по выбранной модели.

На третьем этапе алгоритм записывается на языке программирования и полученная программа вводится в ЭВМ. Далее проводится отладка программы, т.е. поиск и ошибок. Различают логические и семантические ошибки. Семантические ошибки возникают, когда программист неправильно записывает конструкции языка программирования. Семантические ошибки отыскать легче, т. к. современные трансляторы языков программирования способны их выявить. Логические ошибки возникают, когда инструкции записаны правильно, но последовательность их выполнения дает неверный результат.

Далее проводится тестирование, которое заключается в запуске программы с использованием контрольных примеров - тестов. Тесты выбирают таким образом, чтобы при работе с ними программа прошла все возможные ветви алгоритма, поскольку на каждом из них могут быть свои ошибки.

После отладки и тестирования программа выполняется с реальными исходными данными и проводится анализ полученных результатов, т.е. сопоставление их с экспериментальными фактами, теоретическими воззрениями и другой информацией об изучаемом объекте. Если результаты работы программы не удовлетворяют пользователей по каким-либо параметрам, то производится уточнение модели. При уточнении модели правится алгоритм программы, снова проводятся отладка, тестирование, расчеты и анализ результатов. Так продолжается до тех пор, пока результаты работы программы не будут удовлетворять знаниям об изучаемом объекте.

Общая схема решения задач с помощью ЭВМ выглядит так рис. 3.

Язык C#.

Объектно-ориентированное программирование.

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

Рис. 3

ООП представляет собой эффективный подход к программированию. Методики программирования претерпели изменения с момента изобретения компьютера, постепенно приспосабливаясь, главным образом, к повышению сложности программ. Когда, например, появились первые ЭВМ, программирование заключалось в ручном переключении на разные двоичные машинные команды с переднего пульта управления ЭВМ. Такой подход был вполне оправданным, поскольку программы состояли всего из нескольких сотен команд. Дальнейшее усложнение программ привело к разработке языка ассемблера, который давал программистам возможность работать с более сложными программами, используя символическое представление отдельных машинных команд. Постоянное усложнение программ вызвало потребность в разработке и внедрении в практику программирования таких языков высокого уровня, как, например, FORTRAN и COBOL, которые предоставляли программистам больше средств для того, чтобы как-то справиться с постоянно растущей сложностью программ. Но как только возможности этих первых языков программирования были полностью исчерпаны, появились разработки языков структурного программирования, в том числе и С.

На каждом этапе развития программирования появлялись методы и инструментальные средства для обуздания неуклонно растущей сложности программ. И на каждом таком этапе новый подход вбирал в себя все самое лучшее из предыдущих, знаменуя собой прогресс в программировании. Это же можно сказать и об ООП. До ООП многие проекты достигали (а иногда и превышали) предел, за которым структурный подход к программированию оказывался уже неработоспособным. Поэтому для преодоления трудностей, связанных с усложнением программ, и возникла потребность в ООП.

ООП вобрало в себя все самые лучшие идеи структурного программирования, объединив их с рядом новых понятий. В итоге появился новый и лучший способ организации программ. В самом общем виде программа может быть организована одним из двух способов: вокруг кода (т.е. того, что фактически происходит) или же вокруг данных (т.е. того, что подвергается воздействию). Программы, созданные только методами структурного программирования, как правило, организованы вокруг кода. Такой подход можно рассматривать как “как код, воздействующий на данные”.

Совсем иначе работают объектно-ориентированные программы. Они организованы вокруг данных, исходя из главного принципа: “данные управляют доступом к коду”. В объектно-ориентированном языке определяются данные и код, которому разрешается воздействовать на эти данные. Следовательно, тип данных точно определяет операции, которые могут быть выполнены над данными. Для поддержки принципов ООП все объектно-ориентированные языки программирования, в том числе и С#, должны обладать тремя общими свойствами:

· Инкапсуляцией; Инкапсуляция - это механизм программирования, объединяющий вместе код и данные, которыми он манипулирует, исключая как вмешательство извне, так и неправильное использование данных.

· Полиморфизмом; Полиморфизм (по гречески «множество форм») - это свойство, позволяющее одному интерфейсу получать доступ к общему классу действий.

· Наследованием; Наследование-представляет собой процесс, входе которого один объект приобретает свойства другого объекта.

Разработка алгоритма.

Рис. 4

Разработка стратегии:

1. Разработка формы для отображения данных.

2. Разработка метода, для разумного и правильного хода противника

3. Разработка более продуманного интерфейса программы посредством WindowsFormApplication.

4. Придание каждой кнопке интерфейса свое собственное действие: сделать ход, анализ данных, вывод.

5. Вывод очков на экран.

Для написания программы использовались:

· Алфавит языка, или его символы - это основные неделимые знаки, с помощью которых пишутся все тексты на языке

· Лексемы, или элементарная конструкция, - минимальная единицы языка, имеющая самостоятельный смысл

· Выражения задают правило вычисления некоторых значений

· Операторы задают законченное описание некоторого действия

· Константы - неизменные величины

· Комментарии

· Основные типы данных - внутреннее представление данных в памяти компьютера или множество значений, которые могу принимать величины этого типа или операции и функции, которые можно применять к величинам этого типа

· Переменные - это именованная область памяти, в которой хранятся данные определенного типа

· Унарные операции(++,--…), бинарные и тернарные операции(+,-,<,==…)

· Операторы выражения, ветвления, цикла, передачи управления.

· Указатели и массивы

· Классы - являются абстрактным типом данных, определяемым пользователем, и представляет собой модель реального объекта. Данные класса называются полями, а функции класса - методами. Поля и методы называются элементами класса.

2. Функция разрабатываемого приложения

Запуск игры(приложения) “X/0”

Искусственный соперник, который обдуманно делает ходы

Счет побед (пользователь/соперник)

Новая игра

Выход из игры

2.1 Варианты использования

Приложение используется для игры в “Крестики-нолики”.

Рис. 5

1. dataGridView1 - поле, в которое вводятся данные с помощью клика мышки, а именно “Х”,“O”.

2. label1 - текст, который показывает количество побед пользователя.

3. Label2 - текст, предназначенный для знака “:”.

4. Label3 - текст, в который показывает количество побед компьютера.

5. menuStrip1 - меню, в котором содержаться подзаголовки “игроToolStripMenuItem”, “выходToolStripMenuItem”, “справкаToolStripMenuItem”, “оПрограммеToolStripMenuItem”

Есть три исхода игры:

1. Победа игрока.

2. Победа компьютера

3. Ничья

Рис. 6 Победа игрока

Когда игрок победил, ему начисляется 1 очко.

Рис. 7 Победа компьютера

Когда игрок проиграл, то компьютеру начисляется 1 балл

В случае ничьи никто из игроков не получает баллы.

2.2 Описание классов, их полей и методов

class X0 Поля класса: string массив, int индексы массивов; Виртуальный метод Step:

1. считывает данные с “dataGridView1.Rows[i].Cells[j]”

2. все данные переносит в массив массивов “W[i][j]”

3. проверяет количество “X”, “0” в строках/столбцах/диагоналях

4. возвращает значение, исходя из полученных данных

class X0 Поля класса: string массив, int индексы массивов; Переопределяющий метод Conv: конвертирует индексы массива “W[i][j]”, чтобы в массиве “A[i,z]” не было выхода за пределы массива.

2.3 Описание переменных

Namespace:System.Windows.Forms

· DataGridView - отвечает за отображение данных

· Label1,2,3 - отвечает за счет игры

· ToolStripMenu - отвечает за функции программы

· MessageBox - показывает кто победитель и правила игры

Методы, локальные и глобальные переменные в Form.cs

· i,j - переменные счетчика цикла

· s[,] - двумерный массив, служащий для передачи данных из dataGridView1.Rows[i].Cells[j] в метод Step.

· X0.Step(ref s) - класс X0, метод Step, который возращает 1, 2 или 3

Методы, локальные и глобальные переменные в X0.cs

В данной библиотеке классов есть 2 метода (Conv, Step).

· W[i][j] - массив массивов, служит для более удобной работой с массивом 3х3

· i,j,z - переменные счетчика цикла

· k - считывает сколько крестиков или ноликов находится в строке/диагонале

· ran - Random, служит для случайной постановки нолика.

· ir и jr - индексы массива массивов(от 0 до 3), нужны для случайного хода.

· n и m - параметры, которые нужны, чтобы не было выхода за пределы массива

· Conv(ref i, ref z) - метод, которые меняет значение i и z

алгоритм код язык информатика

3. Распределение исходного кода по файлам проекта

3.1 Проект Main

Является запускаемым проектом. Содержит ссылки на проекты Library. Основное окно приложения, реализующее отображение выходных данных и основные элементы управления:

· Новая игра

· О программе

· Выход

3.2 Проект Library

Библиотека классов приложения, организующая взаимоотношения между классом, его методами.

1. Контрольный пример и описание результатов

2. запустим приложение

3. при нажатии “О программе” появиться окно с правилами игры

4. нажимая на ячейки, появляется “X”, следом ходит противник “0” (компьютер делает обдуманный шаг)

5. выигрыш или проигрыш пользователя

6. можно посмотреть счет побед

7. при нажатии на “Новая игра” игра начинается заново

8. выход из приложения

В данном примере продемонстрированы основные возможности приложения.

4. Контрольный пример и описание результатов

4.1 Код библиотеки классов X0

public static void Conv(ref int n,ref int m)

{

//n=i, m=z

for (int i = 0; i < 3; i++) if (n == 3 && m == i) { m = 0; n = i; };

for (int i = 0; i < 3; i++) if (n == 4 && m == i) { m = 1; n = i; };

for (int i = 0; i < 3; i++) if (n == 5 && m == i) { m = 2; n = i; };

for (int i = 0; i < 3; i++) if (n == 6 && m == i) { m = i; n = i; };

for (int i = 0; i < 3; i++) if (n == 7 && m == i) { m = 2-i; n = i; };

// 00 01 02

// 10 11 12

// 20 21 22

}

public static int Step(ref string[,] A)

{

string[][] W = new string[8][];

//все линии -> массивы (массив массивов)

for (int i = 0; i < 3; i++) // по строкам

{

W[i] = new string[3];

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

{

W[i][j] = A[i, j];

}

}

for (int j = 0; j < 3; j++) //по столбцам

{

W[j+3] = new string[3];

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

{

W[j + 3][i] = A[i, j];

}

}

W[6] = new string[3]; //главня диаг.

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

{

W[6][i] = A[i, i];

}

W[7] = new string[3]; //диаг

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

{

W[7][i] = A[i, 2-i];

}

//проверяем победы

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

{

if (W[i][0] == "x" && W[i][1] == "x" && W[i][2] == "x") return 1; //PLAYER WIN

if (W[i][0] == "o" && W[i][1] == "o" && W[i][2] == "o") return 2; //COMP WIN

}

//если 2 нолика -> третий : COMP WIN

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

{

int k = 0;

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

{

if (W[i][j] == "o") ++k;

}

if (k == 2)

{

for (int z = 0; z < 3; z++) if (W[i][z] == "")

{

Conv(ref i, ref z);

A[i, z] = "o"; return 2;

}

}

}

//если 2 крестика -> закрываем

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

{ int k=0;

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

{

if (W[i][j] == "x") ++k;

}

if (k == 2) { for (int z = 0; z < 3; z++) if (W[i][z] =="") {Conv(ref i, ref z);

A[i, z] = "o"; return 0; } }

}

//если есть один О -> ещё О

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

{

int k = 0, n = 0;

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

{

if (W[i][j] == "o") ++k; if (W[i][j] == "") ++n;

}

if (k == 1&&n==2) { for (int z = 0; z < 3; z++) if (W[i][z] =="") {Conv(ref i, ref z);

A[i, z] = "o"; return 0; } }

}

//случайно ставим O

bool e = false;

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

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

if (A[i, j] != "o" && A[i, j] != "x") e = true;

if (e == false) return 3;

else

{

Random ran = new Random();

int ir = ran.Next(3); int jr = ran.Next(3);

if (A[ir, jr] != "o" && A[ir, jr] != "x") { A[ir, jr] = "o"; return 0; }

else

while (A[ir, jr] == "o" || A[ir, jr] == "x") { ir = ran.Next(3); jr = ran.Next(3); }

A[ir, jr] = "o"; return 0;

}

}

}

}

4.2 Код Form1(Main)

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

dataGridView1.RowTemplate.Height = 95;

dataGridView1.RowCount = 3;

dataGridView1.ColumnCount = 3;

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

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

dataGridView1.Rows[i].Cells[j].Value = "";

}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

{

if (dataGridView1.CurrentCell.Value != "") return;

dataGridView1.CurrentCell.Value = "x";

string[,] s = new string[3, 3];

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

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

s[i, j] = dataGridView1.Rows[i].Cells[j].Value.ToString(); //в массив dataGridView1

switch (X0.Step(ref s))

{

case 0:

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

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

{

dataGridView1.Rows[i].Cells[j].Value = s[i, j];

if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

}

break;

case 1: for (int i = 0; i < 3; i++)

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

{

dataGridView1.Rows[i].Cells[j].Value = s[i, j];

if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

}

label2.Text = (int.Parse(label2.Text) + 1).ToString(); MessageBox.Show("Вы выйграли!", "Ура!");

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

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

{ dataGridView1.Rows[i].Cells[j].Value = ""; dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Red; }

break;

case 2: for (int i = 0; i < 3; i++)

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

{

dataGridView1.Rows[i].Cells[j].Value = s[i, j];

if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

}

label3.Text = (int.Parse(label3.Text) + 1).ToString(); MessageBox.Show("Вы проиграли!", "Увы!");

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

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

{dataGridView1.Rows[i].Cells[j].Value = ""; dataGridView1.Rows[i].Cells[j].Style.ForeColor=Color.Red;} break;

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

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

{

dataGridView1.Rows[i].Cells[j].Value = s[i, j];

if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

} MessageBox.Show("Ничья!", "Жаль...");

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

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

{dataGridView1.Rows[i].Cells[j].Value = ""; dataGridView1.Rows[i].Cells[j].Style.ForeColor=Color.Red;} break;

}

}

private void label2_Click(object sender, EventArgs e)

{

}

private void label3_Click(object sender, EventArgs e)

{

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void label4_Click(object sender, EventArgs e)

{

}

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

{

Application.Exit();

}

private void игроToolStripMenuItem_Click_1(object sender, EventArgs e)

{

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

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

{

dataGridView1.Rows[i].Cells[j].Value = "";

label2.Text = "0"; label3.Text = "0";

}

}

private void ToolStripMenuItem_Click(object sender, EventArgs e)

{

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("Правила игры: \nИгроки по очереди ставят на свободные клетки поля 3х3 знаки (один всегда крестики, другой всегда нолики). Первый, выстроивший в ряд 3 своих фигуры по вертикали, горизонтали или диагонали, выигрывает. Первый ход делает игрок, ставящий крестики.", "Крестики-нолики");

}

}

}

Список литературы

1. С/C++ Програмирование на языке высокого уровня

2. .NET Framework Solutions: In Search of the Lost Win32 API by John Paul Mueller

Размещено на Allbest.ru


Подобные документы

  • Определение понятия "алгоритм". Изображение схемы алгоритма. Разработка схемы действий и этапы решения задач. Рассмотрение функции разрабатываемого приложения. Распределение исходного кода по файлам проекта. Контрольный пример и описание результатов.

    реферат [695,9 K], добавлен 28.09.2014

  • Разработка алгоритма, выполняющего поиск наилучшего решения на каждый ход в игре "крестики-нолики" (используя минимальный алгоритм). Обоснование выбора программных средств для решения задачи. Блок-схема интеллектуального алгоритма реализации программы.

    контрольная работа [380,0 K], добавлен 28.04.2014

  • Разработка консольного приложения: описание и сценарий использования программы, интерфейс пользователя. Поэтапное описание создание кода компьютерной игры "Крестики нолики". Функциональные и нефункциональные требования, описание исключительных ситуаций.

    методичка [819,6 K], добавлен 12.05.2013

  • Знакомство с интерфейсом пользователя и сценарием использования программы игры в крестики и нолики. Функциональные и нефункциональные требования для персонального компьютера. Исключительные ситуации и реакция программы. Пример кода игры и комментарии.

    курсовая работа [236,5 K], добавлен 27.01.2014

  • Проект программы "Крестики-нолики". Блок-схема алгоритма. Описание работы программного продукта. Инструкция по инсталляции. Инструкция программисту, возможность доработки с целью упрощения исполняемых кодов. Инструкция по проверке и тестированию.

    курсовая работа [235,8 K], добавлен 05.12.2009

  • Разработка популярной развлекательной игры крестики-нолики. Возможность играть с компьютером, который играет согласно созданному алгоритму. Новые возможности Visual Studio. Легкое усвоение программы. Удобный интерфейс - "визитная карточка" приложения.

    курсовая работа [74,6 K], добавлен 20.12.2009

  • Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.

    курсовая работа [821,5 K], добавлен 13.02.2012

  • Общая характеристика языков программирования. Краткий обзор C, C++, Java, PHP, Python, Delphi и Visual Basic. Процесс разработки программы игра "Крестики и нолики" с помощью AppWizard. Компиляция и компоновка модулей, определение интерфейса приложения.

    курсовая работа [2,5 M], добавлен 27.05.2014

  • Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.

    курсовая работа [1,8 M], добавлен 05.03.2013

  • Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.

    курсовая работа [352,8 K], добавлен 14.04.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.