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

01.03.23

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Игра "Только вперед!"
.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 Бесплатно (free)

Знакомы с серией игр Football Manager? Вся суть подобных симуляторов состоит в том, чтобы путем грамотного управления и контроля за спортивным, инфраструктурным и финансовым учетом привести свой футбольный клуб к успехам. Это ли не задача для платформы 1С - помочь в контроле учета предприятия (читай футбольного клуба)?

10.01.2025    3235    63    KamranV21    4    

30

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

Я Федор, ведущий разработчик 1С. На хакатоне компании команда под моим руководством перенесла игру «Герои меча и магии III» на платформу 1С. Расскажу, как устроена конфигурация «1С: Герои меча и магии» с технической точки зрения.

10.10.2024    48884    PROSTO-1C    55    

165

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

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

29.07.2024    1243    77    user1693438    3    

8

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

Простейшие крестики-нолики с маленьким полем.

24.07.2024    1261    89    user2015123    0    

7

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

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

15.04.2024    1947    99    user1693438    3    

18

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

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

09.02.2024    4979    298    emilyabochkova    15    

31

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

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

1 стартмани

05.02.2024    2316    1    alexpvs    0    

7

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

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

1 стартмани

29.12.2023    2440    4    APTEM_SLV    9    

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