private static void ligneDroite(MarcheSpirale état, int nombre, int?[,] array) { while (true) { array[état.x, état.y] = état.nombreDeLaCase; if (--état.nombreDeLaCase == 0) { return; } if ((!état.déplacement.sortiraitDuCadre(état.x, état.y, nombre)) && array[état.déplacement.deplaceX(état.x), état.déplacement.deplaceY(état.y)] == null) { état.x = état.déplacement.deplaceX(état.x); état.y = état.déplacement.deplaceY(état.y); } else { break; } } état.déplacement = état.déplacement.tourne(); état.x = état.déplacement.deplaceX(état.x); état.y = état.déplacement.deplaceY(état.y); }
private static void carréSpirale(int nombre) { int?[,] array = new int?[nombre, nombre]; MarcheSpirale état = new MarcheSpirale(nombre); while (état.nombreDeLaCase > 0) { ligneDroite(état, nombre, array); } dessinerTableau(nombre, array); }