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
Mar 10 Oct 2017 - 19:42 par Wistaro

» Lancement du TI-Concours 2017 !
Sam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
Ven 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
Ven 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
Dim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
Mer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
Jeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
Jeu 15 Déc 2016 - 10:24 par Ti64CLi++

» flappy bird
Jeu 15 Déc 2016 - 10:23 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


Tic Tac Toe Tomek

Voir le sujet précédent Voir le sujet suivant Aller en bas

Tic Tac Toe Tomek

Message par m@thieu41 le 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:
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:



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

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

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

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par Wistaro le 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 ?

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 910
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

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par persalteas le 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:
je vais être forcé de poster le mien après vous deux... alors que le mien est buggé :P

__________________________________________________________________________
Bienvenue sur le nouveau Tout-82, Invité ! Viens discuter sur le chat... What a Face
Depuis que je me suis tatoué une calculatrice sur le bras, vous pouvez compter sur moi ! :P (Best joke ever x) )
avatar
persalteas
----------------------
----------------------

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

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://tout82.forumactif.org

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par m@thieu41 le 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

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

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

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par Wistaro le Dim 2 Mar 2014 - 18:16

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

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 910
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

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par Linkakro le 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.)

__________________________________________________________________________
Vétéran du TI-Basic Zilog80. Ti82statfr sur Tout82 depuis 2009 et ti84pocketfr depuis noël 2012. Ti83plusfrUSB (été 2014, concours tiplanet suite du geek). Bidouille un peu d'assembleur Z80.
Incappable de gérer le temps et manque de tact, plutôt serviable.
Je prend les commandes de programme. Je suis motivé par les maths et la physique tant que ce n'est pas une simple copie d'antisèche.
Vous pouvez trouver une grande partie de mes données hébergées dans mon mediafire. Le ZIP et la liste sont périmées depuis longtemps.
coucou Invité What a Face
avatar
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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par m@thieu41 le 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.

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

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

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tic Tac Toe Tomek

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


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