Morpion

scresan Messages postés 1 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 1 juin 2016 - 1 juin 2016 à 09:00
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 - 1 juin 2016 à 09:18
Bonjour,
Je cherche à résoudre un exercice qui concerne le jeu de morpion mais je bloque car dans cet exercice une strategie est imposée à l'ordi et je n'arrive pas à traduire cette strategie en algo. Quelqu'un pourrait-il m'aider ?
Stratégie joueur B :
1) Le trait (tour) étant au joueur B, ce dernier parcourt d'abord ligne par ligne chaque case disponible du damier pour verifier si plaçant (provisoirement) son pion dans cette case, il réalise ainsi immédiatement un alignement ; si cela est possible, il place effectivement son pion dans la case en question et il a gagné.
2) Si la stratégie 1) a echoué il parcourt à nouveau ligne par ligne les cases disponibles et place son pion dans la premiere case pouvant donner la possibilité au joueur A de réaliser un alignement au coup suivant.
3) Si les deux stratégies précédentes ont échoué, il place son pion dans la première case disponible (toujours dans un parcours ligne par ligne).

1 réponse

dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
1 juin 2016 à 09:18
Salut scresan
Tu te doutes bien que l'on ne va pas faire ton exercice à ta place ! Cela ne n'apporterait rien de bon.
Pour t'aider quand meme voila comment je pratiquerait pour la stratégie 1
for J=1 to TotJ do
for I=1 to TotI do begin
a = ContenuCase(J,I);
if plein(a) then continue;
if TestDroite(J,I) then begin Joue(J,I); exit end;
if TestHaut(J,I) then begin Joue(J,I); exit end;
if TestGauche(J,I) then begin Joue(J,I); exit end;
if TestBas(J,I) then begin Joue(J,I); exit end;
if TestDiagDroite(J,I) then begin Joue(J,I); exit end;
if TestDiagHaut(J,I) then begin Joue(J,I); exit end;
if TestDiagGauche(J,I) then begin Joue(J,I); exit end;
if TestDiagBas(J,I) then begin Joue(J,I); exit end;
end;

Tu adapte après pour la stratégie 2 et ainsi de suite ...
Bon courage
0
Rejoignez-nous