Сетевая игра крестики нолики

Автор работы: Пользователь скрыл имя, 13 Декабря 2011 в 16:09, курсовая работа

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

Целью данной работы является создание сетевой игры «Крестики-нолики».

Содержание работы

Введение 3
Описание предметной области 4
Описание программы 5
Руководство системного программиста 8
Руководство пользователя 11
Заключение 13
Список литературы

Содержимое работы - 1 файл

кр ко.doc

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

Федеральное бюджетное государственное образовательное  учреждение высшего профессионального  образования

Ижевский  государственный технический университет

Воткинский  филиал 

Кафедра ОВП и СУ 
 
 
 
 
 
 

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

по предмету : «Программное обеспечение вычислительных сетей»

тема: «Сетевая игра «Крестики-нолики»» 
 
 
 

Выполнили: студенты группы Д 9-45-1

Поносов К.А., Куклин С.Н., ХалиловТ.Р.

Проверил: Замятин К.И.
 
 
 
 
 

г. Воткинск,

2011 

Содержание 

Введение 3
Описание  предметной области 4
Описание  программы 5
Руководство системного программиста 8
Руководство пользователя 11
Заключение 13
Список  литературы 14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение 

       Сетевая игра – компьютерная игра, в которую одновременно играют два и более человек.

       Первой сетевой игрой считается Tennis for Two (1958 год). Игра была сделана для аналоговой ЭВМ и выводила игровое поле на осциллографе.

       Уже первые приставки (Pong, Magnavox Odyssey) имели два контроллера, что позволяло играть вдвоём.

      Крестики-нолики – весьма известная игра, как у нас, так и в англоязычном мире, где она называется tic-tac-toe. Игра может представлять интерес только для маленьких детей. Не требуется больших усилий, чтобы установить, что она ничейная: ноликам надо на ход в угол отвечать ходом в центр и наоборот. Слишком уж мало игровое поле и мало вариантов совершения хода. Этот факт вызвал желание исправить положение путём усложнения правил игры и увеличения игрового поля.

       Игроки по очереди ставят на свободные клетки поля 3х3 знаки (один всегда крестики, другой всегда нолики). Первый, выстроивший в ряд 3 своих фигур по вертикали, горизонтали или диагонали, выигрывает. Первый ход делает игрок, ставящий крестики.

       По завершении партии выигравшая сторона зачёркивает чертой свои три знака (нолика или крестика), составляющих сплошной ряд.

       Целью данной работы является создание сетевой игры «Крестики-нолики».  
 
 
 
 
 
 
 
 

Описание  предметной области 

       Крестики-нолики – логическая игра между двумя противниками на квадратном поле 3 на 3 клетки или большего размера. Игроки по очереди ставят на свободные клетки поля знаки. Один всегда ставит крестики, другой – нолики. Первый, выстроивший в ряд 3 своих фигур по вертикали, горизонтали или диагонали, выигрывает (Рисунок 1). Обычно первым ставиться крестик.  

Рисунок 1  Выигранная ситуация в игре 

       Если игрок, который начинает  ходить первым, ставит крестик  в центр, то игра для второго  игрока сводится в большинстве  случаев к тому, чтобы закончить  бой ничьей. Для этого нужно блокировать создание тройки крестиков у игрока «Х». Хорошим условием обеспечения ничьей для игрока «О» является постановка нолика в углы поля.

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

 

Описание  программы 

       Сетевая игра «Крестики-нолики», является классической версией игры «Крестики-нолики».

       Программа написана на языке С# в интегрированной среде Microsoft Visual Studio 2008. Для работы под управлением ОС Windows.

       Программа написана на технологии .NET, состоит из следующих файлов:

       Form1.cs – Главный файл программы, в котором происходит реализация всех алгоритмов;

       Form1.Designer.cs – Описание переменных и процедур реализованных в Form1.cs.;

       MyNet.cs – Работа с UDP;

       MyTcp.cs – Работа с TCP;

       Program.cs – Здесь содержится точка входа в программу, которая использует все предыдущие модули; 
 

 

Блок-схема  алгоритма

    Рисунок 2 – Алгоритм работы программы

    Руководство системного программиста 

       Назначение программы - развлечение играющих, совершенствование их координации и логического мышления. Программа может применяться в качестве игры на разных типах персональных компьютеров. 

       Постановка  задачи на разработку:

       Разработка  программы ведется в рамках лабораторных работ по предмету “Программное обеспечение  вычислительных сетей” в соответствии с учебным планом кафедры ОВПиСУ для специальности 2201 “Вычислительные машины комплексы системы и сети”.

       Описание  и обоснование выбора метода организации  данных:

       В качестве поля используется двумерный массив BoardArray[i, j]. Крестику в этом массиве соответствует символ 'X', а нолику -'O'. 

Рисунок 3 Игровое поле 
 
 

       Описание алгоритма работы сетевой части программы.

          Обеспечить возможность поиска клиентам серверов автоматически, т.к. подключение игроков производится без предварительного договора. Клиент отправляет сообщение о поиске серверов, и одновременно принимает от них сообщения, если они свободны. Далее выводим список в окно ListBox1. При запуске сервера, принимаем сообщения от клиентов, которые хотят сыграть. В ответ отправляем им сообщения о том, что мы свободны. После того как клиент получил IP адрес сервера он подключается к нему. Игра основана на принципе очереди, так как один игрок ходит, другой ждет). При каждом ходе отправляются координаты ячейки поля, в которое ставится крестик (нолик). Игрок, который ждет свой ход, принимает эти координаты. Далее идет проверка хода и состояния партии. Если один из игроков поставил в ряд 3 символа, то он побеждает и выдается сообщение о его победе.

   После того, как игра сыграна, производится отключение клиента от сервера и завершение процедуры сканирования сервером.  

   Описание  прикладного протокола  игры 

       Для реализации прикладного протокола создан класс MyTcp. Программа является реализация двухпоточного приложения. Изначально запускается главный поток, в котором происходит выбор типа игры: сервер или клиент. Если выбран сервер, то создается второй поток, который будет производить работу по приему и передачи сообщений между сервером и клиентом. Производится ожидание подключения клиента, для этого создается класс UdpClient, который ожидает UDP-пакет с данными «#FIND_SERVER», затем на полученный адрес  отправляется UDP-сообщение «#FIND_SERVER:OK». Если приходит сообщение «#FIND_SERVER:OK», то создается TcpClient, на основе которого создается     TCP – соединение с клиентом, это класс высокого уровня, который предоставляет простые интерфейсы взаимодействия  через TCP.

          Если выбран клиент, то отсылается сообщение «#FIND_SERVER» по    UDP – протоколу на широковещательный адрес. Производится ожидание сообщений  «#FIND_SERVER:OK»  от всех доступных серверов. Создается TcpClient, на основе которого создается TCP – соединение с сервером, это класс высокого уровня, который предоставляет простые интерфейсы взаимодействия  через TCP.

       После установки TCP – соединения происходит взаимодействие между клиентом и сервером по протоколу игры.

     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Руководство пользователя 

       Целью игры: первым, выстроить в ряд 3 своих фигуры («Х» или «О») по вертикали, горизонтали или диагонали.

       Начало  игры

           Откройте файл «Project1.exe» откроется главное окно приложения (рисунок 3).

Рисунок 4 Начало игры 

       Выберите режим игры клиент или сервер. Для того, чтобы выбрать сервер – заходим в ИграСоздать игру. Для того, чтобы быть клиентом, заходим в  ИграПрисоединиться.

       Если выбрали «Клиент», то, при наличии серверов в вашей сети, серверы игры отобразятся в таблице (Рисунок 5).

Рисунок 5 Отображение доступных серверов 

       Выберите сервер, нажав на него двойным кликом мыши. Игра начнется (Рисунок 6). Сделайте ход, когда будете готовы к игре.  

      

      Рисунок 6 Начало игры

 

Заключение 

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

       Разработка программного изделия происходила в несколько этапов: 
1.    Определение основных требований к программному изделию; 
2.    Сбор необходимой информации; 
3.    Обработка информации; 
4.    Программное кодирование в среде Microsoft Visual Studio 2008; 
5.    Отладка, редактирование и исправление ошибок; 
6.    Составление и оформление программной документации. 
       В ходе выполнения курсовой работы был получен большой опыт по программированию на языке С#, а так же опыт в созданиях сетевых приложений, сетевых протоколов.

 

Список используемой литературы 

  1. http://www.rsdn.ru/article/dotnet/systemnet.xml;
  2. http://msdn.microsoft.com/ ;
  3. http://ru.wikipedia.org

Информация о работе Сетевая игра крестики нолики