Игра «Арканоид» · Шаг 6 из 8
Уровень из текста
Уровни игры записаны текстом — так их удобно рисовать в редакторе: точка или пробел — пусто, цифра — кирпич такой прочности. Текст пишет человек, поэтому программа обязана сказать, где он ошибся, а не упасть с непонятным.
Что сделать
Разберите уровень из текста в словарь кирпичей, а ошибку в тексте назовите с номером строки.
Что приходит
tekst— уровень: строки сверху внизshirina— ширина поля в столбцах
Что вернуть
Словарь {(строка, столбец): прочность} в порядке чтения; ошибка в тексте — ValueError, его текст начинается с «строка N:».
Допишите функцию razobrat_uroven в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт razobrat_uroven в начале партии и при переходе на следующий уровень. Решите шаг — и вместо одного ряда кирпичей появятся настоящие уровни, их три.
Без этого шага: вместо уровней — один ряд кирпичей.
Текст из двух строк, 1.2 и .3., на поле шириной 3: в первой строке кирпичи прочности 1 и 2 по краям, во второй — тройка посередине. Ответ — {(0, 0): 1, (0, 2): 2, (1, 1): 3}.
razobrat_uroven("1.2\n.3.", 3)
{(0, 0): 1, (0, 2): 2, (1, 1): 3}
Строка текста номер k (с нуля) — строка поля номер k; знак номер j в ней — столбец j. Пустая строка текста — пустая строка поля.
.и пробел — пусто;1,2,3— кирпич такой прочности (целое число);- любой другой знак — ошибка:
ValueError.
Пробелы в конце строки не считаются. Строка длиннее shirina (без них) — ошибка: ValueError.
Текст ошибки начинается с «строка N:», где N — номер строки текста, считая с единицы, как в редакторе; дальше — своими словами, что не так. Ответ — словарь в порядке чтения: по строкам сверху вниз, в строке слева направо.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.