Skip to content

hiba9201/battleship

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Игра "Пчелиный бой"

Версия 1.1

Автор: Пелевина Анастасия ([email protected])

Описание

Приложение является реализацией игры "Морской бой" против бота и с режимом hot seat на шестиугольном поле

Требования

  • Модуль tweepy (Установка через pip)
  • Модуль colorama только для Windows (Установка через pip)

Состав

Консольная версия: cbattlebee.py

Модули: game/

Модули для работы с сетью: network/

Тесты: tests/

Консольная версия

Запуск: ./cbattlebee.py

Управление

Формат координат в игре - число БУКВА (e.g. 1 A)

  • show username | bot - показать поле игрока | бота
  • auto - расставить корабли на поле игрока автоматически
  • new <side> <ship_max> <mode> <difficulty> - начать новую игру См. подробнее ниже
  • help - показать справку по управлению
  • clear - очистить консоль
  • stat - показать текущую игровую статистику
  • fire number LETTER - выстрелить в заданную клетку
  • place ship_len rotation number LETTER - поставить корабль на поле. См. подробнее ниже
  • exit - закрыть приложение

Начало новой игры

new <side> <ship_max> <mode> <difficulty>:

  • side - длина стороны поля
  • ship_max - максимальная длина коробля в игре
  • mode - режим игры: bot или hs (hot seat)
  • difficulty - сложность для игры с ботом (0 или 1)

Все аргументы необязательные

Постановка корабля на поле

place ship_len rotation number LETTER:

  • ship_len - длина корабля

  • rotation - поворот корабля относительно верхнего левого угла.

    Значения:

     h - горизонатльно
     vr - вертикально вправо
     vl - вертикально влево
    
  • number LETTER - координаты клетки, куда ставится корабль

Подробности реализации

Модуль, отвечающий за логику игры, находится в папке game/. Основным является класс environment.Environment, реализующий всю игровую среду, где хранятся игроки и прочая информация о текущей игре. Также здесь есть классы environment.Honeycomb и environment.BotAI, отвечающие, соответсвенно, за игровое поле и искусственный интеллект бота. Есть класс environment.Player реализующий механику игрока, например, доступ к полю, кораблям и т.д. Также есть модуль utils.py со вспомогательными методами

На модули написаны тесты, котрые находятся в директории tests/. Покрытие тестами модуля environment.py составляет 67%, модуля utils.py - 76%:

    game/environment.py     386    129    67%
    game/utils.py            37      9    76%

Модуль для доступа к твиттеру и работы с ним хранится в папке network/. В нем есть класс twitter_access.Twitter для аутентификации и отправки твиттов.

About

battleship game for python.task

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages