Форум myROBOT.ru » Образовательные проекты » GameLOGO » Добавить массивы

Страниц (3): [1] 2 3 »
 

1. uiouio - 01 Июня, 2011 - 10:43:54 - перейти к сообщению
Это просто необходимо!
И, кстати, несложно. И синтаксис не нарушает.
2. Admin - 01 Июня, 2011 - 16:58:05 - перейти к сообщению
Полностью с Вами согласен, особенно в части несложности.
3. uiouio - 02 Июня, 2011 - 14:09:21 - перейти к сообщению
to Admin

Звучит как сарказм. Но для уже существующего парсера и для интерпретатора это несложно. Хотя бы массивы неизменяемой длины.
4. Admin - 03 Июня, 2011 - 03:25:31 - перейти к сообщению
Никакого сарказма. Массивы будут через пару-тройку дней. Неизменяемой длины. Одномерные и двумерные. С простой индексацией.
5. uiouio - 03 Июня, 2011 - 16:44:52 - перейти к сообщению
Admin пишет:
Массивы будут через пару-тройку дней.


Здорово! Даже одномерных достаточно. Даже без вычислимых индексов (типа [i+1]). Объяснял ребенку метод сортировки пузырьком - это же караул сколько раз почти одно и тоже пришлось написать.

Кстати вывод делал в виде столбиков разной высоты, соответствующим значениям переменных, т.к. нет вывода текста на экран. А..., а можно вывод текста (ну и чисел) на экран? А чтобы с идеологией согласовывалось - типа черепаха нарисовала Подмигивающий
6. nest - 03 Июня, 2011 - 16:54:01 - перейти к сообщению
uiouio пишет:
нет вывода текста на экран
так есть же:

вот тут в описании комманда пиши

вот тут расширенно
7. Admin - 06 Июня, 2011 - 15:30:53 - перейти к сообщению
Массивы добавлены.

-------------------------------- -------------------------------- -------
Объявление:

МАССИВ A[15]

МАССИВ M[10, 10]

-------------------------------- -------------------------------- --------
Обращение:

A[1] = 32

M[x+1, 2*x+3] = 12

ВПЕРЕД A[x+5]

-------------------------------- -------------------------------- -------
Заполнение:

ЗАГРУЗИ В A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
КОНЕЦ ЗАГРУЗКИ

ЗАГРУЗИ В A
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
КОНЕЦ ЗАГРУЗКИ

ЗАГРУЗИ В M
15 17 25 36 24 56 78 56 36 24
56 78 56 36 24 15 17 25 36 25
15 17 25 36 24 56 78 56 36 24
78 56 36 24 15 17 17 25 36 25
36 24 56 78 24 56 78 56 36 24
39 78 56 36 24 25 15 15 89 71
15 17 25 36 24 56 78 56 36 24
78 56 36 24 15 17 17 25 36 25
36 24 56 78 24 56 78 56 36 24
39 78 56 36 24 25 15 15 89 71
КОНЕЦ ЗАГРУЗКИ

Если данных будет недостаточно, то часть элементов останутся незаполненными.
Если ибыточно, то они отсекутся.

-------------------------------- -------------------------------- -------
Вывод:

ПИШИ A[x]

ПИШИ# A

ПИШИ# M

Знак # в команде ПИШИ выводит массив целиком. Для одномерных массивов вывод осуществляется с переносом строк. Для двумерных - как есть в виде таблички, поэтому возможен выход за пределы поля.

-------------------------------- -------------------------------- -------

Ограничение на размер массива - 1000 элементов, для двумерных - 1000х1000.
Массивы обрабатываются относительно медленно, всё-таки GameLogo - это интерпретатор. В учебных целях лучше не использовать массивы более чем из 500 элементов.

-------------------------------- -------------------------------- -------

Заполнять можно также в цикле. Например, с помощью команды СЛУЧАЙНЫЙ.

Пример ввода в элемент массива псевдослучайного целого числа в диапазоне от 10 до 99:

A[x] = Int(случайный * 89) + 10
8. uiouio - 07 Июня, 2011 - 12:14:44 - перейти к сообщению
Это супер!
Спасибо огромное. высший восторг

P.S. На мой взгляд, чтобы учить детей - надо, чтобы они увлеклись. А дети сейчас играют не в тетрис, а в Counter-Strike. Поэтому, когда я показал сыну как на GameLogo в 20 строк написать игру, где танк управляется с клавиатуры, стреляет ракетами, взрываются пораженные цели, со звуком, это пробудило интерес. Или красная машинка, почти как в "Тачках" (нарисованная в paintbrush'e) едет по дороге (белые прямоугольники разметки бегут на нее), обезжает встречные машины или стукается со звуком, а код в 20 строк понятен ребенку - вот это заинтересовывает.

Я не думаю, что буду использовать команду ЗАКРАСЬ - она не добавляет в язык никаких новых возможностей создания новых ветвлений - поведения объектов, возможности решить практическую задачу и т.п.

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

Не надо боятся сложных задач для детей.

Ну, а скачать дистрибутив где?
(Добавление)
Все, скачал. На сайте надо поправить версию и что добавлено.
Спасибо еще раз.
Отличный проект!
9. Admin - 07 Июня, 2011 - 15:51:46 - перейти к сообщению
Спасибо за добрый отклик.

Counter-Strike на GameLogo как-то не очень получается Улыбка , а вот простые игры вполне.

uiouio пишет:
Печально, что школьный учебник по программированию на Logo, содержит массу однотипных задач


А Вы какой учебник имеете в виду?

uiouio пишет:
появляется сомнение, а авторы таких книг сами-то умеют придумать интересные задачи, кроме тестов на синтаксис языка?


Было бы совершенно замечательно, если бы Вы поделились Вашими примерами программ на GameLogo, которыми Вы занимаетесь с сыном. Это можно было бы оформить в виде примеров к учебнику, что безусловно было бы интересно всем тем, кто начинает изучать программирование или старается помочь в этом начинающим.

uiouio пишет:
Не надо боятся сложных задач для детей.


Одной из интереснейших областей для начинающих представляется программирование клеточных автоматов. Теперь, когда с Вашей легкой руки в GameLogo появились массивы, возможно, стоит посвятить несколько статей этой увлекательной области. Вот только, боюсь, учебно-методическая составляющая при этом будет довольно сильно выходить за рамки интересов современных учебных программ по информатике.
10. nest - 07 Июня, 2011 - 19:29:55 - перейти к сообщению
обащаю тоже что нибудь интересное для/под LOGO сделать и описать Улыбка
11. Admin - 07 Июня, 2011 - 21:08:10 - перейти к сообщению
nest пишет:
обащаю тоже что нибудь интересное для/под LOGO сделать и описать


Может быть, вместе попробуем развлечься с клеточными автоматами . Чрезвычайно увлекательная и практичная область. Я предполагаю завтра/послезавтра сделать первую статью на эту тему.

PS' Исправил несколько ошибок в GameLogo, допущенных впопыхах добавления работы с массивами, и выложил новый релиз с исправлениями.
12. nest - 07 Июня, 2011 - 21:42:43 - перейти к сообщению
Admin пишет:
Может быть, вместе попробуем развлечься с клеточными автоматами
что то мне это будет сложно Улыбка
хочется что то практичное Улыбка

Но всё равно времени не хватает Грустный
13. uiouio - 07 Июня, 2011 - 22:20:42 - перейти к сообщению
Хорошо, я выложу эти игры.
Про клеточные автоматы: теперь можно сделать, например, игру Жизнь.

Фон в клеточку, если в ячейке массива 0, то нарисовать и закрасить* белый круг (сольется с фоном), если 1 - нарисовать черный. Код примитивный,
http://ru.wikipedia.org/wiki/%D0...3%D1%80%D0%B0%29

Так ка поле ограничено - стенки сделать зеркальные, для граничных элементов код усложняется.

* вот, а я говорил, что не буду использовать команду "закрась" Улыбка пригодилась
14. Admin - 07 Июня, 2011 - 22:42:16 - перейти к сообщению
uiouio пишет:
Код примитивный


Будем очень признательны, если Вы напишите программу для игры "Жизнь" Конвея.
Хорошо было бы, если бы уложиться на поле 10х10 (побыстрее будет перерисовываться).

Команда "закрась" не особо нужна.
Гораздо проще использовать толщину пера и команду ТОЧКА


массив M[10,10]
переменная x
переменная y

перо 30

загрузи в M
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
конец загрузки

повторить для y = 1 до 10 {
повторить для x = 1 до 10 {

если M[x,y] = 0 то цвет 1
если M[x,y] = 1 то цвет 15

точка y*30, x*30

}
}


А я займусь статьей "Войны клеточных автоматов на планете Акватор" по мотивам культовой статьи Дьюдни.


PS' Сочетание Ctrl+Tab делает отступ в редакторе. В ближайшее время будет добавлен нормальный сервис в редакторе, позволяющий быстро и легко работать с кодом.
Клавиша Alt - пауза в момент выполнения программы.
15. uiouio - 08 Июня, 2011 - 12:01:58 - перейти к сообщению
Договорились. Но не быстрее пятницы - хочется совместить это с обучением программированию ребенка.

Кстати, в коде сверху проще состояния клетки отражать не (0;1), а (0;15), тогда без всяких если:
цвет = M[x,y].


Теперь можно сдуть пыль со старой дискетки и переписать на GameLogo 2 вида алгоритмов:

- простые детерминированные условия порождают фракталы очень сложной структуры
- случайные процессы имеют аттракторы в виде геометрически простых фигур

P.S.

Нельзя
спроси A[i]

Приходится
спроси x
A[i] = x

Хотя с этим жить можно.