В игре Птица мы улучшим приобретенный в Лабиринте опыт работы с оператором условного перехода и получим первичные навыки работы с координатами.
Цели игры - построить маршрут для птицы таким образом, чтобы она долетела до гнезда, по дороге схватив червячка.
И первый уровень нам наглядно показывает как быстро и эффективно с этим вопросом можно справиться.
Уже на втором уровне встречаем уже до боли знакомую конструкцию "если-иначе".
Птица летит по 2м отрезкам пути в разном направлении. Различить эти два пути мы можем по простому условию - "пойман ли червячок".
Третий уровень абсолютно симметричен.
Четвертый интересен тем, что тут у нас вводятся координаты по оси Х.
Т.е. смотрим - птичка у нас должна пролететь где-то от 20 по Х до 80 по Х, соответственно на отрезке пути, где Х меньше 80 летим прямо, а достигнув 80, спускаемся вниз.
А если когда-нибудь нам понадобится лететь в обратном направлении и остановиться на координате х=20, то мы выберем другой интервал - х>20
По сути и та, и та запись охватывает путь между 20 и 80 по х, но мы выбираем х<80, если нужно остановится в точке х=80 и х>20, если нужно остановиться в точке х=20.
На следующем этапе у нас появляется возможность использовать обе оси координат.
Использовать координату У более логично, потому что птица летит вниз и У как раз меняется и путь птицы отследить легко - она летит по отрезку где у>20.
Но никто не мешает вам, как наставнику, поизгаляться и заставить подопытного подумать как решить вторым способом с помощью координаты Х.
Тут нужно немножечко хитрости. Птицу нужно заставить лететь не отвесно вниз, а чуточку вбок, чтоб координата по Х все-таки изменилась .
Здесь все встает с ног на голову - первое направление у нас как раз в блоке "иначе". В этот раз мы летим не на 270 градусов, а на 265, чтобы достичь внизу х=75. В момент, когда х стал 74, птица разворачивается на 180 градусов и летит к гнезду.
На шестом уровне у нас есть возможность комбинировать условия - смотреть где проще ориентироваться на поимку червя, где на координаты.
На х тут опираться не приходится, потому что и к червячку и к гнезду птица летит по одним и тем же координатам х.
7 уровень. Тут все аналогично.
На восьмом становится веселее. Добавляется блок "и", а это значит, что мы может задать уже не одно условие, а несколько.
Что такое "и"? Это элемент Булевой алгебры. Т.е. в данном случае нам предлагается рассматривать условия как истинные или как ложные.
Например, условие "червяк не пойман" - оно истинно когда червяк действительно не пойман и ложно, когда он уже пойман.
Условие "y>50" истинно когда у=60 и ложно когда у=40.
А вот уже условие ("червяк не пойман" и "y>50") истинно тогда и только тогда когда и червяк не пойман, и у=60.
Здесь участки 2 и 3 были бы совершенно не различимы, если бы у нас не было возможности к изменениям координат добавить условие про червяка.
На девятом уровне нужно быть осторожным и понимать, что на многих участках пути координаты по одной из осей одинаковые, поэтому приходится ставить несколько условий, чтоб избегать конфликтов.
И десятый уровень шедеврален - нужно вылететь из гнезда за червячком, а затем вернуться.
Тут нужно идти поэтапно. Сначала спокойной добываем червя.
Это уже не очень тривиальная задача с конфликтами. Но условие про непойманного червячка мы пока припрячем в рукаве. Нам же еще в обратный путь.
Сама площадка будет напоминать про сложность уровня, но нас этим не напугать!
Выбираться тоже будем поэтапно. Условия 1 и 2 абсолютно симметричны. И будут конфликтовать.
Но разница есть! Непойманный червяк! Нужно добавить его к первому условию.
Следующие конфликтные участки кода. Но мы-то уже знаем что делать!
Конечный вариант кода должен выглядеть так.
Учим ребенка программированию. Лабиринт.
Учим ребенка программированию. Черепашка.
Учим ребенка программировать. Фильм.
Учим ребенка программированию. Музыка.
Учим ребенка программированию. Учебный пруд.