Exemplo n.º 1
0
 // créetion d'une methode pour ajouter des bateaux
 public void ajoutBateau(bateau bateau)
 {
     // on ajoute un bateau
     this.bateau = bateau;
     // on prévient que la case est utilisée en mettant l'étt à "bateau "
     this.etat = etat.bateau;
 }
Exemplo n.º 2
0
 // créetion d'une methode pour ajouter des bateaux
 public void ajoutBateau(bateau bateau)
 {
     // on ajoute un bateau
     this.bateau = bateau;
     // on prévient que la case est utilisée en mettant l'étt à "bateau "
     this.etat = etat.bateau;
 }
Exemplo n.º 3
0
        // on ajoute un bateau selon une cellule de départ et une direction
        public bool ajoutBateau(bateau bateau, cellule cellule, direction direction)
        {
            int taille = bateau.taille;
            int x = cellule.x;
            int y = cellule.y;
            // on vérifie le placement d'un bateau en position verticale vers le bas

            switch (direction)
            {
                case direction.bas:
                    //on vérifie si il y a asser de place pour le placement du bateau
                    // la taille du bateau + la valeur de la cellule de départ ne peut dépasser la longueur totale de la colonne
                    if (y + taille <= 10)
                    {
                        // on initialise une variable bool à true
                        bool ok = true;
                        // on fait une boucle pour la taille du bateau
                        for (int i = 0; i < taille; i++)
                        {
                            if (tab[y+i, x].etat != etat.eau)
                            {
                                ok = false;
                            }
                        }

                        if (ok)
                        {
                            // on fait une boucle pour la taille du bateau
                            for (int i = 0; i < taille; i++)
                            {
                                // on place le bateau
                                tab[y+i, x].ajoutBateau(bateau);

                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }

                case direction.haut:
                    //la taille de vérification doit être inversée du fait qu'on remonte vers la cellule 0
                    if (y - taille >= 0)
                    {
                        bool ok = true;
                        for (int i = 0; i < taille; i++)
                        {
                            if (tab[y-i,x].etat != etat.eau)
                            {
                                ok = false;
                            }
                        }

                        if (ok)
                        {
                            for (int i = 0; i < taille; i++)
                            {
                                tab[y-i, x].ajoutBateau(bateau);

                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }

                case direction.gauche:
                    if (x - taille >= 0)
                    {
                        bool ok = true;
                        for (int i = 0; i < taille; i++)
                        {
                            if (tab[y, x-i].etat != etat.eau)
                            {
                                ok = false;
                            }
                        }

                        if (ok)
                        {
                            for (int i = 0; i < taille; i++)
                            {
                                tab[y, x-i].ajoutBateau(bateau);

                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }

                case direction.droite:
                    if (x + taille <= 10)
                    {
                        bool ok = true;
                        for (int i = 0; i < taille; i++)
                        {
                            if (tab[y, x+i].etat != etat.eau)
                            {
                                ok = false;
                            }
                        }

                        if (ok)
                        {
                            for (int i = 0; i < taille; i++)
                            {
                                tab[y, x+i].ajoutBateau(bateau);

                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }
                default:
                    return false;
            }
        }
Exemplo n.º 4
0
        // on ajoute un bateau selon une cellule de départ et une direction
        public bool ajoutBateau(bateau bateau, cellule cellule, direction direction)
        {
            int taille = bateau.taille;
            int x      = cellule.x;
            int y      = cellule.y;

            // on vérifie le placement d'un bateau en position verticale vers le bas

            switch (direction)
            {
            case direction.bas:
                //on vérifie si il y a asser de place pour le placement du bateau
                // la taille du bateau + la valeur de la cellule de départ ne peut dépasser la longueur totale de la colonne
                if (y + taille <= 10)
                {
                    // on initialise une variable bool à true
                    bool ok = true;
                    // on fait une boucle pour la taille du bateau
                    for (int i = 0; i < taille; i++)
                    {
                        if (tab[y + i, x].etat != etat.eau)
                        {
                            ok = false;
                        }
                    }

                    if (ok)
                    {
                        // on fait une boucle pour la taille du bateau
                        for (int i = 0; i < taille; i++)
                        {
                            // on place le bateau
                            tab[y + i, x].ajoutBateau(bateau);
                        }
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }

            case direction.haut:
                //la taille de vérification doit être inversée du fait qu'on remonte vers la cellule 0
                if (y - taille >= 0)
                {
                    bool ok = true;
                    for (int i = 0; i < taille; i++)
                    {
                        if (tab[y - i, x].etat != etat.eau)
                        {
                            ok = false;
                        }
                    }

                    if (ok)
                    {
                        for (int i = 0; i < taille; i++)
                        {
                            tab[y - i, x].ajoutBateau(bateau);
                        }
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }

            case direction.gauche:
                if (x - taille >= 0)
                {
                    bool ok = true;
                    for (int i = 0; i < taille; i++)
                    {
                        if (tab[y, x - i].etat != etat.eau)
                        {
                            ok = false;
                        }
                    }

                    if (ok)
                    {
                        for (int i = 0; i < taille; i++)
                        {
                            tab[y, x - i].ajoutBateau(bateau);
                        }
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }

            case direction.droite:
                if (x + taille <= 10)
                {
                    bool ok = true;
                    for (int i = 0; i < taille; i++)
                    {
                        if (tab[y, x + i].etat != etat.eau)
                        {
                            ok = false;
                        }
                    }

                    if (ok)
                    {
                        for (int i = 0; i < taille; i++)
                        {
                            tab[y, x + i].ajoutBateau(bateau);
                        }
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }

            default:
                return(false);
            }
        }