Игра "Змейка" на управляемых формах (клиент)

Публикация № 1454670 07.06.21

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

управляемые формы уф тонкий клиент git onescript precommit1c игра табличныйдокумент

Пишем игру с динамическим обновлением игрового поля и управлением с клавиатуры на управляемых формах, отправляем на github.

Сел смотреть видео про расчет зарплаты, но, в третий раз уснув, решил немного отвлечься.
Спойлер: в итоге расчету зарплаты ничего не досталось.

Во время просмотра видео в голову почему-то пришел вопрос: можно ли в 1С как-то получать нажатия клавиш, хоть в каком-то виде? Оказалось, что на команды можно в качестве горячих клавиш вешать просто клавиши, без CTRL, ALT, SHIFT.

В общем, расскажу весь процесс разработки по порядку, сразу уточнив - опыта написания "Змейки" на других языках не имею, как в неё играть - особо не помню, написал в целом случайно.

  1. Создаем внешнюю обработку
  2. Добавляем управляемую форму
  3. Добавляем команды для поворота влево, вправо, вверх, вниз и назначаем на них горячие клавиши. Я использую WASD
  4. В качестве вьюпорта на клиенте получается использовать только ТабличныйДокумент, поэтому сразу добавляем его на форму. Для такой простой игры возможности по рисованию линий в табличном документе не пригодятся, будем просто раскрашивать ячейки
  5. Изначально я хранил координаты в реквизитах формы и закрашивал одну ячейку после каждого нажатия на клавишу, но в итоге в обработчиках нажатий осталось только изменение направления движения, которое я хранию по-одинэсному, просто текстовой строкой - "Влево"
  6. Сегменты змейки хранятся в массиве, массив каждый раз копируется в новый, чтобы реализовать перемещение (На мой взгляд, правильная альтернатива - связный список)
  7. Обновление игрового мира (в нашем случае - перемещение змейки) производится отдельной функцией, которую можно вызывать при нажатии на клавиши (больше для отладки) или по таймеру. Обработка ожидания в 1С, к сожалению, имеет разрешение всего 0.1 секунды, но я оставил её. Третий вариант - игровой цикл, Game loop.
  8. Добавляем добавление монеток (у меня массив монеток, могу себе позволить добавлять несколько штук сразу)
  9. Реализуем проверку столкновений с границей, хвостом и монетами
  10. По факту этой проверки если нужно завершаем игру
  11. Всё! В итоге получился модуль размером в 340 строк, но это я себе ни в чём не отказывал.

Для тех, кому гитхаб не отключили, выкладываю обработку на github.com. Для этого использую консольный клиент git, OneScript и precommit1c. Так что попутно по шагам расскажу как это делается, благо у меня новый компьютер и гита на нем не было:

  1. Устанавливаем git (https://git-scm.com/downloads)
  2. Создаем каталог репозитория, в нем будем хранить обработки
  3. Заходим в командной строке в каталог репозитория, далее работаем в нём
  4. Инициализируем репозиторий git init
  5. Устанавливаем OneScript https://oscript.io/downloads
  6. Устанавливаем precommit1c opm install precommit1c
  7. Инициализируем прекоммит в каталоге репозитория precommit1c —install
  8. Представляемся гиту, что-типа такого:
    PS C:\1c\git> git config --global user.email "AlexeyNecro@PochtaAlexeyaNecro.com"
    PS C:\1c\git> git config --global user.name "Alexey Necro"
  9. Кладем обработку в каталог репозитория, индексируем файлы:
    PS C:\1c\git> git add .
  10. Коммитим:
    PS C:\1c\git> git commit
    в этот момент precommit1c открывает конфигуратор и распаковывает файлы, то есть, нужна лицензия на файловую базу и желательно открытие обработок без подтверждения. Разрешить открытие обработок без предупреждения можно добавив строку
    DisableUnsafeActionProtection=.*
    в файл conf.cfg, который лежит в каталоге, куда установлена 1С
  11. После этого локальный репозиторий готов, он уже хранит изменения. Для просмотра в виде исходников удобно использовать Microsoft Visual Studio Code с плагинами для 1с (1C (BSL) Extension Pack) и GitLens.
  12. Добавляем удаленный репозиторий - можно это сделать на сайте гитхаб, например.
  13. Затем связываем удаленный репозиторий с локальным
    git remote add necro https://github.com/AlexNecro/1C
    можно посмотреть список удаленных репозиториев:
    git remote -v
  14. Привязываем удаленную ветку к нашей текущей (в этот момент требуется авторизация на сервере):
  15. git push --set-upstream necro master
  16. Далее во время работы повторяются следующие шаги:
  17. Положить (или изменить) обработку в каталоге репозитория
  18. Проиндексировать файлы git add .
  19. Коммит git commit
  20. Отправка в удаленный репозиторий git push

Протестировано на платформах 8.3.19.1138, 8.3.18.1483.

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

Наименование Файл Версия Размер
Игра "Змейка" на управляемых формах (клиент):

.epf 8,29Kb
3
.epf 8,29Kb 3 Скачать

Специальные предложения

Оставьте свое сообщение

См. также

Игра "Инвестор"

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

Интуитивно понятный геймплей. Управляемые формы, любая конфигурация, можно подключить как внешнюю обработку.

1 стартмани

12.10.2022    1757    2    sondarium    3    

5

Ханойская башня

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

Рекурсивное решение головоломки "ханойская башня" с визуализацией в 1С.

1 стартмани

04.01.2022    3210    0    user1670657    0    

5

RoboZZle для управляемых форм

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

RoboZZle - игра для программистов, для тех, кто хочет стать таковым и просто для людей, любящих подумать. Эта игра позволяет начать мыслить алгоритмически, просчитывать шаги наперед и научиться таким основам программирования, как рекурсия, циклы, условия, стек вызовов и т.д.

2 стартмани

22.12.2021    3384    2    Caliban    4    

5

Игра про крипового колобка из 80-х

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

Аркадный платформер в виде внешней обработки для 1С:Предприятие 8. Помоги колобку добраться до крыши общаги!

1 стартмани

16.12.2021    3220    1    sa1m0nn    1    

6

Игра "Тетрис"

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

Классическая игра в тетрис.

1 стартмани

12.08.2021    4402    3    van010190    0    

6

Игра "Жизнь". Вариации на тему

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

Игра "Жизнь" Джона Конуэя (Conway's Game of Life). Очередная реализация с нестандартными "фишечками".

1 стартмани

11.08.2021    4279    1    tired_coder    2    

3

Майнкрафт и 1С

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

Создай свой мир через 1С.

4 стартмани

16.07.2021    5729    1    SerVer1C    0    

11

"Уголки" на 1С

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

Игра "Уголки" на 1С - ностальгия детства !!!

1 стартмани

09.06.2021    7324    6    royaljon    5    

19

Самые красивые шахматы для 1С на управляемых формах

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

Здравствуйте, представляем Вашему вниманию классическую игру – Шахматы! Написана игра средствами 1С, на управляемых формах. Программный код представляет собой с аккуратностью составленную систему, содержащую лаконичные логические приемы и описательные имена переменных, объектов и функций. Программа полностью отлажена и многократно протестирована. Оригинальный авторский дизайн фигур, иконок и кнопок приятен глазу. Игра содержит большое количество функций, настроек и режимов игры, включая сетевую игру, тренировку с ботом или игру на двоих. Не упустите возможность найти ряд технических решений, применимых для реализации различных задач, а также поиграть в вечную игру с отличным оформлением! Желающие научиться программировать на управляемых формах могут многое почерпнуть в этой конфигурации.

5 стартмани

18.02.2021    10291    23    compmir    32    

65

Прототип игры Морской бой

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

Решенное тестовое задание при приеме на работу в крупный франч. Всё сделано строго по ТЗ. Обработка включена в конфигурацию, и может запускаться как внутри, так и как внешняя. Для правильной работы потребуется опубликовать веб-сервис. Использованы механизмы веб-сервисов, XDTO, запросов, управляемых форм.

1 стартмани

28.12.2020    6109    1    Sungang    0    

5

Игра 2048

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

Игра "2048" - это головоломка, созданная по принципу соединения плиток, целью которой является число 2048.

10 стартмани

27.11.2020    5464    0    shtirlicotto    1    

3

Шар предсказаний: помощник в принятии важных решений

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

Представляю вашему внимаю внешнюю обработку, с помощью которой вы сможете получить точный ответ на интересующий вас вопрос! Он всегда подскажет, как поступить в той, или иной ситуации.

10 стартмани

27.11.2020    5048    0    shtirlicotto    3    

3

Сапер на управляемых формах

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

Обнаружил, что на компе нет стандартных игр, включая сапера. Написал свою версию.

1 стартмани

23.09.2020    6740    1    VitSim    5    

6

1С Безумный Кликер

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

На сегодняшний день все думают о работе и деньгах, но забывают про отдых и развлечения. Я предлагаю отвлечься.

1 стартмани

11.09.2020    5571    4    EZSuleyman    5    

4

Морской бой в 1С (обычные и управляемые формы)

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

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

1 стартмани

15.06.2020    6118    9    Denr83    0    

16

Дерзкий бот (бот-тролль)

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

Если вам хочется поговорить, то вы всегда сможете поговорить с данным ботом.

1 стартмани

23.04.2020    7486    0    ranis888    2    

2

Гороскоп (виджет) для поднятия настроения на карантине (расширение конфигурации)

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

'Первые шаги', работа с расширением конфигурации, картинками, запросами к базе, запросами к RSS, сохранением настроек, импортом экспортом и т.д. - все на стандартном функционале 1С.

1 стартмани

24.03.2020    9638    1    ef1    12    

15

Игра шашки

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

Игра "Шашки" на управляемых формах. Все замечания и пожелания приветствуются!

1 стартмани

21.10.2019    8443    3    Robertik    3    

7

Выбор шкатулки. Проверка задачи по теории вероятностей

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

Одна из любопытных задач по теории вероятностей. Любая конфигурация (в том числе пустая) на обычных формах. Платформа 8.3.

1 стартмани

25.07.2018    9341    0    boba13    3    

3

Вероятность выпадения нуля или единицы

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

Обработка для расчетв вероятности выпадения нуля или единицы

1 стартмани

24.03.2017    14154    0    NECHISTb    5    

3

Автолегенды

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

Для коллекционеров серии журналов Автолегенды СССР. Небольшая база 1С по автомоделям из выпусков журнала. Имеются более 50 записей. Создана в 1С 8.3, но в режиме совместимости с 1С 8.2.13

1 стартмани

13.02.2017    14083    3    mack198109    1    

2

Конфигурация по мотивам игры "Гастроном"

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

Поиск слов из букв слова "ГАСТРОНОМ" и не только

1 стартмани

09.02.2016    15336    0    Fox-trot    0    

2

Процедурный генератор подземелий, лабиринтов, пещер и островов (для игр)

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

Внешняя обработка для процедурной генерации подземелий, лабиринтов, пещер и островов (управляемые и обычные формы)

1 стартмани

25.12.2015    22433    11    Caliban    7    

17

Симулятор 1С-ника

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

Цель игры - дорасти до самых высот, начиная с простого фрилансера.

1 стартмани

27.02.2015    15498    74    Serovkir    36    

27

Виртуальная битва

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

Если у Вас есть желание попрактиковаться в создании AI и проверить его в действии, представляем "движок" для проведения виртуальных битв!

1 стартмани

03.06.2014    17899    31    Lars Ulrich    21    

35

Решатель для игры Wordament

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

Иногда хочется напрограммировать что-нибудь этакое интересное и не относящееся у бухгалтерско-управленческому учету себестоимостей, НДС-ов и других страшных вещей. Программа для читинга онлайн игры подходит под этот случай как нельзя лучше.

1 стартмани

10.12.2013    21429    5    Ks_83    6    

7

Ход конём

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

В конкурсе "Вопрос-Решение" была задана задача": "Найти минимальные ходы и их количество между двумя конями на шаххматной доске". Вот моё решение.

1 стартмани

04.04.2013    18791    8    Шёпот теней    10    

7

Шахматы с использованием java_script

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

Простые шахматы с использование javascript

1 стартмани

28.09.2012    10737    36    Операция1Ы    9    

7

Крестики-нолики

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

Всем нам известная игра крестики-нолики

1 стартмани

11.05.2010    8989    155    Scaner    2    

8