Skip to content

Pikhto/naval-battle-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Постановка задачи

Что?

Телеграмм бот, с которым можно играть в игру "Морской бой"

Что бот должен уметь?

  1. Генерировать игровое поле противника и расставлять корабли случайным образом
  2. Генерировать игровое поле игрока и расставлять корабли случайным образом
  3. Хранить состояние ("в игре", "не в игре")
  4. Репрезентовать игровое поле в виде клавиатуры 8Х8
  5. Отмечать промахи и попадания на поле
  6. Нагибать игрока шквальным огнём
  7. do it

Описание взаимодействия с ботом

  1. Пользователь отправляет команду /start боту (или стартует его, найдя в поиске)
  2. Бот приветствует пользователя и предлагает сыграть в игру "Морской бой", возвращая сообщение с двумя кнопками "Игра", "Не хочу", также предлагает пользователю прочитать подробные правила, отправив команду /help
  3. На этом этапе пользователь может совершить 4 действия
    1. Согласиться поиграть с ботом в игру, выбрав кнопку "Игра"
    2. Не согласиться играть, выбрав кнопку "Не хочу"
    3. Отправить в чат команду /help
    4. Отправить в чат любое другое сообщение
  4. Пользователь отправляет в чат согласие играть в игру
    1. Бот сообщает пользователю, что очень рад поиграть и возвращает игровое поле противника
    2. Бот сохраняет информацию о том, что пользователь находится в состоянии "Игра"
    3. Пользователь на этом этапе может совершить 3 действия
      1. Выбрать ячейку нанесения удара
      2. Прислать в чат команду /cancel
      3. Прислать что-то отличное от этих 2-х пунктов
    4. Пользователь атакует
      1. Бот проверяет, попал или нет
      2. Если попал
        1. Если все корабли потоплены, поздравляет с победой и переводит игру в состояние "не в игре", присылает пользователю сообщение с предложением сыграть еще раз
        2. Возвращает поле для следующего выстрела и так до промаха
      3. Если нет
        1. Возвращает поле игрока, и передаёт ход боту
    5. Бот атакует
      1. Бот проверяет, попал или нет
      2. Если попал
        1. Если все корабли потоплены, поздравляет себя с победой и переводит игру в состояние "не в игре", присылает пользователю сообщение с предложением сыграть еще раз
        2. Бот атакует и так до промаха
      3. Если нет
        1. Возвращает поле противника, и передаёт ход игроку
    6. Пользователь присылает в чат команду /cancel
      1. Бот переводит состояние из "в игре" в "не в игре"
      2. Бот отправляет в чат сообщение о том, что игра закончилась
      3. Бот отправляет в чат сообщение о том, что если пользователь захочет снова сыграть, то пусть отправит сообщение "Игра"
    7. Пользователь в состоянии "в игре" присылает в чат, что какое-то действие не связанное с игровыми правилами
      1. Бот отправляет пользователю сообщение о том, что по правилам игры пользователь может выбрать ячейку для атаки или команду /cancel
  5. Пользователь отправляет в чат отказ играть в игру
    1. Бот отправляет пользователю сообщение, типа, "Понятно! Струсил!" и инструкцию, что нужно сделать пользователю если он все-таки захочет поиграть
  6. Пользователь отправляет в чат команду /help
    1. Бот присылает пользователю правила игры и описание команд
  7. Пользователь отправляет в чат любое другое сообщение
    1. Бот сообщает, что не понимает пользователя и снова предлагает сыграть в игру

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages