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

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)

Моя реализация игры "Сапер" на 1С.

15.04.2025    611    68    Caliban    3    

13

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

Игра "Сапёр" на 1С. Три уровня.

04.04.2025    1247    92    user2015123    9    

18

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

Игра Змейка на объектах форм, а ля ООП, или что можно сотворить за час )))

20.02.2025    1638    74    starik-2005    9    

15

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

Когда охота "настоящего" ООП, но не знаешь, как его взять в 1С. Массив форм в форме нам поможет )))

18.02.2025    1373    58    starik-2005    14    

19

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

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

10.01.2025    4168    104    KamranV21    4    

34

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

Вариация классической игры Линес в честь года змеи 2025 на шестиугольном поле, с препятствиями, для сборки змейки из 7 шаров.

29.12.2024    810    41    miniogn    0    

6

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

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

10.10.2024    51898    PROSTO-1C    55    

173

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

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

29.07.2024    1704    103    user1693438    4    

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