Игра "Только вперед!" + мини-библиотека для игр по сети

01.03.23

Задачи пользователя - Игры

Правила этой игры поймет любой дошкольник, но выиграть в нее по силам не каждому взрослому...

Скачать файлы

Наименование Файл Версия Размер
Игра "Только вперед!"
.erf 30,73Kb
1
.erf 30,73Kb 1 Скачать
Конфигурация с регистром
.cf 78,33Kb
1
.cf 78,33Kb 1 Скачать

Правила игры

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

 
 Пример игры

Играть в эту игру можно и IRL на шахматной или подобной ей доске, на бумаге в клетку, на песке/снегу etc. 

 

О реализации игры

В качестве поля для игры используется табличный документ. Размеры поля настраиваются. С целью упрощения реализации, фишки представляют собой не картинки, а символы шрифта Wingdings. В случае его отсутствия в системе, в настройках можно выбрать символ любого другого подходящего шрифта. При всей простоте правил, игра достаточно сложна. В процессе игры ведется история ходов, в любой момент можно отменить ход(ы) и вернуться к предыдущему состоянию - это неоценимый помощник при игре с компьютером. Для игры с компьютером имеется три уровня сложности. Реализация AI в игре основана на методах оценки позиции, в противовес методам перебора вглубь дерева возможных ходов. Выиграть на уровне "просто" не представляет проблемы, а на уровне "эксперт" выиграть очень сложно. Интересно, кто-нибудь из сообщества найдет способ выиграть у эксперта, не заглядывая в код? Шансов сделать это немного...

Основные настройки игры:

 

 

Игра "по сети"

Применяется следующий подход: каждое изменение ситуации в процессе игры записывается отдельной записью в какое-нибудь общедоступное хранилище. Каждый экземпляр игры периодически самостоятельно опрашивает состояние хранилища, читает его записи. Что для 1С может быть таким хранилищем? Сразу в голову приходит как минимум два варианта: некий объект метаданных в базе, например регистр сведений, и общедоступный каталог с файлами. Оба варианта реализованы в игре. Каждый имеет свои плюсы и минусы. Регистр предполагает изменение конфигурации, все игроки должны работать с одной ИБ, но зато не требуется дополнительных прав и отсутствуют ограничения в распределенной среде со многими серверами. Использование файлов требует наличия общедоступного каталога с полными правами для всех рабочих серверов, но не меняет конфигурацию и позволяет играть, работая в разных ИБ. Предполагается, что одного регистра (каталога) достаточно для работы игр разного вида.

Реализация механизма оформлена в виде "мини-библиотеки" в модуле объекта, библиотека может быть использована в других играх. Функции программного интерфейса библиотеки не зависят от используемого варианта, работа с файлами или регистром скрыта уровнем ниже. Библиотека может быть расширена для других вариантов хранения записей - например, FTP.

Настройки сетевой игры:

 

 

Рассмотрим подробнее вариант с регистром. Для этого в конфигурации должен быть независимый непериодический регистр сведений такого вида:

 

 

Имя регистра значения не имеет.

Поля регистра:

  • Тип - Строка(32) - Название класса игры, в нашем случае "Только вперед!" 
  • Имя - Строка(50) - Уникальное имя текущей игры, в нашем случае - GUID
  • Номер - Число(4,0) - Уникальный номер записи, инкрементное поле
  • Статус - Строка(20) - Тип записи, описывающий статус игры, например "Подключение", "Окончание" и т.п.
  • Данные - ХранилищеЗначения - Структура с произвольными данными
  • НомерУчастника - Число(2,0) - Номер игрока (начиная с 1)
  • Дата - Дата и время - Дата записи

К статье приложена конфигурация с регистром.

Типовая схема процесса:

  • Игрок создает сетевую игру. В регистр записывается запись со статусом "Начало", в данных содержится требуемое количество игроков, имя инициатора, данные о игровом поле. Поскольку сам создатель тоже будет играть, создается запись со статусом "Подключение", в данных - имя игрока 
  • Другие игроки подключаются к созданной игре, при этом создаются записи со статусом "Подключение", в данных - имя игрока. Процесс продолжается пока количество записей со статусом "Подключение" не станет равным необходимому количеству игроков.
  • Далее каждый игрок по очереди занимается первоначальной подготовкой - расставляет фишки, по завершению создается запись "Подготовка", в данных - расположение фишек. Остальные игроки читают эту запись и загружают себе расположение его фишек.
  • Затем каждый игрок по очереди делает ход, создается запись "Ход", в данных - информация о ходе. Остальные игроки читают и загружают себе эту информацию, отображают ход противника на своем поле. 
  • Если после завершения хода игра оканчивается выигрышем, то выигравший игрок записывает запись "Окончание". 
 
 Вот так играют два компьютера по сети

Для варианта с каталогом процесс аналогичен, вместо записей регистра используются файлы. 

Игра тестировалась в тонком клиенте 8.3.22.1709, под ОС Windows 7.

Как всегда, приветствуются замечания / дополнения / комментарии.

 

 
 Другие игры
 
 Некоторые из прочих моих публикаций 

  

только вперед сетевая игра по сети библиотека

См. также

Классическая игра "Змейка" на 1С (управляемые формы)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Игра "Змейка" в классическом варианте на управляемых формах в 1С. Собирайте яблоки и ставьте рекорд!

09.02.2024    2680    140    emilyabochkova    12    

22

Ключворды в 1С

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Создавайте новые ключворды или разгадывайте существующие.

1 стартмани

05.02.2024    1541    1    alexpvs    0    

6

Игра "5 букв"

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Игра "5 Букв", сделанная на 1С. В игре загадано слово, существительное в единственном числе. Нужно отгадать загаданное слово.

1 стартмани

29.12.2023    936    2    APTEM_SLV    9    

6

Пятнашки

Игры Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Цель - обучение хитростям нашей всеми любимой 1С.

28.11.2023    846    30    user1834118    0    

6

Кар магедон

Игры Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Держись, российский геймдев, я уже еду. Бета тест, можно оформлять предзаказы, будет донатный магазин с модельками российского автопрома (по цене реальных авто).

01.11.2023    1676    38    user1834118    7    

11

Турнир по 1С. Танки на СКД

Игры Платформа 1С v8.3 Абонемент ($m)

Предлагаю свою версию турнира. Особенность этого турнира в том, что тут нет правильных или неправильных решений. Есть твое решение и решение твоих соперников. У кого решение лучше тот и победит.

1 стартмани

09.10.2023    1760    1    opx    1    

13

Плоский "Кубик Рубика"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вы можете собрать кубик Рубика? Я - только с помощью инструкции:). Попробуйте справиться с его плоским аналогом.

1 стартмани

29.05.2023    2014    7    Alxby    3    

13

Пасьянс Марии Стюарт (пасьянс Медичи) - попробуй изменить свою судьбу

Игры Платформа 1С v8.3 Россия Абонемент ($m)

Игра - пасьянс Марии Стюарт. Есть возможность создавать свои расклады, обмениваться раскладами и менять картинки карт.

1 стартмани

05.05.2023    2718    1    sandr13    0    

13
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1351 01.03.23 18:30 Сейчас в теме
Спасибо за игру!
Рассматриваю игру только с математической стороны: добавляем вариативность = добавляем сложность. Например, добавим функции игры "танчики": у игрока есть выбор - сделать ход, сделать выстрел на один квадрат, поставить мину на два квадрата вперед (мина исчезает через следующий свой ход) и т.д.
2. Alxby 1136 01.03.23 19:06 Сейчас в теме
(1)Это будет уже другая игра). Когда-то в детстве играли в настольную игру "Сражение" с солдатами, офицерами и миной. Еще попадалась игра Colobot - там поведение объектов надо было программировать. Кстати, не всегда добавление вариативности добавляет сложности, если шахматным фигурам дать возможность ходить по любым правилам, сложность скорее всего понизится. В предлагаемой игре от увеличения высоты поля сложность сильно увеличивается, а при увеличении ширины - нет.
4. Alxby 1136 02.03.23 14:10 Сейчас в теме
(1) Нашел правила https://76-82.livejournal.com/2649059.html. Игру можно поискать в сети, купить или сделать самому.
3. quazare 3586 02.03.23 06:02 Сейчас в теме
5. пользователь 03.03.23 15:04
Сообщение было скрыто модератором.
...
6. laperuz 46 06.03.23 11:54 Сейчас в теме
О, так это по сути тренировка цугцванга для шахматистов получается:)
7. CheBurator 3119 06.03.23 23:52 Сейчас в теме
8. aSHA-1 26.03.23 09:28 Сейчас в теме
9. Alxby 1136 26.03.23 12:42 Сейчас в теме
(8)Нет. Ни для игры, ни для библиотеки.
Оставьте свое сообщение