DRAKON.SU

Текущее время: Понедельник, 17 Июнь, 2019 10:12

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Тетрис в ДРАКОН-Тех
СообщениеДобавлено: Понедельник, 03 Июнь, 2019 10:03 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 500
В качестве программы-примера предлагается вот эта реализация игры Тетрис:
Вложение:
tetris-screenshot.png
tetris-screenshot.png [ 22.49 КБ | Просмотров: 115 ]

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 КБ | Просмотров: 115 ]


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


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


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

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

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


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

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

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

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


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

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 500
LKom писал(а):
Если же процедуры реализованы в других Дракон-схемах, то должны обязательно использоваться иконы Вставки.

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

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

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


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

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 914
В ИС Дракон выбор вида иконы (Вставка или Действие) производит автор алгоритма, так же как и в Вашей среде.

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

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

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2019, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB