Poster un nouveau sujet Poster une réponse Page: 1,      >>
puissance 4 avec vérification de victoire
Auteur Message
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 22 Mai 2011, 12:55   Citer 

Bonjour/bonsoir
Voici un puissance4 que j'avais fait en février mais pas encore posté.
Il ce joue à 2 joueurs sur écran de calcul et l'on à la possibilité de demander à ce que la TI vérifie si un joueur à gagner mais ça ralentit un peut, c'est pourquoi on peut l'enlever.

Voici le code:

Code
:Menu("VERIF DE VICT","ACTIVE",1,"DESACTIVE",2
:Lbl 1
:1 -> S
:Goto 3
:Lbl 2
:0 -> S
:Lbl 3
:ClrHome
:{8,7 -> dim([A]
:Fill(1,[A]
:For(E,1,7
:5 -> [A](8,E
:5 -> [A](1,E
:Output(2,2E,E
:End
:For(E,3,8
:For(F,1,15,2
:Output(E,F,"!
:End
:End
:For(A,1,42
:If not(fPart(A/2
:Then
:3 -> B
:Else
:2 -> B
:End
:Repeat sum(K={92,93,94,82,83,84,72
:getKey -> K
:End
:If K=92
:1 -> G
:If K=93
:2 -> G
:If K=94
:3 -> G
:If K=82
:4 -> G
:If K=83
:5 -> G
:If K=84
:6 -> G
:If K=72
:7 -> G
:If 1=!=[A](7,G
:Then
:EffVar KEffVar GA-1 -> A
:Else
:For(I,1,6
:If 1=[A](8-I,G) and 1=!=[A](7-I,G
:Then
:B -> [A](8-I,G
:If B=2
:Output(I+2,2G,"O
:If B=3
:Output(I+2,2G,"X
:End
:End
:End
:If S
:Then
:For(E,1,4
:For(F,2,7
:[A](F,E)[A](F,E+1)[A](F,E+2)[A](F,E+3 -> W
:If W=16
:Goto W
:If W=81
:Goto W
:End
:End
:For(E,1,7
:For(F,2,4
:[A](F,E)[A](F+1,E)[A](F+2,E)[A](F+3,E -> W
:If W=16
:Goto W
:If W=81
:Goto W
:End
:End
:For(E,5,7
:For(F,1,4
:[A](E,F)[A](E-1,F+1)[A](E-2,F+2)[A](E-3,F+3 -> W
:If W=16 or W=81
:Goto W
:End
:End
:For(E,2,4
:For(F,1,4
:[A](E,F)[A](E+1,F+1)[A](E+2,F+2)[A](E+3,F+3 -> W
:If W=16
:Goto W
:If W=81
:Goto W
:End
:End
:End
:End
:Lbl W
:If S
:Then
:Output(2,1,"             
:If W=81
:Then
:Disp "CROIX GAGNE
:Pause
:Else
:If W=16
:Then
:Disp "ROND GAGNE
:Pause
:Else
:Disp "MATCH NUL
:Pause



----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 22 Mai 2011, 15:16   Citer 

L'option pour verrifier ou non est une très bonne idée bigmouth.gif
La verrif semble légèrement astucieuse.
Toutefois c'est une méthode de crible long.

J'ai testé et ça marche bien.
Je n'ai pas pris le temps de tester une victoire car c'est plutôt long.

----------------------
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 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 23 Mai 2011, 9:40   Citer 

ça me semblait plus facile de vérifier toute les possibilitées plutôt que que autour du nouveau jeton, surtout que les coordonnées dans la matrice ne correspondent pas du tout à celles sur le plateau

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 28 Mai 2011, 22:50   Citer 

Voici le .83p
PUISSAN4.83p

Sandro

PS: peut-être que vous devrais modifier le nom et l'extention pour obtenir "PUISSAN4.83p"

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
NICO
Invité
Posté le : Mer 08 Jui 2011, 16:12   Citer 

OU TROUVE TON LA TOUCHE KEffVar PLEASE HELP ME!

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 08 Jui 2011, 17:59   Citer 

Ce n'est pas "KEffvar" en un seul caractère mais la letre K suivie de Effvar ([prgm] [alpha] [tan] ). Effvar à la particularité que l'instruction suivante ne doit pas être séparée par ":" sauf quelques exeptions (ex : "End" )

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
guoh7
Invité
Posté le : Lun 13 Jui 2011, 19:24   Citer 

slt tout le monde, j'ai essayé le programme mais il m'indique une erreur de syntaxe sur la ligne "If 1=!=[A](7,G" au niveau du "!" pourrais-je savoir pourquoi et comment corriger cette erreur s'ils vous plait merci d'avance

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 13 Jui 2011, 19:32   Citer 

Désolé, j'ai utilisé =!= pour parler de la touche 'différend de' qui est dans le menu test, je n'ai malheureusement pas pensé a ce moment là qu'il risquait d'y avoir des gens qui ne remarquerrais pas que =!= en trois carractères n'a pas de sens.

Sandro

PS : si tu as d'autres erreures, commence par vérifier ça.

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
jjmichou
Invité
Posté le : Dim 04 Déc 2011, 13:51   Citer 

j'ai un probleme a la 9eme ligne il me met qu'il ya une erreur mais je comprend pas c'est au niveau de "dim([A]" le premier crochet !
peut tu me dire pourquoi ??
Merci d'avance

  Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Dim 04 Déc 2011, 14:13   Citer 

Cherche un peu, c'est un probleme fréquent... [A] ne s'écrit pas [ + A + ], c'est la matrice A pour écrire ça,rends toi dans le menu matrice, touche au dessus de sin.

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
jjmichou
Invité
Posté le : Dim 04 Déc 2011, 14:20   Citer 

AHHH oui exact !
Merci happy.gif

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Dim 04 Déc 2011, 18:08   Citer 

Bon programme mais ne pourrait-on pas l'alléger en utilisant les listes?

Sangohan38

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 04 Déc 2011, 18:32   Citer 

Je ne sais pas trop, mais en tout cas je pense pas que ce soit beaucoup plus rapide, et surtout, quand j'ai consu le programme, c'était bien plus facile d'utiliser les matrices pour représenter le plan (surtout qu'à l'époque je ne connaissais pas ecore la formule [?](Y;X) <=> l?(X+(Y-1)*largeur avec largeur la largeur de la matrice, et la première ligne numérautée 1 de même que la 1er collone).

Sandro

PS : ça m'étonne que tu ne façe ce commentaire que maintenant, ce programme date de mai

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 06 Déc 2011, 12:47   Citer 

Cela ferai surtout une économie de place donc de rapidité.
Et si je ne répond que maintenant, c'est que j'ai pas du le voir à l'époque (oui, je suis pas comme Persi à consulter TOUS les sujets laugh.gif ).

Sangohan38

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 06 Déc 2011, 20:40   Citer 

ça fait rien. en plus, une matrice ou une liste, ça prend la même place pour le même nombre d'élements. la matrice est même plus légère de 1 octé! Liste=12+p*dim et matrice=11+9*colones*lignes. après, pour les tests, peut-être pas, mais je pense pas que ça change beaucoup, vu que pour l'affichage, ça complexifiera en tout cas, peut-être même pour les tests. après, coté vitesse, c'est peut-être mieux, je ne sais pas trop.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 07 Déc 2011, 11:23   Citer 

A propos de listes et matrices, Sandro, tilo, vous en êtes où dans vos articles ?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 07 Déc 2011, 12:51   Citer 

Sandro et moi avons échangé nos textes concernant les matrices.
Il combinera les deux (lui c'était la manipulation, moi c'était l'aspect mathématique)
Et je ne sais pas pour tilo.

J'espère terminer pendant les vacances un article vaste sur les cycles et quelques algos.

----------------------
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 
 
tilo1996



Autorisation : Membre
Nb de messages : 129
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Mer 07 Déc 2011, 15:10   Citer 

Ouh la Mon tuto pour les listes est commencé mais loin d'etre fini. Jai pas trop le temps. Il ne me reste plus qu'a expliquer le role des fonctions.

----------------------
http://tchat-tout82.webuda.com/
 Adresse email Haut de page Bas de page 
 
blg_flg



Autorisation : Membre
Nb de messages : 661
Inscrit le : Mer 23 Mai 2012, 17:28
Posté le : Mar 12 Jui 2012, 21:55   Citer 

Je ne sais pas trop si ça se fait de remonter un vieux sujet pour si peu, mais j'ai découvert les chaînes il y a quelques mois et je voulais vous faire partager mes améliorations qui permettent, avec la vérif de victoire, d'entrer le nom des joueurs puis d'afficher celui du vainqueur, au lieu de "rond gagne" ou "croix gagne". J'espère que ça va être utile, au moins aux débutants.



Code
:Menu("VERIF DE VICT","ACTIVE",1,"DESACTIVE",2
:Lbl 1
:Input"RONDS:",Chaîne0                           ///        AJOUTS
:Input"CROIX:",Chaîne9                           ///        AJOUTS
:1 -> S
:Goto 3
:Lbl 2
:0 -> S
:Lbl 3
:ClrHome
:{8,7 -> dim([A]
:Fill(1,[A]
:For(E,1,7
:5 -> [A](8,E
:5 -> [A](1,E
:Output(2,2E,E
:End
:For(E,3,8
:For(F,1,15,2
:Output(E,F,"!
:End
:End
:For(A,1,42
:If not(fPart(A/2
:Then
:3 -> B
:Else
:2 -> B
:End
:Repeat sum(K={92,93,94,82,83,84,72
:getKey -> K
:End
:If K=92
:1 -> G
:If K=93
:2 -> G
:If K=94
:3 -> G
:If K=82
:4 -> G
:If K=83
:5 -> G
:If K=84
:6 -> G
:If K=72
:7 -> G
:If 1=!=[A](7,G
:Then
:EffVar KEffVar GA-1 -> A
:Else
:For(I,1,6
:If 1=[A](8-I,G) and 1=!=[A](7-I,G
:Then
:B -> [A](8-I,G
:If B=2
:Output(I+2,2G,"O
:If B=3
:Output(I+2,2G,"X
:End
:End
:End
:If S
:Then
:For(E,1,4
:For(F,2,7
:[A](F,E)[A](F,E+1)[A](F,E+2)[A](F,E+3 -> W
:If W=16
:Goto W
:If W=81
:Goto W
:End
:End
:For(E,1,7
:For(F,2,4
:[A](F,E)[A](F+1,E)[A](F+2,E)[A](F+3,E -> W
:If W=16
:Goto W
:If W=81
:Goto W
:End
:End
:For(E,5,7
:For(F,1,4
:[A](E,F)[A](E-1,F+1)[A](E-2,F+2)[A](E-3,F+3 -> W
:If W=16 or W=81
:Goto W
:End
:End
:For(E,2,4
:For(F,1,4
:[A](E,F)[A](E+1,F+1)[A](E+2,F+2)[A](E+3,F+3 -> W
:If W=16
:Goto W
:If W=81
:Goto W
:End
:End
:End
:End
:Lbl W
:If S
:Then
:Output(2,1,"             
:If W=81
:Then
:Output(1,11,"GAGNE                                     ///         MODIFS
:Output(1,1,Chaîne9                                     ///         AJOUTS
:Pause
:Else
:If W=16
:Then
:Output(1,11,"GAGNE                                    ///         MODIFS
:Output(1,1,Chaîne0                                    ///         AJOUTS
:Pause
:Else
:Disp "MATCH NUL
:Pause




PS : je vous épargne mes ajouts perso, du style "BY LE GREC"... Désolé Sandro. happy.gif

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 13 Jui 2012, 7:24   Citer 

Pourquoi "désolé"?
Si comme c'est le cas, tu trouve une idée pour améliorer un de mes programmes, il faut jamais hésiter : c'est bien pour qu'on les commente/améliore et utilise que je les poste ici.

Et puis sauf erreur de ma part, et sauf mention contraire, il me semble que tous les programmes postés ici sont libre de droits.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Poster un nouveau sujet Poster une réponse Page: 1,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink