uralplan / psi-dev

Automatically exported from code.google.com/p/psi-dev
0 stars 0 forks source link

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

Open GoogleCodeExporter opened 8 years ago

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

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

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

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

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

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

Original issue reported on code.google.com by li...@mail.ru on 28 Dec 2014 at 7:43

GoogleCodeExporter commented 8 years ago
Я думаю плагину не помешает следующее:
- информацию о пустом месте вокруг корабля, 
что выводится после его полоного 
уничтожения выводить опционально
- о победе и поражении сообщать диалогом с 
вопросом "хотите начать игру заново?" ну и 
по обоюдному согласию сторон начинать 
заново, иначе закрывать игровое поле

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

Original comment by the...@gmail.com on 12 Jan 2015 at 2:57

GoogleCodeExporter commented 8 years ago
>> - информацию о пустом месте вокруг 
корабля, что выводится после его полоного 
уничтожения выводить опционально

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

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

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

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

Original comment by li...@mail.ru on 12 Jan 2015 at 3:21