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(); }
// 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; } } }
// 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; } } }
// 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; } } }
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(); }
// 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); }
public void Initialize(Taquin taquin, Vector2Int index, ushort order, Sprite sprite) { Order = order; Index = index; }