Poster un nouveau sujet Poster une réponse
Tic Tac Toe - Tomek (TI Concours 2014)
Auteur Message
Wistaro



Autorisation : Membre
Nb de messages : 11
Inscrit le : Ven 18 Oct 2013, 13:14
Posté le : Sam 01 Mar 2014, 17:15   Citer 

*************************
* TIC TAC TOE - TOMEK *
*************************

Voici ma création en TI-Basic pour le Tour 1 (sujet imposé) du TI-Concours 2014.
Voici le manuel d'utilisation:

I/ Design

Le design  concerne l'affichage de la grille.
Vous pouvez choisir votre design par 3 moyens:
1) Choisissez un réglage prédéfini en selectionnant "Default"
2) Créez votre propre design en selectionnant "Manual"
Type = le type d'affichage
Size = La taille, le pas d'affichage de la grille. Attention! Une "size" trop grande peut entrainer une grille non visible.
3) Demandez à votre calculatrice de vous générer aléatoirement un design en sélectionnant "Random".

II/ Menu


Pour des raisons graphiques, le jeu est en anglais.

1) Play: Sélectionnez cette option pour démarrer une partie. Pour cela, appuyez sur la touche 7 du clavier. Ensuite, 2 options vous sont proposées:
* J1 vs J2 = Un mode à 2 joueurs
*J1 vs Comp = Un mode 1 joueur, contre l'Ordinateur.
2) Optn: Permet de redéfinir le design (voir chapitre I/ ) - Touche 5 du clavier
3) Exit:  Quitte le jeu - Touche 3 du clavier

II/ Déplacement

En mode jeu, utilisez les touches directionnelles afin de déplacer le "." sur les cases.
Une fois votre case (vide) choisie, appuyez sur "ENTER" pour valider.

Un bref message d'information apparaît en bas pour vous informer des "logs" du joueur:
*"Checking for victory..." = L'ordinateur vérifie si un joueur à gagné.
*Player 1 , choose target = C'est au tour du joueur 1 (X) de jouer
*Player 2 , choose target = C'est au tour du joueur 2 (O) de jouer


Code version pour la gamme des TI82:

Code

:0->Xmin:0->Ymin
:1->DeltaX:1>DeltaY
:ClrDraw:AxesOff
:For(A,1,30
:   Text(30,40,"TIC
:   Text(randInt(1,55),randInt(1,90),"O
:End
:For(A,1,30
:   Text(30,40,"TAC
:   Text(randInt(1,55),randInt(1,90),"X
:End
:For(A,1,79
:   Text(30,40,"TOE
:End
:For(A,1,79
:   Text(30,37,"TOMEK
:End
:Lbl 9
:ClrHome
:Menu("  DESIGN?","DEFAULT",D,"MANUAL",3,"RANDOM",4
:Lbl 4
:randInt(1,3->M
:randInt(1,7->L
:Goto 2
:Lbl D:2->L:2->M:Goto 2
:Lbl 3
:Disp "Type?1=·/2=□/3=˖
:Input "",M
:If not(max(M={1,2,3:Goto 9
:Disp "Size?
:Input "",L
:abs(L->L
:Lbl 2
:ClrDraw
:DelVar G15->C:DelVar L1DelVar L2DelVar [A]{4,4->dim([A]
:randInt(1,4->V
:randInt(1,4->W
:6->[A](V,W
:2->J
:"*TIC TAC TOE TOMEK*->Str2
:Text(55,14,Str2
:For(A,12,62,L
:   Pt-On(22,A,M
:   Pt-On(48,A,M
:   Pt-On(72,A,M
:End
:For(A,0,94,L
:   Pt-On(A,24,M
:   Pt-On(A,38,M
:   Pt-On(A,52,M
:End
:StorePic 1
:{8,33,58,83->L1
:{0,13,28,42->L2
:DelVar ADelVar B
:Repeat K=72
:   getKey->K
:   If K=94:Goto Q
:   Text(1,1,"MENU>
:   Text(13,27,"PLAY
:   Text(28,52,"OPTN
:   Text(43,78,"EXIT
:   Text(55,A," O
:   Text(55,93-A,"X
:   A+1->A
:   If A=70:Text(55,28,"TI-CONCOURS
:   If K=83:Goto 9
:   If A=93:Then
:      Text(55,14,Str2
:      DelVar A
:   End:End
:ClrDraw:RecallPic 1
:DelVar Z2->A:2->B
:Menu(" GAME MODE?","J1 VS J2",7,"J1 vs COMP",8
:Lbl 7:DelVar IGoto 1
:Lbl 8:1->I:Goto 1
:Lbl 1
:Text(55,8,"CHECKING FOR VICTORY...  
:If C<=12:Then
:   4->dim(L5
:   4->dim(L3
:   4->dim(L4
:   For(theta,1,2
:      For(Q,1,4
:         [A](Q,Q->L4(Q
:         If L4(1)L4(2)L4(3)L4(4:Then
:            sum(L4->U
:            If U=4 or U=9:1->G
:            If U=8 or U=12:2->G
:         End
:         Matr>list([A],Q,L3
:         If L3(1)L3(2)L3(3)L3(4:Then
:            sum(L3->S
:            If S=4 or S=9:1->G
:            If S=8 or S=12:2->G
:         End:End
:      [A]T->[A]
:   End
:   For(Q,1,4
:      [A](Q,5-Q->L5(Q
:      If L5(1)L5(2)L5(3)L5(4:Then
:         sum(L5->H
:         If H=4 or H=9:1->G
:         If H=8 or H=12:2->G
:      End:End
:End
:If G:Goto 5
:If not(C:Goto 6
:¯1(J-3->J
:Text(L2(V),L1(W),"T
:If I and J=2:Then
:   Repeat not([A](F,N
:      randInt(1,4->F
:      randInt(1,4->N
:      Text(55,8,"SELECTING TARGET J2      
:   End
:   2->[A](F,N
:   Text(L2(F),L1(N),"O
:   C-1->C
:   Goto 1
:End
:Repeat K=105 and not([A](A,B
:   getKey->K
:   If K=45:Goto 2
:   Text(55,9,"PLAYER ",J,",CHOOSE TARGET  "
:   Pxl-Change(L2(A)+3,L1(B)+5
:   not(Z->Z
:   If Zmax(K={24,25,26,34
:      DelVar ZPxl-Change(L2(A)+3,L1(B)+5
:   min(4,max(1,A-(K=25)+(K=34->A
:   min(4,max(1,B-(K=24)+(K=26->B
:End
:J->[A](A,B
:C-1->C
:If J=1:Text(L2(A),L1(B),"X
:If J=2:Text(L2(A),L1(B),"O
:Goto 1
:Lbl 5
:Text(21,35,"J",G," WINS!
:Pause :Goto 2
:Lbl 6
:Text(21,30,"GAME OVER!
:Pause :Goto 2
:Lbl Q
:ClrDraw
:DelVar Pic1DelVar [A]DelVar L1DelVar L2DelVar L3DelVar L4DelVar L5Disp "


NB: J'ai essayé de convertir le maximum pour les TI82, mais il peut rester quelques erreurs, veuillez m'en excuser.

Screenshoot:

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Mar 2014, 19:24   Citer 

J'ai modifié ton code pour éviter tant que possible les codes html des caractères unicode.
sto->
<=
¯
Delta
Je n'ai pas touché aux caractères de curseurs de points du graphique.
:Disp "Type?1=·/2=&#9633;/3=&#726;

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Wistaro



Autorisation : Membre
Nb de messages : 11
Inscrit le : Ven 18 Oct 2013, 13:14
Posté le : Jeu 06 Mar 2014, 11:44   Citer 

Merci

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 06 Mar 2014, 13:30   Citer 

Je signale que ce code n'est pas directement compatible TI82 NON-stats.
-il y a la fonction randInt. randInt(A,B)=A+int_((B+1-A)rand)
-il y a des RecallPic 1 et StorePic 1 : il faudra écrire RecallPic Pic1 et StorePic Pic1
-surtout méfiez vous des priorités opératoires de la ti82. En particulier mon code remplaçant randInt qui peut être simplifié mais pas de la même façon sur différents modèles

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes