/// <summary>
        /// Actualise le sprite des cases de la grille
        /// </summary>
        public void OnRefresh(int i, int j)
        {
            Sprite sprite = new Sprite(Properties.Resources.water);
            Boat   boat   = controller.grid.grid[i, j].boat;

            if (boat != null)
            {
                if (boat.cells.Count == 1)
                {
                    sprite.AddSprite(Properties.Resources.mine);
                }
                else
                {
                    sprite.RotateSprite(boat.orientation);
                    Bitmap bitmap = (Bitmap)Properties.Resources.ResourceManager.GetObject("boat_" + boat.cells.Count);
                    sprite.AddSprite(
                        bitmap != null ? bitmap : new Bitmap(boat.cells.Count, 1)
                    {
                        Tag = new object()
                    },
                        boat.orientation == Direction.Right || boat.orientation == Direction.Down
                            ? boat.cells.IndexOf(controller.grid.grid[i, j])
                            : boat.cells.Count - boat.cells.IndexOf(controller.grid.grid[i, j]) - 1
                        );
                    sprite.RotateSprite(Direction.Right);
                }
            }
            else
            {
                if (controller.possibleCells.Contains(controller.grid.grid[i, j]))
                {
                    sprite.AddSprite(Properties.Resources.light_green);
                }
                else if (controller.clickedCell == controller.grid.grid[i, j])
                {
                    sprite.AddSprite(Properties.Resources.yellow);
                }
            }
            grid[i, j].Background = sprite.ToBrush();
        }
        /// <summary>
        /// Actualise le sprite d'une case de la grille
        /// </summary>
        public void RefreshCell(int i, int j, int gridToRefresh)
        {
            if (gridToRefresh == 0)
            {
                Sprite sprite = new Sprite(Properties.Resources.water); //Toutes les cases ont de l'eau dessous
                switch (controller.players[1].grid.grid[i, j].state)
                {
                case State.noBoat:
                    sprite.AddSprite(Properties.Resources.miss);
                    break;

                case State.boat:
                    sprite.AddSprite(Properties.Resources.touch);
                    break;

                case State.fullBoat:
                case State.revealed:
                case State.noFind:
                case State.partialFind:
                    Boat boat = controller.players[1].grid.grid[i, j].boat;
                    sprite.RotateSprite(boat.orientation);
                    Bitmap bitmap = (Bitmap)Properties.Resources.ResourceManager.GetObject("boat_" + boat.cells.Count);     //Load la ressource en fonction du nombre de cases
                    sprite.AddSprite(
                        bitmap != null ? bitmap : new Bitmap(boat.cells.Count, 1)
                    {
                        Tag = new object()
                    },                                                                                //Si bitmap = null, alors Renvoie un bitmap sensé mesurer la même taille que celui qui aurait dû être chargé
                        boat.orientation == Direction.Right || boat.orientation == Direction.Down     //Determine le sens du bateau
                                ? boat.cells.IndexOf(controller.players[1].grid.grid[i, j])
                                : boat.cells.Count - boat.cells.IndexOf(controller.players[1].grid.grid[i, j]) - 1
                        );
                    sprite.RotateSprite(Direction.Right);
                    if (controller.players[1].grid.grid[i, j].state == State.noFind)
                    {
                        sprite.AddSprite(Properties.Resources.hide);
                    }
                    else if (controller.players[1].grid.grid[i, j].state == State.partialFind)
                    {
                        sprite.AddSprite(Properties.Resources.touch);
                    }
                    break;
                }
                grid[i, j].Background = sprite.ToBrush();
            }
            else if (gridToRefresh == 1)
            {
                Sprite sprite = new Sprite(Properties.Resources.water);
                if (controller.players[0].grid.grid[i, j].boat != null)
                {
                    Boat boat = controller.players[0].grid.grid[i, j].boat;
                    if (boat.cells.Count == 1)
                    {
                        sprite.AddSprite(Properties.Resources.mine);
                    }
                    else
                    {
                        sprite.RotateSprite(boat.orientation);
                        Bitmap bitmap = (Bitmap)Properties.Resources.ResourceManager.GetObject("boat_" + boat.cells.Count);
                        sprite.AddSprite(
                            bitmap != null ? bitmap : new Bitmap(boat.cells.Count, 1)
                        {
                            Tag = new object()
                        },
                            boat.orientation == Direction.Right || boat.orientation == Direction.Down
                                ? boat.cells.IndexOf(controller.players[0].grid.grid[i, j])
                                : boat.cells.Count - boat.cells.IndexOf(controller.players[0].grid.grid[i, j]) - 1
                            );
                        sprite.RotateSprite(Direction.Right);
                    }
                }
                switch (controller.players[0].grid.grid[i, j].state)
                {
                case State.noActivity:
                    sprite.AddSprite(Properties.Resources.hide);
                    break;

                case State.noBoat:
                    sprite.AddSprite(Properties.Resources.miss);
                    break;

                case State.boat:
                    sprite.AddSprite(Properties.Resources.touch);
                    break;
                }
                gridSecond[i, j].Background = sprite.ToBrush();
            }
        }