Exemple #1
0
        public static void Main(string[] args)
        {
            Console.WriteLine("dimensions du taquin svp");
            int dimension = Convert.ToInt32(Console.ReadLine());

            Taquin unTaquin = new Taquin(dimension);
            Console.WriteLine(unTaquin);
            while (unTaquin.Gagné() == false)
            {
                ConsoleKey choix =  Console.ReadKey().Key;
                Console.Clear();
                switch (choix)
                {
                    case ConsoleKey.DownArrow:
                        unTaquin.Jouer(2);
                        break;
                    case ConsoleKey.LeftArrow:
                        unTaquin.Jouer(4);
                        break;
                    case ConsoleKey.RightArrow:
                        unTaquin.Jouer(6);
                        break;
                    case ConsoleKey.UpArrow:
                        unTaquin.Jouer(8);
                        break;
                    default:
                        Console.WriteLine("utilisez les touches de direction");
                        break;
                }
                Console.WriteLine(unTaquin);
            }
            Console.WriteLine("vous avez gagné");

            Console.Read();
        }
Exemple #2
0
 // Initialise un Taquin 5x5 dans l'interface
 private void SizeButton5_Click(object sender, EventArgs e)
 {
     if (_selectedSize != 5) // On effectue rien si l'on avait déjà un Taquin 5x5 présent
     {
         // Gestion du 5x5
         ButtonSetFocus(sizeButton5);
         _selectedSize = 5;
         taquin        = new Taquin(5);
         SetBoard();
         ButtonUnsetFocus(sizeButton3);
         // Conséquences
         if (heuriLock == false)
         {
             ButtonLockView(heuristicOneButton);
             ButtonLockView(heuristicTwoButton);
             ButtonLockView(heuristicThreeButton);
             heuriLock = true;
         }
         if (solverLock == false)
         {
             ButtonLockView(AstarUniButton);
             ButtonLockView(IDAStarButton);
             _solver = new Segments(_selectedHeuristic);
             ButtonSetFocus(segmentButton);
             solverLock = true;
         }
     }
 }
Exemple #3
0
 // Initialise un Taquin 3x3 dans l'interface
 private void SizeButton3_Click(object sender, EventArgs e)
 {
     if (_selectedSize != 3) // On effectue rien si l'on avait déjà un Taquin 3x3 présent
     {
         // Gestion du 3x3
         ButtonSetFocus(sizeButton3);
         _selectedSize = 3;
         taquin        = new Taquin(3);
         SetBoard();
         ButtonUnsetFocus(sizeButton5);
         // Conséquences
         if (heuriLock == true && _solver.GetType() != typeof(Segments))
         {
             UnlockButtonView(heuristicOneButton);
             UnlockButtonView(heuristicTwoButton);
             UnlockButtonView(heuristicThreeButton);
             heuriLock = false;
         }
         if (solverLock == true)
         {
             UnlockButtonView(AstarUniButton);
             UnlockButtonView(IDAStarButton);
             solverLock = false;
         }
     }
 }
Exemple #4
0
 // Fonction trigger lorsque l'envent Close du formulaire de chargement est raise
 private void LoadForm_Close(object sender, EventArgs e)
 {
     // On créer le path pour charger un example
     _fileName              = _loadForm.SelectedFile;
     _loadForm              = new LoadForm();
     _loadForm.FormClosing += (s, evt) => LoadForm_Close(s, evt);
     // On init le Taquin grace au fichier
     taquin        = new Taquin(_fileName);
     _selectedSize = taquin.Size;
     // On paramètre l'interface en conséquence
     SetBoard();
     if (_selectedSize == 3)
     {
         ButtonSetFocus(sizeButton3);
         ButtonUnsetFocus(sizeButton5);
         if (solverLock == true)
         {
             UnlockButtonView(AstarUniButton);
             UnlockButtonView(IDAStarButton);
             solverLock = false;
         }
         if (heuriLock == true && _solver.GetType() != typeof(Segments))
         {
             UnlockButtonView(heuristicOneButton);
             UnlockButtonView(heuristicTwoButton);
             UnlockButtonView(heuristicThreeButton);
             heuriLock = false;
         }
     }
     else if (_selectedSize == 5)
     {
         ButtonSetFocus(sizeButton5);
         ButtonUnsetFocus(sizeButton3);
         if (solverLock == false)
         {
             ButtonLockView(AstarUniButton);
             ButtonLockView(IDAStarButton);
             solverLock = true;
             _solver    = new Segments(_selectedHeuristic);
             ButtonSetFocus(segmentButton);
         }
         if (heuriLock == false)
         {
             ButtonLockView(heuristicOneButton);
             ButtonLockView(heuristicTwoButton);
             ButtonLockView(heuristicThreeButton);
             heuriLock = true;
         }
     }
 }
Exemple #5
0
 public MainForm()
 {
     InitializeComponent();
     // Initialisation des paramètres internes du Form
     _resultForm            = new ResultForm();
     _fileName              = "";
     _loadForm              = new LoadForm();
     _loadForm.FormClosing += (s, e) => LoadForm_Close(s, e);
     // Défini la taille, 3x3 par défault
     _selectedSize = 3;
     ButtonSetFocus(sizeButton3);
     // Define Heuristic
     _selectedHeuristic = new Manhattan();
     ButtonSetFocus(heuristicThreeButton);
     // Define Solver
     _solver = new AstarUni(_selectedHeuristic);
     ButtonSetFocus(AstarUniButton);
     taquin = new Taquin(_selectedSize);
     //Debug.WriteLine(taquin);
     SetBoard();
 }
Exemple #6
0
        // Permet de melanger les exemples à un niveau de difficulté choisies
        static Board Shuffle(Board b, Random r, int diff)
        {
            int    size = b.Structure.GetLength(0);
            Taquin t    = new Taquin(size);

            for (int i = 0; i <= diff; i++)
            {
                foreach (Cell cell in t)
                {
                    if (cell.IsMovable())
                    {
                        if (r.Next(2) == 1)
                        {
                            t.Move(cell);
                        }
                    }
                    ;
                }
                t.Board.ClearBoardStatus();
                t.Board.CalculatePossibleMoves();
            }
            return(t.Board);
        }
Exemple #7
0
 public void Initialize(Taquin taquin, Vector2Int index, ushort order, Sprite sprite)
 {
     Order = order;
     Index = index;
 }