Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Lun 18 Juil 2011, 16:18
Voici un ptit puissance 4 graphique, un ptit bug sur la dernière colones, quand le jeux est plein il le dis, par contre j'aimerais y inclure une vérification de victoire, voici le code:
Lbl B2
Texte(0,(X+D)*6+2,"V
codeTouch(üK
If K
Texte(0,(X+D)*6+2,"
If K=24
D-1üD
If non(D
8üD
If K=26
D+1üD
If D=9
1üD
If K=45:Stop
If (Kø21)(Kø105)(Kø34)
Goto B2
If L(D)=2
Goto B2
Texte(0,(X+D)*6+2,"V
L(D)üR
Lbl PP
DüB
If J=2
Goto CE
Ligne((D+X)*6+4,66-(L(D)-1)*8,(D+X)*6+2,68-(L(D)-1)*8
Ligne((D+X)*6+4,66-(L(D)-1)*8,(D+X)*6+6,68-(L(D)-1)*8
Ligne((D+X)*6+4,72-(L(D)-1)*8,(D+X)*6+2,70-(L(D)-1)*8
Ligne((D+X)*6+4,72-(L(D)-1)*8,(D+X)*6+6,70-(L(D)-1)*8
L(D)-1üL(D)
Goto TS
Lbl CE
Texte((L(B)-1)*8-9,(X+B)*6+2,"O
Ligne((X+B)*6+4,66-(L(B)-1)*8,(X+B)*6+4,72-(L(B)-1)*8
Ligne((X+B)*6+2,68-(L(B)-1)*8,(X+B)*6+2,70-(L(B)-1)*8
Ligne((X+B)*6+6,68-(L(B)-1)*8,(X+B)*6+6,70-(L(B)-1)*8
L(B)-1üL(B)
Lbl TS
G+1üG
If G=56
Then
3üP
Goto DD
End
J-(J=2)+(J=1üJ
Goto B1
Lbl DD
If P=3:Texte(0,0,"--- FULL ---
---------------------- "Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi ."
"L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
"
Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Dim 31 Juil 2011, 16:17
J'ai feuilleté comme ça ton prog et je peux te signaler que
Citer
" üCha ne1
Code
Peut s'écrire
:For(A,1,45
:chaine1+" "->chaine1
:end
Sinon je testerai quand j'aurai le temps mais ça me parait assez court (donc fluide) pour un puissance 4 en graphique. Bravo!
---------------------- En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Mar 02 Aoû 2011, 0:39
IL y en a plus :p
merci d'avoir test le programme, je voudrai y inclure une vérification de victoire (ça prendra plus d'octet mais bon )
---------------------- "Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi ."
"L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
"
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 02 Aoû 2011, 20:16
C'est très bien à première vue.
Mais mon curseur et les pions sont décalés de deux colonnes vers la droite par rapport à la grille malgré un copié/collé du programme.
Je cherche mon erreur (en espérant que ce soit bien la mienne)
Quand cela marchera, je continuerai à l'étudier pour voir quoi faire de plus.
EDIT : j'ai trouvé ce que j'avais mal copié. Maintenant j'écris une amélioration.
---------------------- 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)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 05 Aoû 2011, 20:01
Je n'ai pas compris tous les enjeux de certains éléments.
J'ai réécrit des choses.
Et surtout j'ai écrit une vérification de victoire , sans matrice
La méthode me trottait dans la tête depuis longtemps.
Je ne connais pas plus rapide comme test de victoire mais ce serait bien de l'accélérer encore plus.
Les touches bas, 2nde et entrer permettent toutes de valider un coup. (ça n'a pas changé mais personne ne l'a dit)
Lbl J
getKey
Text(25,52,"PLAYER : ",J
Text(0,D6-4,"V
Repeat sum(K={105,34,21,45,24,26
getKey->K
End
Text(0,D6-4," "
D-(K=24)+(K=26->D
If not(D
8->D
If D=9
1->D
If K=45:Stop
If K-105 and K-21 and K-34
Goto J
If not(L1(D
Goto J
L1(D)-1->L1(D
8L1(D->R
If J=1
Then
Line(D6-2,50-R,D6-4,52-R
Line(D6-2,50-R,D6,52-R
Line(D6-2,56-R,D6-4,54-R
Line(D6-2,56-R,D6,54-R
Else
Text(R+7,D6-4,"O
Line(D6-2,50-R,D6-2,56-R
Line(D6-4,52-R,D6-4,54-R
Line(D6,52-R,D6,54-R
End
G+1->G
If G=56
Goto F
//// début de la partie test victoire (facultative)
DelVar B
1->Z
For(W,-3,3
D6-3+6W->X
R+7+8W->Y
If X>0 and Y>0 and X<50 and Y<60
Then
pxl-Test(Y,X)+pxl-Test(Y+1,X->C
If C-J and W>0
DelVar Z
Z+B->B
If C-J and W<1
DelVar B
End
End
If B>3
Goto Z
DelVar B
1->Z
For(W,-3,3
D6-3-6W->X
R+7+8W->Y
If X>0 and Y>0 and X<50 and Y<60
Then
pxl-Test(Y,X)+pxl-Test(Y+1,X->C
If C-J and W>0
DelVar Z
Z+B->B
If C-J and W<1
DelVar B
End
End
If B>3
Goto Z
D6-3->X
DelVar B
1->Z
For(W,0,3
R+7+8W->Y
If Y>0 and Y<60
Then
pxl-Test(Y,X)+pxl-Test(Y+1,X->C
If C-J
DelVar Z
Z+B->B
End
End
If B>3
Goto Z
R+7->Y
DelVar B
1->Z
For(W,-3,3
D6-3+6W->X
If X>0 and X<50
Then
pxl-Test(Y,X)+pxl-Test(Y+1,X->C
If C-J and W>0
DelVar Z
Z+B->B
If C-J and W<1
DelVar B
End
End
If B>3
Goto Z
//// fin de la partie test victoire
3-J->J
Goto J
Lbl F
Text(0,0,"---- FULL ----
DelVar J
Lbl Z
If J
Text(31,52,"WIN
L'idée de base est de tester les cases à proximité des pions joués plutôt que de tester toute la grille à chaque fois.
L'idée secondaire est d'utiliser des pixel-Test à la place des matrices.
EDIT: avec du recul quelques mois après je me demande si un code si long en vaut la chandelle. Probablement plus long qu'un test basique mais plus rapide.
---------------------- 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)
Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Ven 05 Aoû 2011, 20:13
Bravo ! très court en effet.
Sans matrice je ne croyais pas ça possible ! l'impossible est fait
---------------------- "Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi ."
"L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
"