main icon indicating copy to clipboard operation
main copied to clipboard

BattleShip Plugin - разработка, пожелания, предложения

Open Ri0n opened this issue 10 years ago • 5 comments

Original issue 604 created by psi-plus on 2014-12-28T19:43:29.000Z:

Обсуждение и тест плагина, реализующего игру Морской бой.

Игра реализована на основании протокола, описанного тут: http://svn.xmpp.ru/repos/tkabber/trunk/tkabber-plugins/battleship/proto Обычно я не выкладываю не завершенное, но пока нет времени. Пусть полежит, чтоб не потерялось.

Возможности:

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

Особенности:

  • Количество и размер кораблей нестандартно: 5, 4, 3, 2, 2, 1, 1. Это особенность реализации в ткаббере. Другой набор кораблей он не принимает.
  • При инициализации досок и после завершения игры передаются достаточно большие станзы. Это обусловлено тем, что перед игрой каждая клетка и каждый корабль подписывается и происходит обмен хэшами, дабы избежать махинаций.

Еще не реализовано:

  • Корабли нельзя расставлять самостоятельно. Пока корабли размещаются случайным образом, нужно всего лишь подтвердить расположение. Код еще не написан.
  • Звуки не работают. Весь код есть, настройки тоже. Надо только расставить соответствующие вызовы.
  • История ходов предусмотрена, но не отображается. Тоже не сложно.
  • Есть некоторые проблемы с обновлением доски оппонента. Пока еще не выяснил причину. Надо вылавливать.
  • Возможно имеет смысл поля вокруг уничтоженных кораблей выделять по-другому.
  • Возможно имеет смысл вообще всю доску перерисовать. Мои художества на любителя.
  • Не помешает чистка кода. Много всего переделывалось, код местами ужасен.

Жду пожеланий и предложений из тех что не описаны выше. Ну и, чего уж, багов конечно.

Ri0n avatar Mar 19 '15 10:03 Ri0n

Comment #1 originally posted by psi-plus on 2015-01-12T14:57:03.000Z:

Я думаю плагину не помешает следующее:

  • информацию о пустом месте вокруг корабля, что выводится после его полоного уничтожения выводить опционально
  • о победе и поражении сообщать диалогом с вопросом "хотите начать игру заново?" ну и по обоюдному согласию сторон начинать заново, иначе закрывать игровое поле

Что необязательно, но можно:

  • когда ход делает другой игрок, то затемнять игровое поле. Заодно когда поле с кораблями утверждено, то затемнять и его
  • можно корабли сделать готовым набором (можно картинками) и перетаскиванием (с панельки скажем) размещать корабль (ну там кнопку повернуть тоже добавить или два вида кораблей сделать под 0 и под 90). Это значительно ускорит процесс игры

Ri0n avatar Mar 19 '15 10:03 Ri0n

Comment #2 originally posted by psi-plus on 2015-01-12T15:21:31.000Z:

  • информацию о пустом месте вокруг корабля, что выводится после его полоного уничтожения выводить опционально

Про это написано в разделе "Еще не реализовано". Планирую на месте вокруг корабля рисовать не точки а затемнять клетки. Визуально должно лучше смотреться. Реально выстрелы вокруг корабля и так не проставляются.

  • о победе и поражении сообщать диалогом с вопросом "хотите начать игру заново?" ну и по обоюдному согласию сторон начинать заново, иначе закрывать игровое поле

Тут есть проблема: есть немалый шанс что оба нажмут "Да" и тогда приглашение прилетит обоим сторонам. И вообще, лишние диалоги порождают лишние проблемы. Допустим, один нажал "да", другой ничего не успел сделать. У него уже будет два окна диалога. Мое мнение: лучше использовать соответствующий пункт меню.

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

Ri0n avatar Mar 19 '15 10:03 Ri0n

Мне кажется автор этот плагин забросил

Vitozz avatar Mar 27 '17 18:03 Vitozz

Мне кажется автор этот плагин забросил

А мне кажется, нет. Мало того, автор хотел недавно его допилить, но решил, что сначала надо историю релизнуть. Он в dev ведь никому не мешает?

liuch avatar Mar 27 '17 18:03 liuch

Нет конечно, пускай лежит )

Vitozz avatar Mar 27 '17 20:03 Vitozz