Сетевая игра МОРСКОЙ БОЙ+. Управляемая форма

Популярная игра "Морской бой" для всех видов клиентов 1С:Предприятие 8.2 (8.3). Игра с компьютером и с оппонентом по сети.

Игра возможна как с компьютером, так и с оппонентом по сети. В качестве сетевого ресурса обмена информацией между игроками используется КаталогВременныхФайлов сервера 1С (кластера). Т.е. в игру можно играть как в рамках одной конфигурации так и в двух различных, единственное условие — эти конфигурации должны использовать один общий сервер 1С (кластер).

P.S. Возможна медленная работа из-за особенностей платформы, т.к. в обработке используется графическая схема, а она, похоже, каждый раз «перерисовывается» целиком, после очередного действия, производимого над ней. Даже попытка использования gif-анимации приводит к статической картинке. Т.е. графическая схема формируется не сервере одним рисунком и затем публикуется для отображения на клиенте.

45 Comments

  1. Serj1C

    Симпатично!

    Reply ↓
  2. Lokiy

    Молодцом !

    Reply ↓
  3. Irwin

    Поддержу (1), действительно симпатично смотрится.

    Reply ↓
  4. frc

    Замечательная графика.

    Только вот 1с для даже для такой простейшей игры не предназанчена — не тянет.

    Reply ↓
  5. frc

    Автор, корабли не могут соприкасаться «бортами».

    Reply ↓
  6. frc

    Еще бы порекомендовал паузу 1-2 секунда между последовательными ходами компьютера — а то графически трудно уследить, куда он ходит, приходитмся читать/искать текстовое описание хода.

    Ну, и заодно иммитация «компьютер вроде как думает».

    А то ляпает ходы и «бездумно», и не видно куда 🙂

    Reply ↓
  7. bobank

    (5) frc, только углами.

    Reply ↓
  8. bobank

    (6) frc, это можно сделать самостоятельно. Найти в тексте модуля формы текст ПодключитьОбработчикОжидания и установить время в секундах, сейчас 1 сек.

    Reply ↓
  9. RomAsVo

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

    Reply ↓
  10. Ёпрст

    (7) тоже не может

    Reply ↓
  11. bobank

    (10) Ёпрст, в каждом отдельно взятом регионе свои правила.

    Reply ↓
  12. bobank

    (9) RomAsVo, что-то подобное было здесь на инфостарте, поищите.

    Reply ↓
  13. soulsteps

    Автор молодчик!!! Классная игрушка! Только одно замечание, если корабль «убит», он должен по перефирии полностью обводиться. Скрин прилагаю. А так супер, безукоризненно плюс автору.

    Reply ↓
  14. bobank

    (13) soulsteps, обводится «убитый» полностью, т.к. прошу не забывать, что в правилах этой игры корабли могут соприкасаться углами, поэтому обводятся только те клетки, которые соприкасаютя гранями.

    Reply ↓
  15. scorp_23

    обнаружил небольшой баг — если после промаха игрок продолжит нажимать на клетки в поле противника, то продолжится обстрел поля компьютера — нет блокировки ходов игрока, пока компьютер не сделал свой шаг. я так выиграл, не дав сделать ни одного шага компьютеру)

    Reply ↓
  16. bobank

    (16) scorp_23, ну да, забыл про это. обработчик ожидания работает только когда нет активности пользователя.

    Reply ↓
  17. ivs200999

    Впервые слышу про ограничения по размещению кораблей на поле.

    Reply ↓
  18. echo77

    Плюс за творческий подход к реализации графической составляющей игры.

    Еще бы сетевую игру сделать, например, через записи справочника/документа/регистра

    Reply ↓
  19. Varies

    (18) ivs200999, Впервые слышу что их нету.

    bobank, в «Морском бое» действительно есть ограничение на размещение кораблей, углы не должны соприкасаться. Я ещё со школы помню когда играли на двух тетрадных листах 🙂 Потом на компьютерах появились игры, там тоже такие же правила. Если не ошибаюсь сетевой «Морской бой» был реализован в маил.ру агенте и там тоже такие же правила.

    Reply ↓
  20. bobank

    (21) kilokilo, 1$m

    Reply ↓
  21. steg

    а почему игра не запускается

    Reply ↓
  22. frc

    (23) steg,

    потому что на управляемых формах и должна запускаться в УП.

    Reply ↓
  23. frc

    (18) ivs200999,

    корабли, когда «плавают», бортами не соприкасаются 🙂

    Reply ↓
  24. Odini4ka69

    (24) frc, всё сообразил )))

    Reply ↓
  25. TrueGadich

    Автору +

    Reply ↓
  26. SerebanSK

    Автору +. Интересное оформление получилось. Как-то писал морской бой на visual basic в технаре. Только в правилах обычно принято, чтобы корабли не соприкасались углами и обводить убитого со всех сторон соответственно. Предлагаю добавить уровни сложности. Алгоритм элементарный: добитие раненых включается с определенного уровня и в зависимости от уровня у компьютера может быть несколько «невидимых» попыток попасть. т.е. он бьет один раз — не попал — ячейку не открываем, а даем ему еще одну попытку и только во второй(или 3,4 — в зависимости от сложности) открываем ячейку даже если не попал. Ну а если попал то все как обычно. Выше 5-ого уровня играть не реально), а десятый разносит за 2-3 хода.

    Reply ↓
  27. Пуд

    Действительно здорово:)

    Reply ↓
  28. alexsey777

    Прикольно. Автор молодец.

    Reply ↓
  29. vbuots

    Противник расставляет кораблики рядом, красивоо сделано +.

    http://pix.am/ozKU/

    Игру по сети делать будете?

    Reply ↓
  30. bobank

    Сетевая версия на подходе. Выбираю варианты взаимодействия — либо через общий сетевой ресурс, либо через объект конфигурации, но тогда теряется смысл во внешней обработке. Так же разрабатываю протокол обмена (мне он для других целей потом пригодится).

    Готовую версию обработки выложу ориентировчно в понедельник — вторник.

    Reply ↓
  31. bobank

    (32) vbuots, да я уже писал выше, что в правилах этой игры корабли могут соприкасаться углами, но не гранями.

    Reply ↓
  32. bobank

    Реализован сетевой режим, т.е. игра с оппонентом.

    Перезалил файл.

    Reply ↓
  33. serega3333

    (35) красивая реализация, зачетно

    Reply ↓
  34. xzevsx

    Улыбнуло, нужная вещь

    Reply ↓
  35. ksai

    (34)

    В правилах классической игры «Морской бой» корабли ни в коем случае не соприкасаются углами. О том, что есть другой вариант игры, когда это возможно, узнал впервые из этой публикации. Это ж читерство чистой воды 🙂

    Reply ↓
  36. mc1c80

    Только вчера подумал как написать, а тут уже есть. Молодец.

    Reply ↓
  37. Zord

    Хорошая штука

    Reply ↓
  38. mc1c80

    Попробуем скачать. Автору +.

    Reply ↓
  39. deemaa

    Однозначно плюс за реализацию и дизайн, очень креативно). Это относится и к другим работам автора. Вообщем молодец!

    Reply ↓
  40. piton66

    За идею ставлю плюс!!!

    Reply ↓
  41. Bukaska

    За идею — плюс)))

    Reply ↓
  42. miroha

    На 8.3 не работает, корабли не появляются, только на 8.2

    Reply ↓
  43. bobank

    Вероятно проблема с релизом платформы. Только что проверил, все работает (платформа 8.3.5.1383, веб-клиент, тонкий клиент)

    Reply ↓
  44. tsatsur

    Кто-то пробовал на 8.3.15?:)

    Reply ↓
  45. tsatsur

    (48) Изменить уже не могу, попробовал — работает.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *