Write a program that lets you know if you can have a key or not, based on your role at the school.
First ask for the user’s role at the school. They can be a student, administrator, or a teacher. (And remember that capitalization is important! ‘Student’ is not the same as ‘student’.)
Example 1: Administrator or Teacher
For example, if this was the input:
Are you an administrator, teacher, or student?: teacher
This should be the output:
Administrators and teachers get keys!
Example 2: Student
And if this was the input:
Are you an administrator, teacher, or student?: student
This should be the output:
Students do not get keys!
(Note: You should also be able to handle a situation where the user enters a value other than administrator, teacher or student and tell them they must be one of the three choices!)
Example 3: Other
If they input anything else:
Are you an administrator, teacher, or student?: secretary
This should be the output:
You can only be an administrator, teacher, or student!
Как тут можно решать (смотри комментарии и рисунки):
1) Начинаем смотреть с последней не просмотренной ещё нами команды робота (всего было шесть команд, так что начнём с шестой команды- «вниз» ).
2) Рисуем на бумаге весь лабиринт для робота, отмечая крестиком точки, в которых он должен оказаться (для шестой команды это одна точка, которая указана в задаче). Можно рисовать и в компьютере- например я рисовал в Эксель.
3) Слегка закрашиваем/заштриховываем (карандашом (можно цветным), ручкой, заливкой в Экселе) клетки, двигаясь из которых в текущем направлении, робот остановится в любой клетке с крестиком (для шестой команды (движение вниз)- робот может в начале находиться в одной из четырёх залитых зелёным цветом клеток- и из них он в результате попадёт в клетку с крестиком).
4) Переходим к следующей команде робота (двигаемся по убыванию- например от шестой к пятой команде). Повторяем все действия для команды по указанным пунктам 1) — 4), с небольшим отличием: при рисовании лабиринта ставим крестики в тех клетках, которые были нами закрашены на лабиринте из предыдущей команды робота (то есть, крестики, которые были в предыдущей команде, не смотрите; смотрите только закрашенные клетки).
Пройдя таким образом до первой команды, я получил в виде закрашенных клеток все возможные исходные положения робота, откуда он, начав движение по указанным командам, в конце окажется в клетке, отмеченной в задаче. Таких клеток я насчитал ровно семнадцать.
Ответ: 17
P.S. красным я закрасил крестики в ячейках, в которые робот не сможет остановиться, двигаясь в текущем направлении (в общем не обязательно раскрашивать крестики, это я так, для понятности)