После того, как у меня получилось сделать игру «Сапёр», захотелось сделать что-то более масштабное и функциональное. Из этого желания родилась игра «Шашки». Код сумбурный и, практически, не комментированный. Но если есть желание покопаться, милости просим, всё открыто.
Итак, приложение устанавливается через меню конфигурации 1С – «Расширения». Никакие типовые механизмы приложение не затрагивает и не использует, кроме связки игрока и пользователя в расширении по ID. После установки доступ к подсистеме имеет только администратор. В той конфигурации, куда установлено приложение появляется роль «Игровая роль», которую нужно назначить пользователям, для доступа к подсистеме «Игры». При первом открытии игры «Шашки» игрок создаётся автоматически и привязывается к авторизованному пользователю.
Игра проходит по правилам русских шашек. Привожу выдержку основных пунктов из википедии.
Правила
- Простая шашка ходит по диагонали вперёд на одну клетку.
- Дамка ходит по диагонали на любое свободное поле как вперёд, так и назад, но не может перескакивать свои шашки или дамки.
- Взятие обязательно. Побитые шашки и дамки снимаются только после завершения хода.
- Простая шашка, находящаяся рядом с шашкой соперника, за которой имеется свободное поле, переносится через эту шашку на это свободное поле. Если есть возможность продолжить взятие других шашек соперника, то это взятие продолжается, пока бьющая шашка не достигнет положения, из которого бой невозможен. Взятие простой шашкой производится как вперёд, так и назад.
- Дамка бьёт по диагонали, как вперёд, так и назад, и становится на любое свободное поле после побитой шашки. Аналогично, дамка может бить несколько фигур соперника и должна бить до тех пор, пока это возможно.
- При бое через дамочное поле простая шашка превращается в дамку и продолжает бой по правилам дамки.
- При взятии применяется правило турецкого удара — за один ход шашку противника можно побить только один раз. То есть, если при бое нескольких шашек противника шашка или дамка повторно выходит на уже побитую шашку, то ход останавливается.
- При нескольких вариантах взятия, например, одну шашку или две, игрок выбирает вариант взятия по своему усмотрению.
Как играть
Игра создаётся по кнопке «Создать игру». Далее, в открывшемся окне, необходимо выбрать цвет своих шашек. Также можно выбрать игру с ботом и функцию записи игры. Запись не работает при игре с ботом и игре с самим собой. В турнирных играх запись включается автоматически.
Игра с ботом начинается автоматически. Для того, чтобы играть с самим собой или коллегой, необходимо его позвать, попросить зайти в эту подсистему, в списке «Открытые игры» выбрать нужную игру и нажать кнопку «Принять». Если эту кнопку нажмёте вы сами, то получится игра сам с собой.
Далее просто тыкаем в нужную шашку, а потом в поле, куда хотите пойти. Система не даст вам сделать ход туда, куда нельзя. При игре с ботом бот ходит мгновенно. При игре с коллегой его ход отобразиться у вас спустя пару секунд после того, как коллега этот ход сделает.
Игру можно отложить, просто выбрав в списке ваших игр другую игру. Таким образом можно проводить сеанс одновременной игры с несколькими противниками.
Организация турнира
Для организации турнира на вкладке «Турниры» нужно нажать кнопку «Создать турнир». Команда доступна только администратору. В параметрах турнира необходимо указать название турнира, дату начала турнира и его длительность в днях. Также можно указать ограничение на количество участников (0 – безлимитное количество). В описании можно, например, описать призовой фонд. После сохранения турнир появится в списке турниров. Все игры по турниру будут созданы автоматически при наступлении «Дня начала турнира» регламентным заданием. Если оно не сработало, то можно запустить его вручную. В конце дня окончания турнира все незавершённые игры будут завершены автоматически по правилу – на ходе какого игрока игра остановилась, тот и проиграл.
Для регистрации в турнире игроку нужно перейти на вкладку «Турниры», выделить строку с турниром и нажать кнопку «Участвовать». Для отмены участия нужно нажать кнопку «Отменить участие». Если турнир начался, зарегистрироваться и отменить участие нельзя.
Турнирные игры играются, как и обычные. На вкладке игры они выделены цветом в списках.
Просмотр завершённой игры
Имеется функция просмотра завершённых записанных игр. Для этого на вкладке «Завершённые игры» выбираем игру и нажимаем кнопку «Выбрать игру для просмотра». Далее либо нажимаем «Проигрывать», либо сами щёлкаем ходы – «Вперёд» и «Назад».
Всё.
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, редакция 3.0, релизы 3.0.16.33
Вступайте в нашу телеграмм-группу Инфостарт
