fortrestssite.narod.ru

Мой Е-mail: fortrestsob@mail.ru

Основа

Главная
Картинки
Проекты
Чат
Форум

Книжки

Рекорды
Сундук
Голосования
Анекдоты
Игры
Флэшки
Остальные
Timeold
Коды
Новость
   [05.05]  У сайта началась новая жизнь!!!
Избранное

 

Большая просьба! Так как название моего сайта сложное и непонятное, добавьте, пожалуйста, мой адрес в "Избранное" - а то вдруг забудете! :)

 

Проект Паркетчик:

Номер двенадцатый:
Теория:

Так, сегодня мы научим паркетчика проходить лабиринт.
Основным в программе будет *подпрограмма* а саму *программу* я даже могу написать:
Программа {
Делать пока ( не к ) {
Вызвать обход ;
};
}
.

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

 

Практика.

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

Ну вот и всё, осталось только сделать если с окончанием работы (при попадании на красную плитку, оператор *стоп*).

Для особо умных: попробуйте разобраться с оператором *сообщить*, и чтобы паркетчик в конце сообщал, что он прошел лабиринт.
Коды:
Обход:

Подпрограмма обход {
Делать пока ((не справа стена) и (снизу стена)) {
Шаг вправо;

Если (к) то {
Сообщить "Лабиринт пройден.";
Стоп;
}
Если ( не снизу стена ) то {
Шаг вниз;
Положить( з );
}
};

Делать пока ((не снизу стена) и (слева стена)) {
Шаг вниз;

Если (к) то {
Сообщить "Лабиринт пройден.";
Стоп;
}
Если ( з ) то {
Снять плитку;
}
Если ( не слева стена ) то {Шаг влево;}
};

Делать пока ((не слева стена) и (сверху стена )){
Шаг влево;
Если (к) то {
Сообщить "Лабиринт пройден.";
Стоп;
}
Если ( з ) то {
Снять плитку;
}
Если ( не сверху стена ) то {Шаг вверх;}
};

Делать пока ((не сверху стена) и (справа стена)) {
Шаг вверх;
Если (к) то {
Сообщить "Лабиринт пройден.";
Стоп;
}
Если ( з ) то {
Снять плитку;
}
Если ( не справа стена ) то {Шаг вправо;}
};
}


Программа {
Делать пока ( не к ) {
Вызвать обход ;
};
}

Всегда свежий анекдот:

Ссылки на дружеские сайты

 

 
Hosted by uCoz