Démineur ADA

pedrodu38000 Messages postés 5 Statut Membre -  
leboyz Messages postés 27 Statut Membre -
Bonjour, pour mon loisir je me suis tenté à concevoir un démineur en ADA puisque c'est le langage que j'ai appris lors de mon 1er semestre en IUT Informatique.

Le problème est que je bloque sur la fonction dévoilecase, j'ai du mal à voir comment la concevoir. J'ai donc voulu m'inspirer du langage C beaucoup plus répandu et j'ai trouvé l'ébauche suivante :

void Jouer()
{
char NbMinesTxt[2]; // nombre de mines aux alentours
switch (choix)
{
case 1 :
NbMinesAutour();
if (N!=0)//Il y a des mines autour
{
printf("%d\n\n",N);

sprintf(NbMinesTxt,"%d",N);
JEU[i][j]=NbMinesTxt[0];
}
else//Il n'y a pas de mines autour
{
JEU[i][j]='0';
for(i=i-1;i<i+2;i++)
{
for(j=j-1;j<j+2;j++)
NbMinesAutour();
}
}
break;
case 2 : JEU[i][j]='D';
break;
}
}

Le problème c'est que je ne suis pas un adepte du C^^. Il y a donc certaines opérandes que je n'arrive pas à traduire en ADA ou tout simplement en bon français.
Il s'agit de la partie suivante :
for(i=i-1;i<i+2;i++)
{
for(j=j-1;j<j+2;j++)

Si quelqu'un pourrait donc me donner un coup de main pour le raisonnement cela serait sympa^^.

Merci d'avance.

A voir également:

1 réponse

leboyz Messages postés 27 Statut Membre 1
 
bonjour ,

Je ne suit pas un expert en ADA , mais je peut de donner une partie de piste sur le C , Voila une boucle Pour en C s'écrit for(i-min;i<max+1;i++) . Donc En gros ici , tu a un nombre I de départ ( disons 5 ) , la boucle va commencer de 4 (i - 1 ) et s'arrêtera a 2 ( i<3) donc tu passeras deux fois dans ta boucle , sans code supplémentaire je ne pourrai te donner d'autre indication.
0
pedrodu38000
 
Si je comprends bien ton i-1 correspond au i-min, le i<3 au i<max +1.
Pour le raisonnement on peut dire que tant que i < max+1 on fait la boucle, avec comme valeur i de départ une valeur V et une incrémentation de 1 a chaque boucle c'est ça ?
0
leboyz Messages postés 27 Statut Membre 1
 
oui c'est bien cela
0