Example #1
0
        // Permet de placer tous les cellButton dans l'espace dedier à l'affichage du board
        private void SetBoard()
        {
            int line   = -1;
            int column = 0;

            boardPanel.Controls.Clear();
            // Pour chaque cellule on crée un cellButton object et on créer les évenement associés
            foreach (Cell cell in taquin)
            {
                if (column % _selectedSize == 0)
                {
                    line++;
                }
                int        size = boardPanel.Width / _selectedSize;
                CellButton currentCellButton = new CellButton(cell, size);

                currentCellButton.MouseEnter += (s, e) => Button_MouseEnter(s, e);
                currentCellButton.MouseLeave += (s, e) => Button_MouseLeave(s, e);
                currentCellButton.Click      += (s, e) => CellButton_Click(s, e);
                // Placement des boutons dans l'interface
                currentCellButton.Left = ((column % _selectedSize) * size);
                currentCellButton.Top  = (line * size);
                boardPanel.Controls.Add(currentCellButton);
                column++;
            }
        }
Example #2
0
        // Fonciton raise par l'event On_Click des cellButton
        private void CellButton_Click(object sender, EventArgs e)
        {
            // Permet de lier l'UI et le backend pour maintenir le Taquin cohérent
            CellButton cellButton = (CellButton)sender;
            Cell       cell       = cellButton.Cell;

            if (cell.IsMovable())
            {
                taquin.Move(cell);
            }
            UpdateBoard();
        }
Example #3
0
        // Fonction permettant d'établir la disposition du board dans la fenêtre
        public void SetBoard()
        {
            // Calcul de la taille adaptée
            SetSize();
            int line   = -1;
            int column = 0;

            boardPanel.Controls.Clear();
            // Pour chacun des cellule de l'index actuel
            foreach (Cell cell in States[_index])
            {
                if (column % _size == 0)
                {
                    line++;
                }
                int size = boardPanel.Width / _size;
                // On crée des cellButton par practcité cependant on ne leur assigne pas de gestionnaire d'événement
                CellButton currentCellButton = new CellButton(cell, size);
                currentCellButton.Left = ((column % _size) * size);
                currentCellButton.Top  = (line * size);
                boardPanel.Controls.Add(currentCellButton);
                column++;
            }
        }