DRAKON.SU
https://forum.drakon.su/

Игра Тетрис в «Drakon.Tech»
https://forum.drakon.su/viewtopic.php?f=215&t=6586
Страница 1 из 1

Автор:  Степан Митькин [ Понедельник, 03 Июнь, 2019 10:03 ]
Заголовок сообщения:  Игра Тетрис в «Drakon.Tech»

В качестве программы-примера предлагается вот эта реализация игры Тетрис:
Вложение:
tetris-screenshot.png
tetris-screenshot.png [ 22.49 КБ | Просмотров: 3949 ]

https://drakon.tech/js/examples/tetris

Игра работает в браузере и не требует установки. Можно играть и на телефоне.
Технология: простой (ванильный) JavaScript и HTML canvas.

Детали реализации

Игрой управляет конечный автомат, имеющий следующие состояния:
- idle (игра не начата)
- playing (игра идёт)
- dropping (фигура быстро падает в результате команды от игрока)
- finished (игра закончена)

Автомат принимает следующие сообщения:
- advanceStep (вызывается по таймеру, возвращает количество миллисекунд, которое надо ждать до следующего вызова advanceStep)
- onLeft (нажатие клавиши Влево)
- onRight (нажатие клавиши Вправо)
- onDown (нажатие клавиши Вниз - уронить фигуру)
- onRotate (нажатие клавиши Вверх - вращение фигуры)

advanceStep
https://app.drakon.tech/ide/doc/drakon-tetris/20
Вложение:
advanceStep.png
advanceStep.png [ 91.76 КБ | Просмотров: 3949 ]


onLeft
https://app.drakon.tech/ide/doc/drakon-tetris/44
Вложение:
onLeft.png
onLeft.png [ 19.43 КБ | Просмотров: 3949 ]


onDown
https://app.drakon.tech/ide/doc/drakon-tetris/51
Вложение:
onDown.png
onDown.png [ 22.1 КБ | Просмотров: 3949 ]


К сожаление, на сегодня ДРАКОН-Тех не поддерживает конечные автоматы в виде силуэтов, как здесь - viewtopic.php?f=142&t=6297

Какие проблемы возникают из-за отсутствия явного представления автоматов?
1. В исходном коде трудно найти и выявить автоматы, хотя они объективно есть.
2. Логика переключения состояний разбросана по функциям. Нет целостной картины автомата.

Вот к чему приходит отход от автоматного программирования.

Автор:  LKom [ Понедельник, 03 Июнь, 2019 11:31 ]
Заголовок сообщения:  Re: Тетрис в ДРАКОН-Тех

https://forum.drakon.su/viewtopic.php?p=103231#p103231 от Четверг, 16 Май, 2019 18:38
LKom писал(а):
Сомнительная(ые) по качеству содержания Дракон-схема(ы).

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

При этом нет описания прикладной области, нет даже комментариев.

Автор:  Степан Митькин [ Понедельник, 03 Июнь, 2019 12:07 ]
Заголовок сообщения:  Re: Тетрис в ДРАКОН-Тех

LKom писал(а):
Если же процедуры реализованы в других Дракон-схемах, то должны обязательно использоваться иконы Вставки.

Как это реализовано в ИС Дракон?

Автор схемы должен сам выбрать тип — Вставка или Действие?
А что будет, если автор выбрал Действие, когда внутри иконы вызов процедуры? ИС Дракон сообщит об ошибке?

Или ИС Дракон автоматически заменит Действие на Вставку, когда внутри иконы есть вызов процедуры?

Автор:  LKom [ Понедельник, 03 Июнь, 2019 13:02 ]
Заголовок сообщения:  Re: Тетрис в ДРАКОН-Тех

В ИС Дракон выбор вида иконы (Вставка или Действие) производит автор алгоритма, так же как и в Вашей среде.

1. В ИС Драконе в иконе Вставка пишут текст иконы Заголовок вызываемой схемы.

2. Есть навигация - непосредственно из иконы Вставка можно перейти к вызываемой схеме, а потом вернуться к вызывавшей иконе.
Обеспечивается навигация между всеми схемами проекта.

3. Есть возможность из иконы Вставка создать вызываемую схему, будет создана схема, в иконе Заголовок схемы будет текст из иконы Вставка.
---
В Вашей среде имеется только программный код, из которого сложно разобраться с проблемной областью.
Проблемная область должна быть написана на естественном, родном языке читателя, возможно не знакомым с используемым программным языком.

4. В ИС Дракон алгоритм проблемной области объединен с программным кодом.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/