Треки
/
MIPS Assembly
MIPS Assembly
/
Вправи
/
Квіткове поле
Квіткове поле

Квіткове поле

Складна

Вступ

Flower Field - це милосердне переосмислення популярної гри «Сапер». Мета гри - знайти всі квіти в саду, скориставшись числовими підказками, які вказують, скільки квітів безпосередньо прилягає (по горизонталі, вертикалі, діагоналі) до клітинки. «Flower Field» виходила в регіональних версіях Microsoft Windows в Італії, у Німеччині, у Південній Кореї, в Японії та на Тайвані.

Вказівки

Ваше завдання - додати кількість квіток до порожніх клітинок завершеного саду «Квіткове поле». Сам сад - це прямокутна дошка, складена з клітинок, кожна з яких або порожня (' '), або містить квітку ('*').

Для кожної порожньої клітинки порахуйте кількість квіток, суміжних із нею (по горизонталі, по вертикалі, по діагоналі). Якщо порожня клітинка не має суміжних квіток, залиште її порожньою. Інакше замініть її на кількість суміжних квіток.

Наприклад, ми можемо отримати дошку 5 x 4, що має такий вигляд (порожні місця тут позначено символом '·' для показу на екрані):

·*·*·
··*··
··*··
·····

Який наш код має перетворити на такий:

1*3*1
13*31
·2*2·
·111·

Формат саду

Сад подано як рядок тексту (англ. string), завершений нульовим символом, із символом нового рядка в кінці кожного рядка.

Приклад: " \n * \n \n"

Регістри

Регістр Використання Тип Опис
$a0 вхідні дані адреса вхідний рядок тексту, завершений нульовим символом
$a1 вхідні/вихідні дані адреса вихідний рядок тексту, завершений нульовим символом
$t0-9 тимчасовий будь-який для тимчасового зберігання
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
MIPS Assembly Exercism

Час розпочати Квіткове поле?

Зареєструйтеся на Exercism, щоб вивчати й опановувати MIPS Assembly, а також 70 вправ та справжнє наставництво від людей, і все це безкоштовно.

Глибоке занурення у Квіткове поле!

Ми розглянемо вкладені цикли `for`, вдале застосування min/max для спрощення перевірки меж, функціональні конвеєри та роботу з двовимірними матрицями.