begin process at 2008 07 04 11:54:46
1 204 588 membres
129 nouveaux aujourd'hui
14 116 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : aide placement aleatoire sur une grille [ Divers / Débutant(e) ] (dyslesia)

aide placement aleatoire sur une grille le 03/05/2008 16:59:13

dyslesia
Bonjour à tous,
Dans le cadre de nos cours de C je doit faire un petit projet, et j'ai choisi de réaliser une bataille navale en graphique (j'utilise allegro, faute de connaitre autre chose...)
Et je bloque totalement à la fonction qui place aléatoirement les bateaux sur la grille (plus particulièrement au cas ou un bateau viendrait à en croiser un autre)

voila la boucle que j'ai deja faite mais qui ne marche pas... :

for(Tbateaux=0;Tbateaux<5;Tbateaux++)
    {
        direction = nb_aleatoire_0_1(); //on genere la direction du bateau

        if(direction == 0) //si direction en x
        {
            i = 0;
            while(x[Tbateaux]+(Tbateaux+1)>9&&x[Tbateaux]-(Tbateaux+1)<0) //si ca depasse a gauche ou a droite
            {
                while(bateauxPJ[x[Tbateaux]+i++][y[Tbateaux]] == 1) //si le bateau a placer en croise un autre
                {
                    x[Tbateaux] = nb_aleatoire_1_10();
                    y[Tbateaux] = nb_aleatoire_1_10();
                    if(i>Tbateaux+1) i = 0;
                }
            }

            for(i=0;i<=Tbateaux+1;i++) //une fois qu'on est sur que les bateaux sont bien placés, on les inscrits réellement dans le tableau
            {
                bateauxPJ[x[Tbateaux]+i][y[Tbateaux]] = 1;
            }

        }
    }


Pour indication, les tableaux x[] et y[] correspondent aux cases de départs d'un bateau :
     x[0] = n° de case en x du minier (taille : 2)
     x[1] = n° de case en x du sous-marin (taille : 3)
     x[2] = n° de case en x de la fregate (taille : 4)
     x[3] = n° de case en x du destroyer   (taille : 5)
     x[4] = n° de case en x du porte-avion (taille : 6)
    la meme chose en y.
Je suis débutant( de moin en moin ), excusez-moi si le code n'est pas tres propre.
Merci d'avance pour votre aide!


Classé sous : taille, case, aleatoire, bateau, tbateaux

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS