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

01.03.23

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Правила игры

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

 
 Пример игры

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

 

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

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

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

 

 

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

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

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

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

 

 

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

 

 

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

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

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

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

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

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

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

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

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

 

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

  

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

См. также

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

Классическая игра Морской бой, с необычным дизайном. Из особенностей: Поле игрока формируется автоматически, но есть возможность корректировать расстановку фигур. Пример игры в приложенном видео.

29.07.2024    595    46    user1693438    3    

7

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

Классическая игра пасьянс Паук, на платформе 1С.

15.04.2024    1463    85    user1693438    3    

18

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

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

09.02.2024    3953    232    emilyabochkova    15    

28

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

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

1 стартмани

05.02.2024    2004    1    alexpvs    0    

7

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

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

1 стартмани

29.12.2023    1847    4    APTEM_SLV    9    

7

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

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

28.11.2023    1175    46    user1834118    0    

6

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

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

01.11.2023    2155    47    user1834118    7    

11

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

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

1 стартмани

09.10.2023    2316    2    opx    1    

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