Меню
Разработки
Разработки  /  Информатика  /  Разное  /  6 класс  /  Тема 5. Работа с несколькими листами в ЛОГО

Тема 5. Работа с несколькими листами в ЛОГО

Лекции для углубленного изучения (продвинутый уровень)

Тема 5. Работа с несколькими листами в ЛОГО

5.1. Листы

Как только ЛогоМиры начинают свою работу, открывается новый лист с именем лист1. Именно на нем разворачиваются все действия проекта и живут черепашки.

30.08.2018

Содержимое разработки

Лекции для углубленного изучения (продвинутый уровень)


Тема 5. Работа с несколькими листами в ЛОГО


5.1. Листы

Как только ЛогоМиры начинают свою работу, открывается новый лист с именем лист1. Именно на нем разворачиваются все действия проекта и живут черепашки. При желании можно создать проект, содержащий не один лист, а несколько. Для добавления нового листа можно либо воспользоваться пунктом ЛИСТЫ – НОВЫЙ ЛИСТ главного меню, либо дать команду НОВЫЙ ЛИСТ.

5.1.1. Новый лист

нов_лист (сокращенная форма – нл)

 

Открывает новый лист. Текущий лист остается частью проекта и не сохраняется, пока не будет сделана попытка закрыть или сохранить проект. Листы, содержащиеся в проекте, перечислены в конце меню Листы. Чтобы перейти на другой лист, достаточно щелкнуть мышкой на нужный пункт в меню ЛИСТЫ.

Все листы при создании получают стандартные имена: первый – лист1, второй – лист2 и т.д. Но каждый лист в вашем проекте может носить какую-то смысловую нагрузку. Поэтому хотелось бы иметь возможность присвоить листу какое-то смысловое имя. Это можно сделать либо с помощью пункта Листы – Назови лист главного меню ЛогоМиров, либо с помощью команды НАЗОВИ ЛИСТ.

5. 1. 2. Назови лист

назови_лист “имя.

Например,

назови_лист “пещера

назови_лист “тридевятое_царство

 

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

Имя текущего листа отражается в первой строке листа проекта ЛогоМиров. Перейти на другой лист можно либо с помощью пункта меню ЛИСТЫ, либо командой

5. 1. 3. Возьми лист

возьми_лист (вл) “имя-листа

 

Показывает на экране лист. Входной параметр – имя листа в активном проекте. Для загрузки листа можно просто напечатать его имя.

Пример:

 

вл «разное

 

Появится содержимое листа “разное. Такое же действие совершиться, если в качестве команды просто написать имя листа: разное.

При создании сложных многостраничных проектов работу над листами могут вести разные авторы в разных проектах. Собрать листы из разных проектов можно с помощью команды добавь.

5.1.4. Команда добавь

 

добавь имя-проекта слово-или-список

 

Копирует в текущий проект листы, процедуры или формы из других проектов. Первый входной параметр – имя проекта в текущей папке. Это проект, из которого вы хотите что-то скопировать.

Чтобы изменить текущую папку, выберите Сохрани проект под именем … из меню Файл, найдите папку, в которой лежит проект с нужными листами, формами или процедурами и щелкните на Отмена.

Второй параметр может быть именем листа или списком листов, которые хотите скопировать. Если нужно добавить в проект все объекты одного типа, то второй входной параметр должен быть словом листы, программы или формы. Если вы добавляете в проект лист, названый так же, как один из листов текущего проекта, то добавленный лист получит порядковый номер (например, лист3).

 

Примеры:

 

добавь «старт «программы

 

Добавляет в текущий проект все процедуры проекта «старт».

 

Добавь «старт «листы

 

Добавляет в текущий проект все листы проекта «старт».

 

Добавь «старт «формы

 

Заменяет формы текущего проекта набором форм из проекта «старт».

 

Добавь «проект1 [лист1 лист2 ]

 

Добавляет отдельные листы.

5.1.5. Удаление листов

Чтобы удалить лист из проекта, выполните из поля команд строку:

 

удали «имя листа

 

Внимание: Если вы удалили лист, его можно восстановить лишь в том случае, если проект сохранялся до этого. Выберите команду Открой проект в меню Файл. Когда появится окно Сохранение изменений до закрытия, щелкните на Нет.

 

5.1.6. Порядок листов в проекте

Порядок, в котором появляются листы при повторном открытии проекта зависит от двух моментов:

  1. Если в проекте существует лист с именем лист1, то при открытии проекта будет загружен именно этот лист.

  2. Если в проекте нет листа с таким именем, то при открытии проекта будет загружен тот лист, на котором проект был закрыт (сохранен).

Можно также написать процедуру startup, которая будет открывать любой нужный Вам лист. Эта процедура выполняется безусловно при загрузке проекта, а правила ее оформления такие же как и у других процедур. Надо только правильно написать ее имя. Пусть, например, в вашем проекте действия должны начинаться с листа «Мины». Тогда процедура startup будет выглядеть так:

 

это startup

вл “мины

конец

 

5.2. Создание многостраничного проекта

Наш будущий проект это игра, созданная в среде ЛогоМиры. Пусть в игре будет несколько уровней, но не менее 3-х. Каждый новый уровень оформлен на новом листе. Играющий должен пройти уровень, и только после этого он сможет перейти на следующий лист-уровень.

5.2.1. Игра «мины» - 1 уровень

Игра будет состоять в следующем. На листе проекта вы должны нарисовать «минное поле», где будут спрятаны мины-черепашки. Спрятать их можно очень просто – поменять их цвет на цвет фона. Главный герой должен пройти по полю, не взорвавшись. Взрыв происходит, если он «наступит» на черепашку-мину. Когда герой дойдет до безопасного места, программа должна поздравить игрока и перейти на следующий уровень.

Для создания этой игры создайте в листе программ несколько процедур.

Процедура СБРОС

Назначение этой процедуры – создание списка черепашек-мин и их расстановка по полю. В лекции 4 уже обсуждался вопрос о «разбрасывании» случайным образом черепашек. В этом проекте нужно сделать все тк же, только учесть, что черепашки разбрасываются не по всему проекту, а только в средней его части (параметры команд нов_х и нов_у). В этой же процедуре главный герой появляется перед минным полем (команда нм и нф). Задача играющего угадать, в какое место установить героя перед минным полем, чтобы он при движении не попал на мину. Для большей зрелищности в команде нф можно указать не одну форму будущего героя, а несколько (в виде списка). Тогда при выполнении команд движения, черепашка будет менять формы по очереди из этого списка. Например, если указать команду нф [19 20 21], то по полю будет скакать лошадь.

 

Процедура ИГРА

В этой процедуре будет осуществляться движение главного героя по минному полю. При этом нужно постоянно контролировать, не попал ли герой на мину. Это можно сделать с помощью датчика КОСНУЛИСЬ?

Датчик КОСНУЛИСЬ?

Служит для индикации касания двух черепах

 

коснулись? черепаха1 черепаха2 2 параметра

 

Сообщает да при соприкосновении двух указанных черепашек. Сообщает нет, если черепашки не соприкоснулись или одна из них невидима

Примеры:

покажи коснулись? "ч1 "ч2

да

 

жди_пока [коснулись? "ч1 "ч2]

Для нашего случая лучше применить команду ЕСЛИ с датчиком КОСНУЛИСЬ?, чтобы определить момент касания. Для удобства в процедуре можно использовать и команду МНОГО РАЗ.

 

много_раз диапазон список-инструкций

 

Выполняет список-инструкций для каждого значения из диапазона. Первый входной параметр - это список, состоящий из имени временной переменной и числа, являющегося верхней границе диапазона (нижней границей диапазона является 0). Второй входной параметр - это список инструкций, который использует переменную, входящую в первый параметр. В нижеследующем примере инструкция нов_цвет устанавливает цвет для каждого значения к от 0 до 7.

Примеры:

много_раз [ к 8] [ нов_цвет :к жди 5]

Следующая инструкция печатает числа 0, 1, 2, ..., 9 в Поле команд.

много_раз [к 10] [ покажи :к]

0

1

2

...

Эту команду можно применить, например, для проверки касания черепашек, используя их список, созданный в процедуре СБРОС. Например, так:

много_раз [к 4] [если коснулись? "ч1 элемент 1 + :к :череп [взрыв останов]]]

При выполнении этой строки будет проверяться касание главного героя (черепашка ч1) с минами (элементы списка “череп). Если касание происходит, то вызывается специальная процедура – взрыв и затем все процессы останавливаются. Для того, чтобы не считать, сколько шагов должна сделать черепашка, прежде, чем доберется до безопасного места, можно нашу процедуру сделать рекурсивной. Она может, например, выглядеть так:

 

это игра

ч1, вп 2 жди 1

много_раз [к 4] [если коснулись? "ч1 элемент 1 + :к :череп [взрыв останов]]

игра

конец

 

Процедура ВЗРЫВ

В этой процедуре все наши черепашки должны поменять форму. Главный герой – погибнуть, а мины – проявиться. После этих превращений пользователь должен прочитать сообщение (команда сообщи) о том, что он подорвался на мине.

 

 

Процедура ПРОШЕЛ

Эта процедура создается для программирования цвета. Правая часть проекта будет иметь какой-то основной цвет фона. Вот это цвет и надо запрограммировать. Для этого щелкните два раза по нужному цвету в меню графического редактора. При этом появится диалоговое окно программирования цвета:

При программировании цвета щелчок_мышки представляет собой список инструкций, который выполняется, когда Вы щелкаете на цвете мышкой. Правило_черепашки - это список инструкций, который начинает работать, если черепашка "наступит" на данный цвет. Режим ("при смене" или "постоянно") касается только правила_черепашки.

Если Вы запрограммировали тот или иной цвет, то автоматически программируются таким же образом все цвета данного ряда (оттенки). Например, программирование красного цвета (номер 15) автоматически программирует все цвета от 10 до 19.

В нашем случае в поле для черепашки мы должны задать название процедуры, срабатывающей при касании черепашки зеленого цвета – ПРОШЕЛ.

Не забудьте в этой процедуре сообщить игроку, что он прошел данный уровень и остановить процессы. Игрок также должен переместиться на другой уровень игры (следующий лист).

Эта процедура будет выглядеть приблизительно так:

это прошел

сообщи [Вы прошли первый уровень! Поздравляю!]

жди 5

вл "лабиринт

останов

конец


5.2.2. Игра «ЛАБИРИНТ» - 2 уровень

Игру этого уровня попробуйте создать самостоятельно, используя материал лекции 3 для средней группы. Смысл игры – используя заранее оговоренные кнопки управления черепашкой, пройти по узкому ходу лабиринта, не коснувшись стен. Иначе включится сигнализация, и выход из лабиринта закроется. Для того, чтобы играющие знали, какие кнопки использовать, напечатайте инструкцию. Для индикации прохождения лабиринта используйте черепашку в виде ворот «выход». Условием прохождения уровня будет касание героя игры этой черепашки-ворот. При касании героя «стен» предусмотрите сигнал тревоги (звуковой файл) и надпись, сообщающую, что произошло. Это можно сделать программированием цвета, в который окрашены стены.

При касании черепашки-индикатора предусмотрите поздравление игроку и выход на третий уровень.

 

 

5.2.3. Игра «собери мозаику» - 3 уровень.

Эта игра построена на основе мозаики из лекции 4. Вам надо немного дополнить свои программы.

Дополнение 1

 

 

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


Дополнение 2

При ручном сборе мозаики трудно поставить кусочки совершенно точно. Поэтому предусмотрите процедуру «равнять». Цель этой процедуры – выровнять координаты черепашек по целым величинам. Для этого лучше использовать команду округли.

округли число 1 параметр

 

Сообщает результат округления числа. Числа, оканчивающиеся на 5, округляются до большего числа.

Примеры:

покажи округли 3.3333

3

покажи округли 3.5

4

Эта процедура может выглядеть примерно так:

 

это равнять

каждая [

нов_х 20 * округли х_коор / 20

нов_у 20 * округли у_коор / 20]

конец

 

Дополнение 3

Для проверки правильности сбора мозаики создайте процедуру «верно?». Цель этой процедуры – проверить правильность установки кусочков мозаики. Так как у каждой черепашки-кусочка есть свое точно определенное место, то для проверки правильности их расстановки нужно проверить координаты каждой из них. Если хотя бы одна координата неверная, значит собрали мозаику неправильно. В ниже приведенном примере сверяются координаты черепашек, расположенных в прямоугольнике с координатами (–200 –100) - (40 –40). При этом размеры черепашек-кусочков – 60х60 точек. Для индикации ошибки служит переменная “ф. Если все верно, то после просмотра координат черепашек она не поменяет своего значения и будет равна 0. Если что-то не так, то ее значение станет равным 1.

 

это верно?

пусть "ф 0

пусть "х -200 пусть "у -100

много_раз [к 4] [для элемент :к + 1 :спчер если или не х_коор = :х не у_коор = :у [пусть "ф 1] пусть "х :х + 60]

пусть "х -200 пусть "у -40

много_раз [к 4] [для элемент :к + 6 :спчер если или не х_коор = :х не у_коор = :у [пусть "ф 1] пусть "х :х + 60]

если :ф = 1 [сообщи [Вы собрали мозаику неверно!]]

если :ф = 0 [сообщи [Вы собрали мозаику верно!]]

конец

 

В этой процедуре считается, что ранее уже создали список черепашек “спчер.

 

Для облегчения общения с программой создайте кнопки «россыпь», «равнять» и «верно?».

Замечание.

Прежде, чем проверять правильность сбора мозаики, нужно подравнять черепашек (процедура РАВНЯТЬ)!

-80%
Курсы профессиональной переподготовке

Учитель, преподаватель физики и информатики

Продолжительность 600 или 1000 часов
Документ: Диплом о профессиональной переподготовке
17800 руб.
от 3560 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Тема 5. Работа с несколькими листами в ЛОГО (158.47 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт