Tout 82
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe

Chatbox externe


Derniers sujets
» [JEU] Mon voisin du dessous
Tic Tac Toe Tomek EmptyDim 16 Oct 2022 - 21:11 par Wistaro

» Bonne année 2018!
Tic Tac Toe Tomek EmptyVen 2 Nov 2018 - 19:42 par Ti64CLi++

» Lancement du TI-Concours 2017 !
Tic Tac Toe Tomek EmptySam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
Tic Tac Toe Tomek EmptyVen 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
Tic Tac Toe Tomek EmptyVen 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
Tic Tac Toe Tomek EmptyDim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
Tic Tac Toe Tomek EmptyMer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
Tic Tac Toe Tomek EmptyJeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
Tic Tac Toe Tomek EmptyJeu 15 Déc 2016 - 10:24 par Ti64CLi++

Partenaires
TI-Planet Espace-TI : Forum

Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)

Les posteurs les plus actifs du mois
Aucun utilisateur

-30%
Le deal à ne pas rater :
LEGO Icons 10318 – Le Concorde à 139,99€
139.99 € 198.99 €
Voir le deal

Tic Tac Toe Tomek

4 participants

Aller en bas

Tic Tac Toe Tomek Empty Tic Tac Toe Tomek

Message par m@thieu41 Dim 2 Mar 2014 - 14:38

Bonjour à tous!

Alors voilà je vous présente mon programme Tic Tac Toe Tomek que j'ai présenté pour le ti concours 2014, au tour 1 en ti basic, en sujet imposé !

Le lien de téléchargement:
https://www.mediafire.com/?1qgtz7433jtq2h4

Je vous fait une rapide présentation:

Le menu:
Vous vous déplacez avec les flèches du haut et du bas. Dans l'ordre:
_Vous pouvez choisir ici de jouer à 2 joueurs (chacun joue chacun son tour sur la même ti), ou contre une IA (HUM VS IA) en utilisant les flèches droite/gauche. Ce choix sera effectif en mode partie simple et tournoi.
_Vous pouvez choisir de faire une partie simple du jeu (voir les règles plus bas) (entrer pour valider).
_Vous pouvez choisir de faire un tournoi, et le choisir le nombre de manches (entre 2 et 5), avec les flèches droite/gauche (entrer pour valider).
_Quitter, je ne vous apprends rien. (annul/clear marche aussi)
Au moment de l'affichage de fin, vous pouvez quitter directement en appuyant sur n'importe quelle touche.

Le jeu (règles prises d'après le site du concours: http://www.ti-concours.com/tz/t1/accueil.php)
Ce jeu se joue sur une grille de 4 * 4 cases. Au début d'une partie, la grille est vide, à l'exception d'un caractère 'T' qui est placé aléatoirement sur l'une des cases.
Il y a deux joueurs: le joueur X et le joueur O. Le joueur X commence, puis les deux jouent chacun leur tour. A chaque tour, le joueur concerné place son symbole sur l'une des cases vides de la grille. Lorsque c'est votre tour, déplacez vous avec les flèches directionnelles, et validez votre position avec entrer.
Lorsque l'un des joueur finis avec une ligne, une colonne ou une diagonale contenant quatre fois son symbole, ou trois fois son symbole plus le symbole 'T', alors ce joueur gagne. La partie continue jusqu'à ce que quelqu'un gagne, ou qu'il n'y ait plus d'emplacement vide sur la grille, auquel cas il y a égalité.
A tout moment, vous pouvez quitter avec annul/clear.

Mode tournoi
En mode tournoi, vous disputez (contre un autre joueur ou une IA), une série de manches, chacun commençant à tour de rôle. A la fin du tournoi, celui qui a remporté le plus de manches gagne le tournoi.

L'IA
L'IA est programmée pour gérer en priorité certains cas (si elle peut gagner, si elle peut perdre, si elle peut prendre l'avantage, etc). Elle est plus offensive que défensive, mais ne peut pas avoir de stratégie impliquant plusieurs lignes/colonnes/diagonales simultanément.


Le code
Voici le code de mon programme. Comme vous pouvez le voir, j'ai essayé d'exploiter au maximum le "bogue" des goto/lbl. (note: je corrige dès que possible l'incompatibilité entre le forum et les caractères de tipe fait)
Code:
{4,4->dim([A]
AxesOff
FnOff
"TIC TAC TOE TOMEK->Str0
10->dim(L2
-1->Ymin
61->Ymax
-23->Xmin
71->Xmax
DelVar LDelVar MDelVar H4->O
While 1
ClrDraw
2->J
Shade(48,59,-13,63
For([théta],1,17
If not(max([théta]={4,8,12
Text(4+randInt(0,2),10+4[théta]," "+sub(Str0,[théta],1
End
Text(50,33,"QUITTER
Text(40,12,"TOURNOI EN ",O," MANCHES
Text(30,23,"PARTIE SIMPLE
For([théta],0,1
For(W,0,2
For(A,1,1+2W
22+20[théta]-W+A
Pxl-On(Ans,W+1
Pxl-On(Ans,93-W
End
End
End
10->I
Repeat H and K=105
If L-W
Text(20,29+2L,"  "+sub("2 JOUEURSHUM VS IA",1+9L,9
L->W
Text(40,50,O
If H-A
Then
For([théta],0,1
Line(-23,43-10A,71,43-10A,[théta]
Line(-23,33-10A,71,33-10A,[théta]
H->A
End
End
getKey->K
If Ans=45
Goto 0
max(0,min(3,H+(Ans=34)-(Ans=25->H
L xor not(Ans)(K=24 or K=26->L
max(2,min(5,O+(H=2)((K=26)-(K=24->O
End
If H=1
Goto J
If H=3
Goto 0
DelVar P{0,0->L1
Repeat P>O
For(W,0,1
If Pnot(W
Goto 8
End
2-2fPart(.5P->J
P+1->P
If Ans<=O
Goto J
End
L1(2
(L1(1)>Ans)+2(Ans>L1(1->G
Goto 7
Lbl 8
For([théta],-1,50
Line(-23,[théta],71,[théta],0
End
If P-1
Then
RecallPic 0
Else
Horizontal 48
Horizontal 40
Horizontal -1
Text(14,2,"JOUEUR X    MANCHE    JOUEUR O
For([théta],-23,71,31.3
Line([théta],48,[théta],-1
End
For([théta],1,O
16+6[théta]
Text(Ans,46,[théta]
Text(Ans,15,"-
Text(Ans,78,"-
End
6[théta]
Line(-23,44-Ans,71,44-Ans
Text(18+Ans,39,"TOTAL
Shade(-1,36-Ans
If O<5
Text(44+3O,17," IL RESTE ",O," MANCHES
End
For([théta],1,û3
End
If G
Then
Text(6P+16,63G-48,sub("XO",G,1
1+L1(G->L1(G
For([théta],1,300
End
End
For([théta],1,2
Text(24+6O,63[théta]-48,L1([théta]
End
For([théta],1,300
End
If O<5
Text(44+3O,48,O-P
StorePic 0
Pause
End
Lbl J
ClrDraw
If M
Then
RecallPic 1
Else
For([théta],52,61
Line(-8,[théta],55,[théta]
End
Pxl-Off(0,15
Pxl-Off(9,15
Pxl-Off(0,78
Pxl-Off(9,78
Text(2,17," "+Str0
For([théta],0,48,12
Line(0,[théta],48,[théta]
Line([théta],0,[théta],48
End
Line(1,-1,49,-1
Line(49,-1,49,47
For(A,0,36,12
For(B,0,36,12
Lbl 9
For([théta],2,8,2
Pt-Change(A+[théta],2+B
Pt-Change(2+A+[théta],10+B
Pt-Change(2+A,B+[théta]+2
Pt-Change(A+10,B+[théta]
End
End
End
StorePic 1
1->M
End
Line(54,32,54,16
Line(66,32,66,16
Line(56,14,66,14
Line(67,32,67,15
For([théta],15,33,2
Line(55,[théta],65,[théta]
End
If H=2
Then
Text(29,78," X:",L1(1
Text(39,78," O:",L1(2
End
Fill(0,[A]
randInt(0,3->C
randInt(0,3->D
Fill(0,L2
L2->L3
Ans->L5
.5->L2(1+C
Ans->L2(5+D
If C=D
Then
Ans->L2(9
1->L3(9
End
If C=3-D
Then
.5->L2(10
1->L3(10
End
1->L3(1+C
1->L3(5+D
3->[A](C+1,D+1
12C->A
12D->B
Line(4+A,8+Ans,8+A,8+Ans
Line(6+A,8+Ans,6+A,4+Ans
For(T,0,1
If not(T
Goto 9
End
9->V
Line(-14,19,-6,19
Line(-5,20,-5,26
Line(-15,20,-15,26
Line(-14,27,-6,27
DelVar GDelVar NRepeat N=15 or G
N+1->N
3-J->J
Text(35,10,"J",sub("XO",Ans,1
If L and J=2
Then
seq([théta],[théta],1,10->L4
(4!=L3)+(-1=L2 and 1=L3->L5
For([théta],1,10
L5([théta]
If Ans
Then
If 2=L3([théta]) and 0>L2([théta]) or not(L3([théta]
3
If L3([théta])=1 and 0<L2([théta]
4
If L3([théta])=2 and 0<L2([théta]
5
If L3([théta])=3 and -1.5>=L2([théta]
6
If 2.5<=L2([théta]
7
Ans->L5([théta]
End
End
SortD(L5,L4
L4(1
If Ans<5
Then
DelVar SAns-1->Q
While [A](Q+1,S+1
S+1->S
End
Else
If Ans>8
Then
Ans=10->[théta]
DelVar Q3Ans->S
While [A](Q+1,S+1
Q+1->Q
S+1-2[théta]->S
End
Else
DelVar QAns-5->S
While [A](Q+1,S+1
Q+1->Q
End
End
End
End
Repeat K=105 and not([A](U+1,V+1
If U-C or V-D
Then
For(W,0,1
12U->A
12V->B
For([théta],1,11,10
Line(A+1,[théta]+B,A+11,[théta]+B,W
Line(A+[théta],1+B,A+[théta],B+11,W
End
C->U
D->V
End
End
If L and J=2
Then
69!
If getKey=45
Goto M
DelVar KU+(U<Q)-(U>Q->C
If Ans=U
V+(V<S)-(V>S->D
If S=V and C=Q
105->K
Else
Repeat Ans
getKey->K
End
If Ans=45
Goto M
max(0,min(3,U+(Ans=26)-(K=24->C
max(0,min(3,V+(K=25)-(K=34->D
End
End
J->[A](U+1,V+1
If J=2
Then
For(W,4,8,4
Line(5+A,W+B,7+A,W+B
Line(W+A,5+B,W+A,7+B
End
Else
Line(A+4,B+4,A+8,B+8
Line(A+4,B+8,A+8,B+4
End
For(T,0,1
If not(T
Goto 9
End
2J-3+L2(U+1->L2(U+1
1+L3(U+1->L3(U+1
2J-3+L2(V+5->L2(V+5
1+L3(V+5->L3(V+5
If U=V
Then
2J-3+L2(9->L2(9
1+L3(9->L3(9
End
If U=3-V
Then
2J-3+L2(10->L2(10
1+L3(10->L3(10
End
J(max(L2=-2.5) or 3.5<=max(abs(L2->G
End
Lbl 7
For([théta],0,3
Horizontal 28+[théta]
Horizontal 27-[théta]
69!
End
If G
Then
sub("XO",G,1)+" GAGNE!
Else
"EGALITE...
End
Text(31,34," "+Ans
Pause
End
Lbl M
105->K
Ans->P
Fill(0,[A]
1->G
End
End
End
End
End
Lbl 0
If M
Then
ClrDraw
RecallPic 1
Text(2,18,"            PRESS A KEY       
DelVar A-1->B
For([théta],1,16
B=2 and [théta]-16->W
B+1-3Ans->B
A+W->A
Text(16+12A+randInt(-1,1),28+12(B+(A=1))+randInt(-1,1),sub(Str0,[théta],1
[théta]+max([théta]={3,7,11->[théta]
For(D,1,300
End
getKey->K
If Ans
20->[théta]
End
Text(57,72," K
While not(Ans
getKey
End
End
ClrDraw
ClrHome
DelVar [A]DelVar Str0DelVar Pic0DelVar Pic1ClrAllLists
Output(1,1,"


Pour finir, je vous met un petit screen:
Tic Tac Toe Tomek 112R


Nb: ici vous pouvez trouver le programme présenté par Wistaro pour ce même concours.


Dernière édition par m@thieu41 le Dim 2 Mar 2014 - 18:10, édité 1 fois
m@thieu41
m@thieu41
----------------------
----------------------

Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par Wistaro Dim 2 Mar 2014 - 17:49

Joli!
Normal que le code soit truffé de caractères spéciaux?...
Et comment tu as fait le triangle plein ?
Wistaro
Wistaro
Passioné
Passioné

Messages : 918
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par persalteas Dim 2 Mar 2014 - 17:51

Ohaw hallucinante performance O_o Bien Joué

Tu mérites bien ta première place ! félicitations !
(Et sinon, le screen qui affiche en gris, c'est du contraste mal réglé, ou tu gères vraiment du gris en Basic ?)

Spoiler:
persalteas
persalteas
----------------------
----------------------

Messages : 483
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://tout82.forumactif.org

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par m@thieu41 Dim 2 Mar 2014 - 17:56

Merci Smile

Le gris c'est la nouvelle version de wabbitemu qui me le fait sur les screen...
Les caractères spéciaux je vais les régler. //Edit: c'est fait.
Les triangles pleins sont fait avec des pxl-on couplés avec des boucles ici:
Code:
For(théta,0,1
For(W,0,2
For(A,1,1+2W
22+20théta-W+A
Pxl-On(Ans,W+1
Pxl-On(Ans,93-W
End
End
End
m@thieu41
m@thieu41
----------------------
----------------------

Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par Wistaro Dim 2 Mar 2014 - 18:16

Waw ;-)
Ok Razz Sympa le code de l'IA
Wistaro
Wistaro
Passioné
Passioné

Messages : 918
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par Linkakro Lun 10 Mar 2014 - 23:40

Ce programme frôle la perfection. Bien joué. respect

Je m'intéresse surtout à l'Intelligence Artificielle et au test de victoire malgré les graphismes irréprochables. (car j'ai réalisé plusieurs programmes aux tests performants, mais je n'ai jamais achevé aucune de mes Intelligences Artificielles.)
Linkakro
Linkakro
----------------------
----------------------

Messages : 533
Points Concours : 55
Productivité : 31
Date d'inscription : 30/07/2013
Localisation : origine région centre, puis perpignan
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par m@thieu41 Mar 11 Mar 2014 - 17:05

Merci Smile

J'ai essayé de faire en sorte que l'IA se serve des données de test de victoires, de façon à ce qu'elle soit assez rapide, et que ces données soient toujours actualisées de manière simple, de façon à ne pas à avoir à tout vérifier constamment.
m@thieu41
m@thieu41
----------------------
----------------------

Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

Tic Tac Toe Tomek Empty Re: Tic Tac Toe Tomek

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum