Bonjour à tous,
Je développe actuellement une bataille navale en console. Pour placer les bateaux du PC et les tirs du pc, il faut que je crer un nombre aleatoire pour les coordonnés, ce que je fait avec :
srand(time(NULL));
X = ((rand() % (10 - 1 + 1)) + 1);
Or les nombres sortis sont très souvent les même et se situent toujours dans la diagonale de la grille. Quelqu'un sait-il pourquoi, y a-t-il une autre solution pour créer un nombre aléatoire plus "fiable"?
voici le main (Ce n'est que le début mais ca ne sert à rien que je continu tant que ce problème n'est pas réglé...) :
int main()
{
SetConsoleTitle("Bataille navale");
system("mode con: cols=25 lines=25");
int X, Y;
Espace();//Dessine la grille
srand(time(NULL));
X = ((rand() % (10 - 1 + 1)) + 1);
srand(time(NULL));
Y = ((rand() % (10 - 1 + 1)) + 1);
gotoxy(X-1+X, Y+Y);//Pour placer un "point" dont les coordonnés sont les nbrs aléatoire
Color(0,12);
printf(" ");
getch();
return 0;
}le resultat (la grille est normale, mais les points toujours dans les cases qui contiennent un "*", la diagonale) :
0 1 2 3 4 5 6 7 8 9
?????????????????????
?* ? ? ? ? ? ? ? ? ? ?A
?????????????????????
? ?* ? ? ? ? ? ? ? ? ?B
?????????????????????
? ? ?* ? ? ? ? ? ? ? ?C
?????????????????????
? ? ? ?* ? ? ? ? ? ? ?D
?????????????????????
? ? ? ? ?* ? ? ? ? ? ?E
?????????????????????
? ? ? ? ? ?* ? ? ? ? ?F
?????????????????????
? ? ? ? ? ? ?* ? ? ? ?G
?????????????????????
? ? ? ? ? ? ? ?* ? ? ?H
?????????????????????
? ? ? ? ? ? ? ? ?* ? ?I
?????????????????????
? ? ? ? ? ? ? ? ? ?* ?J
?????????????????????(Dans la console, les colonnes sont biens alignées)
//Merci à tous de vous interesser à mon problème,Cordialement,
B@stien
PS: Il me semble que code-source ne supporte pas les unicodes et affiche des "?" à la place (Pour la grille))