예제 #1
0
        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);
        }
예제 #2
0
        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);
        }