Parcours
/
MIPS Assembly
MIPS Assembly
/
Exercices
/
Matrice en spirale
Matrice en spirale

Matrice en spirale

Moyen

Introduction

Dans un petit village près d'une forêt ancienne, la légende parlait d'un trésor caché, enfoui au plus profond des bois. Malgré de nombreuses tentatives, personne n'avait jamais réussi à le trouver. Mais cela allait bientôt changer, grâce à une jeune exploratrice du nom d'Elara. Elle avait découvert un vieux document contenant des instructions pour localiser le trésor. À l'aide de ces instructions, Elara avait pu dessiner une carte qui révélait le chemin menant au trésor.

À sa grande surprise, ce chemin suivait une étrange spirale qui tournait dans le sens des aiguilles d'une montre. Pas étonnant que personne n'ait réussi à trouver le trésor auparavant ! La carte à la main, Elara se lance dans son périple pour mettre au jour le trésor caché.

Instructions

Ta tâche consiste à renvoyer une matrice carrée d'une taille donnée.

La matrice doit être remplie avec des nombres entiers naturels, en partant de 1 dans le coin en haut à gauche, puis en augmentant en spirale vers l'intérieur, dans le sens des aiguilles d'une montre, comme dans ces exemples :

Exemples

Matrice spirale de taille 3

1 2 3
8 9 4
7 6 5

Matrice spirale de taille 4

 1  2  3 4
12 13 14 5
11 16 15 6
10  9  8 7

La sortie doit être organisée en ordre ligne par ligne : tous les mots de la première ligne, puis les mots de la deuxième ligne, et ainsi de suite.

Registres

Registre Utilisation Type Description
$a0 entrée entier taille
$a1 entrée/sortie adresse matrice de mots, en ordre ligne par ligne
$v0 sortie entier nombre de mots dans la matrice
$t0-9 temporaire quelconque pour un stockage temporaire
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
MIPS Assembly Exercism

Prêt à commencer Matrice en spirale ?

Inscris-toi sur Exercism pour apprendre et maîtriser MIPS Assembly avec 70 exercices, et un vrai mentorat humain, le tout gratuitement.