Описание: Холиварные споры. |
Поиск в теме | Версия для печати |
Admin |
Отправлено: 19 Июня, 2011 - 16:21:23
|
Администратор
Сообщений всего: 897
Дата рег-ции: Май 2006
|
Выделено в отдельную тему из темы "Добавить массивы"
-dead- пишет:Возможно у вас склеены понятия "Наступило событие нажатия клавиши" и "В данный момент клавиша нажата"
Вы совершенно правы. Я бы даже сказал, что они не склеены, а есть только обработка события "в данный момент нажата клавиша".
cjA пишет:ну почему Вы не хотите отказаться от этого полуматематического языка?
и от скобок этих Сишных дурацких?
От фигурных скобок, возможно, и стоит отказаться. Правда, дурацкой я бы не стал называть одну из самых распространенных синтаксических конструкций.
cjA пишет:Вашему транслятору намного дольше было бы
GameLogo не транслятор. Это интерпретатор.
cjA пишет:начать условие 1
если расстояние меньше 40 то
если машина.у - грузовик.у меньше 80 то звук bom.wav --зачем тут "="?
конец условия 1
Это очень спорно с методической точки зрения.
"=" является довольно необходимой вещью, вот только работа со звуком пока остается недоделанной. Предполагалось, что звук будет свойством каждого объекта. Возможно, пока знак "=" стоит убрать. Спасибо за то, что Вы на это указали.
cjA пишет:у Вас же тут же и проблемма с программными скобками исчезла бы?
Операторными скобками.
Вряд ли еще один уровень операторных скобок, как Вы предлагаете, решит какую-либо проблему. Более того, однострочная запись условий при этом может вызывать путаницу. |
|
|
uiouio |
Отправлено: 20 Июня, 2011 - 15:56:04
|
Рядовой
Сообщений всего: 14
Дата рег-ции: Июнь 2011
|
Выделено в отдельную тему из темы "Добавить массивы" Рад продолжению дискуссии.
Рассуждая про свойство клавиши "нажата" и событие "нажата клавиша", ушли в сторону от понимания описанной проблемы. А именно, при нажатии на клавишу обработчик ли события или черепашка, анализируя свойство клавиши, должен выполнятся некий код. В данном случае код - уменьшение значения переменной на 1. Клавиша не удерживается нажатой, это однократной нажатие. Текущий код исполнения программы прерывается обработчиком события, после обработки, указатель выполняемой инструкции снова возвращается на следующую команду после прерванной. На деле выглядит так, что код обработчика события выполняется несколько раз, так как не происходит возврата к другим инструкциям (хм, честно говоря, это надо проверить точно, но визуально это так).
Возникает вопрос, что является окончанием многих повторов выполнения кода обработки?
Если это некий промежуток времени, в течение которого проявляется свойство нажата ли клавиша, то такой подход не корректен с точки зрения предсказуемости и повторяемости. Раньше под ДОС, да и сейчас под любую ОС этому служил буфер ввода клавиатуры. Т.е. обработчик прерывания клавиатуры операционной системы помещал в некий буфер коды нажатых клавиш и, уверяю вас, при однократном нажатии там будет одна порция (2 байта для одного нажатия клавиш-стрелочек).
Дальше на усмотрение программиста: обрабатывать ли весь буфер или только часть, а остальное стереть.
В данном случае, мне непонятно как работает обработчик.
-------------------------------- -------------------------------- -------------------------------- ---------
Ну а про скобки и = ...
Меня скобки не напрягают, какие символы выделения блоков должны быть и не вижу в СИшности чего-то отторгающего. Меня привлекает в этом языке, то, что он легко воспринимаем детьми и не перегружен модулями, инкапсуляцией, библиотеками, прямым доступом к hardware ... В простоте - гениальность.
Кстати, если говорить о последнем пожелании, "потерянном символе", то это должна быть возможность повторять код, т.е. функции и процедуры. Предвидя возможные возражения со стороны разработчика, могу сказать что макросы очень даже подойдут. Т.к. это не требует изменения интерпретатора вообще - добавляется лишь пред-стадия обработки (замена объявления макросов в коде в текст макросов). Что-то типа:
МАКРОС ААА
<текст>
КОНЕЦ МАКРОСА
и условия, что внутри не должно быть объявления переменных. Не надо рекурсий, областей видимости и пр. Используя глобальные переменные и макросы можно даже получить аналог процедур. |
|
|
Admin |
Отправлено: 20 Июня, 2011 - 19:47:31
|
Администратор
Сообщений всего: 897
Дата рег-ции: Май 2006
|
Выделено в отдельную тему из темы "Добавить массивы"
-dead- пишет:Ну если события не реализованы - значит просто всё через свойства.
Это как?
-dead- пишет:ИМХО - детей только путать на будущее, если свойства называть событиями...
А Вы как предлагаете называть то, что возникает (имеет быть) в случае нажатия на клавишу?
uiouio пишет:Возникает вопрос, что является окончанием многих повторов выполнения кода обработки?
Отпускание клавиши.
uiouio пишет:В данном случае, мне непонятно как работает обработчик.
Данный код наглядно демонстрирует принцип обработки.
повторить пока 1 = 1 {
пиши 1
пауза 100
пиши 2
пауза 100
}
событие нажата клавиша 39 ' стрелка вправо
направо 90
пауза 500
конец события
событие нажата клавиша 38 ' стрелка вверх
вперед 100
пауза 500
конец события
uiouio пишет:возможность повторять код, т.е. функции и процедуры
uiouio пишет:макросы очень даже подойдут
Да, это важная вещь, по мере возможностей она будет добавлена. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (7): [1] 2 3 4 5 6 7 » |
« GameLOGO » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|