), et je souhaite me créer un petit morpion avec IA. joueur vs joueur fonctionne bien, mais j'ai un problème avec l'IA ... Mon programme est pas du tout optimisé, je le ferai plus tard. Si l'affichage est lent, c'est normal, c'était un test pour l'affichage.
Bon, j'explique le problème : dès qu'une case est validée par le joueur, ça met 1 dans la case concernée, dans la matrice A. Après, je fais un simple Int(Ran#x9)+1 pour avoir un numéro aléatoire. Je fais une petite boucle pour que tant que le numéro obtenu par ce système est égal au numéro de la case de la matrice A. Le problème est que ça ne marche pas !!! Étant un mauvais, j'ai pas trouvé le bog !!!
Le bébé est ici
Fermer
Prog "REMISE 0"
{3,3}->Dim Mat A
Fill(9,Mat A)
{3,3}->Dim Mat B
Fill(0,Mat B)
1.01->M~Q
" PAC vous presente"
1->T
While S<>1
While T<>7
Locate T,2,"LE MORPION"
T<>1=>Locate T-1,2,"="
Isz T
0->R
While R<>30
Isz R
WhileEnd
WhileEnd
Isz S
WhileEnd
16->T
0->S
While S<>1
While T<>21
Locate T,2,"="
Isz T
0->R
While R<>30
Isz R
WhileEnd
WhileEnd
Isz S
WhileEnd
ClrText
Lbl A
" PAC vous presente"
"=====LE MORPION====== Vous voulez jouer contre :"
"Un humain -> 0 La calculatrice -> 1"?->W
W=0=>Goto 0
ClrText
"Entrez votre niveau de difficulte :"
""
"1 -> tres facile 2 -> moyen 3 -> imbattable"?->U
ClrText
Lbl 0
G<>0=>1->Mat A[1,1]
H<>0=>1->Mat A[1,2]
I<>0=>1->Mat A[1,3]
D<>0=>1->Mat A[2,1]
E<>0=>1->Mat A[2,2]
F<>0=>1->Mat A[2,3]
A<>0=>1->Mat A[3,1]
B<>0=>1->Mat A[3,2]
C<>0=>1->Mat A[3,3]
ViewWindow 1,127,0,1,63,0
0->Y
Isz Z
Z=3=>1->Z
X=1=>Goto 1
F-Line 1,63,60,63
F-Line 1,63,1,3
F-Line 1,3,60,3
F-Line 60,63,60,3
F-Line 20,63,20,3
F-Line 40,63,40,3
F-Line 1,43,60,43
F-Line 1,23,60,23
Text 15,9,"7"
Text 15,29,"8"
Text 15,49,"9"
Text 34,9,"4"
Text 34,29,"5"
Text 34,49,"6"
Text 54,9,"1"
Text 54,29,"2"
Text 54,49,"3"
Text 15,65,"Quel est votre"
Text 21,65,"choix, joueur"
Text 21,123,"?"
Text 33,65,"Recommencer:0"
W=1=>Text 50,65,"IA niv , v."
U<>0=>Text 50,91,U
U<>0=>Text 50,112,Q
Text 58,65,"Prog v 1.0"
StoPict 1
'DESSIN RONDS ET CAR
Lbl 1
RclPict 1
A=1=>F-Line 1,63,20,43
A=1=>F-Line 20,63,1,43
A=2=>Circle 10,53,8
B=1=>F-Line 21,63,40,43
B=1=>F-Line 40,63,21,43
B=1=>3->B
B=2=>Circle 30,53,8
C=1=>F-Line 41,63,60,43
C=1=>F-Line 60,63,41,43
C=2=>Circle 50,53,8
D=1=>F-Line 1,43,20,23
D=1=>F-Line 20,43,1,23
D=2=>Circle 10,33,8
E=1=>F-Line 21,43,40,23
E=1=>F-Line 40,43,20,23
E=2=>Circle 30,33,8
F=1=>F-Line 41,43,60,23
F=1=>F-Line 60,43,40,23
F=2=>Circle 50,33,8
G=1=>F-Line 1,23,20,3
G=1=>F-Line 20,23,1,3
G=2=>Circle 10,13,8
H=1=>F-Line 21,23,40,3
H=1=>F-Line 41,23,20,3
H=2=>Circle 30,13,8
I=1=>F-Line 41,23,60,3
I=1=>F-Line 60,23,40,3
I=2=>Circle 50,13,8
1->X
StoPict 1
Text 21,118,Z
0->Y
W=1 And Z=2=>Goto R
W=0=>Goto 3
W=1 And Z=1=>Goto 3
Lbl 3
While Y<>71 And Y<>72 And Y<>62 And Y<>52 And Y<>73 And Y<>63 And Y<>53 And Y<>74 And Y<>64 And Y<>54 And Y<>47
Getkey->Y
WhileEnd
Y=72=>7->V
Y=62=>8->V
Y=52=>9->V
Y=73=>4->V
Y=63=>5->V
Y=53=>6->V
Y=74=>1->V
Y=64=>2->V
Y=54=>3->V
Y=71=>Prog "REMISE 0"
Y=71=>Goto 0
Y=47=>0->Z
Y=47=>0->X
Y=47=>Goto A
Lbl 8
If W=0 And Z=1
Then V=1=>1->A
V=2=>1->B
V=3=>1->C
V=4=>1->D
V=5=>1->E
V=6=>1->F
V=7=>1->G
V=8=>1->H
V=9=>1->I
Goto 0
IfEnd
If W=0 And Z=2
Then V=1=>2->A
V=2=>2->B
V=3=>2->C
V=4=>2->D
V=5=>2->E
V=6=>2->F
V=7=>2->G
V=8=>2->H
V=9=>2->I
Goto 0
IfEnd
Lbl 7
If W=1 And Z=1
Then V=1=>1->A
V=2=>1->B
V=3=>1->C
V=4=>1->D
V=5=>1->E
V=6=>1->F
V=7=>1->G
V=8=>1->H
V=9=>1->I
Goto 0
IfEnd
If W=1 And Z=2
Then V=7=>2->A
V=8=>2->B
V=9=>2->C
V=4=>2->D
V=5=>2->E
V=6=>2->F
V=1=>2->G
V=2=>2->H
V=3=>2->I
Goto 0
IfEnd
Goto 0
'REFLEXION
Lbl R
Fill(0,Mat B)
0->V
Int (Ran#*9)+1->V
V=1=>1->Mat B[1,1]
V=1=>A=Mat B[1,1]=>Goto R
V=2=>1->Mat B[1,2]
V=2=>B=Mat B[1,2]=>Goto R
V=3=>1->Mat B[1,3]
V=3=>C=Mat B[1,3]=>Goto R
V=4=>1->Mat B[2,1]
V=4=>D=Mat B[2,1]=>Goto R
V=5=>1->Mat B[2,2]
V=5=>E=Mat B[2,2]=>Goto R
V=6=>1->Mat B[2,3]
V=6=>F=Mat B[2,3]=>Goto R
V=7=>1->Mat B[3,1]
V=7=>G=Mat B[3,1]=>Goto R
V=8=>1->Mat B[3,2]
V=8=>H=Mat B[3,2]=>Goto R
V=9=>1->Mat B[3,3]
V=9=>I=Mat B[3,3]=>Goto R
V
Goto 7
Citer : Posté le 16/12/2012 19:27 | #
Si tu es débutant tu peux commencer par des trucs plus simples, mais bon, si tel est ton souhait...
1) Mets une vraie boucle et pas un Lbl/Goto !
2) Décompose ton V plutôt que mettre plein de conditions !
Ajouté le 16/12/2012 à 19:33 :
X : Int((V-1)/3+1)
Y : 9-3*Int((V-1)/3+1)
Citer : Posté le 17/12/2012 17:46 | #
Voici un tutoriel pour programmer un morpion léger : lien.
cf cours de programmation
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 17/12/2012 22:34 | #
Ton cours ne présente pas l'intelligence artificielle, Piterro veut en faire une.
Citer : Posté le 18/12/2012 18:02 | #
Désolé, j'avais lu trop vite
(mais mon lien peut toujours servir)
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<