Логическая игра «КРЕСТИКИ-НОЛИКИ» на неограниченном поле

Автор работы: Пользователь скрыл имя, 25 Февраля 2013 в 17:47, курсовая работа

Краткое описание

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

Содержание

Введение…………………………………..…………………………..…….6
Анализ задания ……………………………………………………....…….6
Входные данные системы………………………………………....…...6
Выходные данные системы……………………………………………6
Проектирование модели использования программы………………...6
Проектирование интерфейса пользователя…………………………..7
Проектирование классов………………………………………………8
Реализация……………………………………………………………….....9
Тестирование……………………………………………………………...10
Исключительные ситуации………………………………………………10
Заключение………………………………………………………………..10
Список используемых источников………………………………………….10

Вложенные файлы: 2 файла

пз крестики нолики.doc

— 253.00 Кб (Скачать файл)


Министерство  образования и науки Российской Федерации

 

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И  РАДИОЭЛЕКТРОНИКИ (ТУСУР)

 

 

 

Кафедра компьютерных систем в управлении и проектировании (КСУП)

 

 

 

 

 

 

 

 

 

 

Игра «Крестики-нолики»

Пояснительная записка к курсовой работе по дисциплине

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

 

 

 

 

 

Выполнил:

студент гр. 580 - 1

_______Д.К. Миронюк

«__» ___________2013

 

Научный руководитель:

_______А.А. Калентьев

«__» ___________ 2013


 

 

 

2013

РЕФЕРАТ

 

Пояснительная записка содержит проектную документацию программной системы - игра «Крестики-нолики». Программа спроектирована в системе Enterprise Architect. Программа реализована в интегрированной среде разработки «Microsoft Visual Studio 2010» на языке Visual C#. Пояснительная записка составлена в текстовом редакторе Microsoft Offise 2010.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Федеральное агентство по образованию Российской Федерации.

 

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ (ТУСУР)

 

 

 

 

 

 

 

Утверждаю

Зав. кафедры  КСУП

________Ю.А. Шурыгин

«___»________________г.

 

 

 

 

 

 

ЗАДАНИЕ

 

На курсовую работу по предмету

 

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

 

Студенту Миронюк Дмитрию группа 580-1

 

  1. Тема работы: игра «Крестики-нолики».

 

2. Программа представляет собой хорошо известную игру «Крестики-нолики», правила которой немного отличаются от оригинальной версии, так как игра идёт на поле, размеры которого задаёт пользователь перед началом игры и чтобы выиграть необходимо, составить в ряд 5 крестиков или ноликов.

 

3. Содержание пояснительной записки:

- анализ задания;

- UML диаграмма;

- заключение;

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

5. Дата выдачи задания 21.09.2013

 

Руководитель:  Калентьев  А.А.________

 

Задание принял к исполнению

Миронюк Д.К.________

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Содержание

  1. Введение…………………………………..…………………………..…….6
  2. Анализ задания ……………………………………………………....…….6
    1. Входные данные системы………………………………………....…...6
    2. Выходные данные системы……………………………………………6
    3. Проектирование модели использования программы………………...6
    4. Проектирование интерфейса пользователя…………………………..7
    5. Проектирование классов………………………………………………8
  3. Реализация……………………………………………………………….....9
  4. Тестирование……………………………………………………………...10
  5. Исключительные ситуации………………………………………………10
  6. Заключение………………………………………………………………..10

Список используемых источников………………………………………….10

 

 

 

 

 

 

 

 

 

 

 

1 Введение

Тема курсовой работы – игра «Крестики-нолики». Приложение включает такие функции как: игра против компьютера или друг против друга, изменение размерности поля.

 

2 Анализ задания

2.1 Входные данные системы:

 

Разрабатываемой системе должны поступать следующие  данные от пользователя:

- нажатия на  кнопки графического пользовательского  интерфейса, формирующие начальное  меню и меню опций;

- нажатия на  клавиши клавиатуры;

- нажатия мышью  на клетки игрового поля.

 

 

2.2 Выходные данные системы:

 

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

- графическое  отображение игрового поля в  реальном времени;

- вывод системного  сообщения при победе или поражении.

 

2.3 Проектирование модели использования программой

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

Рисунок 2.1 –  Диаграмма использования

2.4 Проектирование  интерфейса пользователя

Был спроектирован  пользовательский интерфейс, представленный на рисунках ниже

 

Рисунок 2.2 – главное окно программы

Рисунок 2.3 –  процесс игры

Рисунок 2.4 –  окно окончания игры

 

Для начала необходимо выбрать режим игры, игра против компьютера или против другого игрока, ввести свое имя, выбрать за кого будете играть, и нажать кнопку «Старт». В процессе игры, пользователь может начать новую игру или выйти из игры.

Что бы просмотреть  список победителей необходимо выбрать  пункт «Победители» в меню «Файл».

 

Что бы начать новую  игру необходимо выбрать пункт «Новая игра» в меню «Файл».

 

2.5 Проектирование  классов

В процессе проектирования классов, была получена следующая схема классов, представленная на рисунке 2.5:

Рисунок 2.5 – UML диаграмма классов

 

 

 

 

 

 

3 Реализация

MainForm – основной класс программы:

  1. CreateCellRect() - возвращает прямоугольник - размеры клетки;
  2. CreateStoneRect() - возвращает прямоугольник – шашка;
  3. DrawBoard() - рисует игровое поле;
  4. DrawCell() - рисует клетки на игровом поле;
  5. DrawWhiteStone() - рисует белую шашку – крестик;
  6. DrawBlackStone() - рисует черную шашку – нолик;
  7. InitializeVariables() - инициализирует переменные;
  8. NewGame() - начинает новую игру;
  9. MakeMove() -  устанавливает шашку в указанную позицию;
  10. ShowWinner() - показывает победителя;
  11. PlayWithComputer() - игра против компьютера;
  12. PlayWithPlayer() - игра против игрока.

Logiс – класс содержит логическую составляющую игры:

  1. HaveVictoryAt() - возвращает true, если есть победитель;
  2. NextStep() - возвращает координату следующего положения шашки компьютера;
  3. GetComputerColor() - возвращает цвет шашек компьютера;
  4. CountStonesInDirection() - возвращает количество шашек идущих подряд в данном направлении;
  5. CalcScore() - возвращает максимальное количество шашек идущих подряд.

WinnersList – класс содержит методы для работы со списком победителей:

    1. AddWinner() - добавление победителя в список;
    2. GetMaxPassIndex() - возвращает индекс победителя с максимальным числом очков;
    3. GetMinPassIndex() - возвращает индекс победителя, у которого меньше всего очков;
    4. Initialization() - инициализация переменных;
    5. LoadWinners() - загрузка победителей из файла;
    6. SaveWinners() - сохранение победителей в файл;
    7. Sort() - сортирует победителей по очкам;
    8. RemoveWinners() - удаляет список победителей.

WinnerProperty – класс содержит параметры для сохранения в файл;     

SimpleLogic – класс содержит логику игры компьютера:

    1. NextStep() - возвращает координату следующего положения шашки компьютера;
    2. FilterCellsStageOne() - фильтрует список координат следующего хода на первом шаге;
    3. FilterCellsStageTwo() - фильтрует список координат следующего хода на втором шаге;
    4. FilterCellsStageThree() - фильтрует список координат следующего хода на третьем шаге;
    5. FilterCellsCore() - возвращает отфильтрованный список координат;
    6. EstimateForStageOne() - оценка хода для первого этапа;
    7. EstimateForStageTwo() - оценка хода для второго этапа;
    8. EstimateForStageThree() - оценка хода для третьего этапа.

Board – игровое поле:

    1. PutStone() - устанавливает шашку на поле;
    2. GetStone() - возвращает шашку;
    3. IsOutside() - показывает, находится ли точка с координатами x, y в пределах игрового поля;
    4. Clear() - очищает игровое поле.

 

 

4 Тестирование

 

  1. Проверяем работоспособность режимов игры.
  2. Проверяем сохранение списка победителей в файл. Программа корректно сохраняет все данные в файл, а затем загружает их.

 

5 Исключительные ситуации

 

При тестировании программы исключительных ситуаций не возникло.

 

 

6 Заключение

 

В процессе проделанной работы было разработано  приложение – игра «Крестики-нолики», имеющее графический интерфейс пользователя, с возможностью играть против компьютера.

 

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

 

 

 

Список  используемых источников

 

  1. C# полное руководство. Автор: Герберт Шилдт.
  2. URL: http://www.google.ru/

ТЗ - крестики нолики.docx

— 22.81 Кб (Просмотреть документ, Скачать файл)

Информация о работе Логическая игра «КРЕСТИКИ-НОЛИКИ» на неограниченном поле