Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Petti Morpion tout simple =)
lolio67 le 03/02/2010 à 16:15
Salut
Voila un petit programme tout frais très simple et léger(527 octets)
Il m'est venu a l'esprit en cour et je l'ai fait direct

Donc je n'ai pas encore réfléchit au moyens de le raccourcir et de l'améliorer
C'est un morpion en 6*4 cases ,le joueur 1 a les rond et le deuxième les croix
C'est chacun sont tour et quand la grille est pleine le jeux s'arrete et recommence si on apuie sur entrer on deplace le curseur avec les fleces et on met le rond(ou croix )avec entrer
Je pense l'améliorer en mettant la possibiliter de jouer contre la calto elle meme et en faisant en sorte que la calto sache quand il y en a 4 aligné (verticale ,horizontale ,diagonale ) ce qui n'est pas le cas pour l'instant
Voila :
PrgmMORPION
Code
Lbl 1
Clrdraw
Clrhome
5->A
1->B
0->D
Line(0,62,94,62)
Line(0,0,94,0)
Line(0,48,94,48)
Line(0,32,94,32)
Line(0,16,94,16)
Line(0,0,0,64)
Line(16,0,16,64)
Line(32,0,32,64)
Line(48,0,48,64)
Line(64,0,64,64)
Line(80,0,80,64)
Line(94,0,94,64)
Text(A,B,">"
Lbl 3
1->C
Lbl 2
Repeat K"pas egal"0
Getkey->K
End
If D>24
Then
Pause :Goto 1
If K=34
Then
Text(A,B,"7 espaces"
A+16->A
If A>62
A-16->A
Text(A,B,">"
Goto 2
Else
If K=26
Then
Text(A,B,"7 espaces"
B+16->B
If B>94
B-16->B
Text(A,B,">"
Goto 2
Else
If K=25
Then
Text(A,B,"7 espaces"
A-16->A
If A<0
A+16->A
Text(A,B,">"
Goto 2
Else
If K=24
Then
Text(A,B,"7 espaces"
B-16->B
If B<0
B+16->B
Text(A,B,">"
Goto 2
Else
If K=105 and C=1
Then
C+1->C
D+1->D
Text(A,B+7,"()" <------------------------ () c\\\'est ( ) sans espaces entre
Goto 1
Else
If K=105 and C=2
Then
C+1->C
D+1->D
Text(A,B+7,"X"
Goto 3
Else
Goto 2
By lolio67

Persalteas le 04/02/2010 à 20:50
Bonne idée, moi j'en ai fait un moins bien:
les touches du pavé numérique servaient chacune pour une case.
Un curseur c'est beaucoup plus compliqué!linkakro le 04/02/2010 à 23:20
J'en ai déjà fait un à curseur, mais en 3*3 et avec des tests de victoire et score (superflu mais sympa)
Je suppose que les else innutiles pour le sens ralentissent tout. Et puis ça peut être encore plus court ou propre.
Code
Lbl 1
Clrdraw
Clrhome
5->A
1->B
0->D
Line(0,62,94,62)
Line(0,0,94,0)
Line(0,48,94,48)
Line(0,32,94,32)
Line(0,16,94,16)
Line(0,0,0,64)
Line(16,0,16,64)
Line(32,0,32,64)
Line(48,0,48,64)
Line(64,0,64,64)
Line(80,0,80,64)
Line(94,0,94,64)
Text(A,B,">"
1->C
Lbl 2
Repeat K"pas egal"0
Getkey->K
End
If D>24
Then
Pause :Goto 1
End
If K=34
Then
Text(A,B,"7 espaces"
If A<53
A+16->A
Text(A,B,">"
Goto 2
End
If K=26
Then
Text(A,B,"7 espaces"
If B<81
B+16->B
Text(A,B,">"
Goto 2
End
If K=25
Then
Text(A,B,"7 espaces"
If A>5
A-16->A
Text(A,B,">"
Goto 2
End
If K=24
Then
Text(A,B,"7 espaces"
If B>1
B-16->B
Text(A,B,">"
Goto 2
End
If K=105
Then
C+1->C
D+1->D
If C=1
Then
Text(A,B+7,"()"
Else
Text(A,B+7,"X"
End
3-C->C
End
Goto 2
Memez le 13/09/2013 à 17:47
Comment tu fais pour mettre les ronds et croix ?
Je n'y arrive pas.
Je déplace mon curseur avec les fléches et quand j’appuie sur ENTRER ça ne fais rienlinkakro le 13/09/2013 à 20:32
Pourtant c'est bien la touche entrer.
Je regarde avec un oeil neuf ce que j'ai écrit en modifiant le code original.
Deux verdicts :
-le programme original n'est pas judicieusement codé, car les Goto sont dans des alternatives. Mais celui qui l'a posté doit avoir réussi à le faire fonctionner.
-mon programme est probablement faux car j'ai fermé des boucles
Recopie le code original, tu auras le coeur net. Toutefois il n'est pas élégant et il y a mieux.Antoniobourdinio le 14/09/2013 à 21:51
J'ai recopié ton code, "Links", et ça marche, mais il y a un bémol : en faisant entrer, je n'entre que des "X".
Et aussi : Est-ce normal qu'il soit impossible de remplir toutes les cases du "tableau" ? Ne serait-il pas mieux de créer un "menu(" avec comme choix le nombre de cases et les instructions ?linkakro le 14/09/2013 à 23:41
Ce programme a été initialement créé par quelqu'un d'autre, il ne s'en occupe certainement plus, beaucoup mieux existe, les morpions sont nombreux, j'ai déjà créé le mien. Je suppose que je n'ai jamais testé celui-ci.
>>> Je n'ai donc aucune passion à modifier plus ce programme.
Cependant parler de taille variable apporte un nouveau concept.
J'envisage donc dans un autre morpion de modifier les tests de victoire et fin en changeant les boucles qui scrutent.
Et puis j'ai toujours hésité entre utiliser une matrice ou utiliser le graphique.Antoniobourdinio le 15/09/2013 à 07:32
linkakro a écrit :
Ce programme a été initialement créé par quelqu'un d'autre, il ne s'en occupe certainement plus, beaucoup mieux existe, les morpions sont nombreux, j'ai déjà créé le mien. Je suppose que je n'ai jamais testé celui-ci.
>>> Je n'ai donc aucune passion à modifier plus ce programme.
Cependant parler de taille variable apporte un nouveau concept.
J'envisage donc dans un autre morpion de modifier les tests de victoire et fin en changeant les boucles qui scrutent.
Et puis j'ai toujours hésité entre utiliser une matrice ou utiliser le graphique.
Oui, de nombreux morpions existent, mais ils sont trop longs et fastidieux pour l'être paresseux que je suis. Je te demande pas de revoir l'integralité du programme, juste de fixer ce bug à la fin, le fait qu'on ne puisse inserer que des "X" (enfin sur ma calculatrice).
L'idée de taille variable m'est venue en codant un programme de démineur où on pouvait choisir la taille et le nombre de mines.
Pour ma part, j'ai toujours préféré les matrices au graph. Antoniobourdinio le 15/09/2013 à 15:43
A quel propos ? linkakro le 15/09/2013 à 16:01
Je t'ai indiqué des morpions courts et fonctionnels.
Les idées sont une possible amélioration de mon morpion que je publierai plus tard si je me lance.
Utiliser 0identity(3->[A] ou encore des listes pour utiliser les touches chiffres sans tests tout en conservant mes tests de victoire et nul.
J'arrête de polluer le sujet ici présent.rpgcreator le 16/09/2013 à 13:31
ca me parait impossible de faire l'integralite des positions possibles de la croix, car si vous connaissez bien le jeu

, il y a 9 possibilites differentes alors que le menu supporte seulement 7 choix differents!!!
NOTE: sur ti-85 et 86, c'est possible, car on peut mettre jusqu'a 18 possibilites differentes, rendues accessibles par la touche "more...". Sur ti-82stats, ca n'existe pas, ce qui est dommage
linkakro le 16/09/2013 à 21:46
Qu'est-ce qui te dit qu'on a besoin d'un menu Basic ?
Les menus conçus soi-même existent. Et on peut utiliser un curseur. Et il y a 49 touches utilisables sur 82stat.
(Et le manuel de la 85 explique que l'execution de menu par un programme n'a que 5 possibilités, autrement dit la touche more n'est pas utilisée par les menus créés par la commande Basic. J'ai testé dans vti.)
rpgcreator le 18/09/2013 à 17:01
@linkakro: je ne suis pas d'accord, car avec andie graph, cela marche aussi avec les menus commande basic, je l'ai testé avec une version allégée de skyrim deluxe, alors ça marchait très bien, puisque comme j'ai 6 attaques, il a fallu que j'en rende une disponible avec more... Donc ça marche. Par contre oui, c'est pas 6 choix par page, mais 5, donc 15 fonctions.
Mais on est sur un forum sur ti-82stats, donc on omettra cette parenthèse.
Sur, moi, je suis un spécialiste des menus faits soi-même. Je peux vous en proposer un, si vous voulez. Évidement qu'on a pas besoin de faire des menus indigestes

, la meilleure solution est de faire un code touche avec le numpad, c'est beaucoupq plus facile, pratique, et compréhensible pour quelqu'un qui n'est pas forcément un geek de la calculatrice comme nous

!
kaboum le 24/09/2013 à 21:08
j'ai un probleme a la ligne :Ligne(0,62,94,62)
ca me marque Err: DIM INVALIDE
vous pouvez m'aidez svp?linkakro le 25/09/2013 à 00:13
Je ne comprend vraiment pas comment tu peux avoir une erreur diminvalide sur une fonction de dessin Ligne. La série de touche doit être
[2nde][prgm][2][0][,][6][2][,][9][4][,][6][2]rpgcreator le 25/09/2013 à 09:38
quelque chose a ete oublié dans le code (original et celui modifie par linkakro).
Il s'agit de cette partie de code qu'il faut rajouter pour modifier les dimensions de l'ecran graphique:
Code
:0->Xmin
:94->Xmax
:0->Ymin
:62->Ymax
Il faut IMPERATIVEMENT mettre ce code dans le programme, car ca va faire un effet bizarre, en zstandard, tu vas pas voir la moitie de ce qui devrait etre affiche.
Mais ceci n'est pas le probleme, car cela ne fait pas d'erreur dimension invalide!!!!!!
Mais comme il y a des bugs sur le ti basic MÊME quand on tape correctement la fonction, ya pas d'autrez solution que d'effacer la ligne avec annul (obligatoire!!!!!) et de retaper dans l'integralite la ligne.
J'ai deja eu des problemes comme ca, j'ai retape la fonction exactement comme elle etait ecrite, et ca a marche! Ca peut etre la solution!
m@thieu41 le 25/09/2013 à 13:58
Vérifie que les graph sont sur off ([2nde]+[f(

]), les erreurs dim invalides viennent souvent de là quand on travaille sur l'écran graphique.
Citation
Mais comme il y a des bugs sur le ti basic MÊME quand on tape correctement la fonction, ya pas d'autrez solution que d'effacer la ligne avec annul (obligatoire!!!!!) et de retaper dans l'integralite la ligne.
J'ai deja eu des problemes comme ca, j'ai retape la fonction exactement comme elle etait ecrite, et ca a marche! Ca peut etre la solution!
Hum ça me parait surprenant tu as du modifier quelque chose d'autre entre tes 2 essais...
linkakro le 25/09/2013 à 18:58
Je pense que rpgcreator a modifié quelque chose s'en s'en apercevoir. Y compris des espaces invisibles. Ce qui a causé son impression de bug de TI-Basic.
La remarque sur la fenêtre sont pertinentes. Moi j'ai touché aux alternatives, même pas testé.
"m@thieu41" a écrit :
Vérifie que les graph sont sur off ([2nde]+[Y=]), les erreurs dim invalides viennent souvent de là quand on travaille sur l'écran graphique.
Excellente idée. J'oublie ça tout le temps.
Avec une 82stat/82statfrfr, on peut simplement désactiver les graphs_stats/stat_plot avec les icônes en haut du menu Y.
kaboum le 25/09/2013 à 20:44
J'ai mis GraphOff et ca marche parfaitement bien
Merci!

kaboum le 25/09/2013 à 20:54
y'a jute presque rien qui apparait...
y'a une ligne en haut de l'écran et a droite en haut y'a (superieur a)
sinon j'ai juste le point que je peut diriger mais ca ressemble pas a un morpion...
---------------------------------------
^
ca ressemble a ca

linkakro le 25/09/2013 à 21:40
rpgcreator a montré qu'il manque une configuration de la fenêtre.
Et on peut faire encore plus simple que lui. EDIT: Oubliez ce code là, quelque chose cloche
Code
0->Xmin
0->Ymin
ZInteger
//et éventuellement AxesOff
m@thieu41 le 25/09/2013 à 22:04
Code
0->Xmin
0->Ymin
ZInteger
Ne marche pas toujours chez moi:
Code
4->Xmax//Les valeurs qu'il y avait avant l'execution du prgm
6->Ymax
0->Xmin
0->Ymin
ZInteger //ZEntier sur une fr (?)
Ca me donne:
Xmax = -45
Ymax = 49
Xmin = 10
Ymin = -28
linkakro le 25/09/2013 à 23:06
Je viens de tester sur 82,82stat et 84plus, j'ai actuellement le même problème... Je ne comprend pas car j'ai testé avant de poster. Et le manuel indique uniquement l'affectation des échelles et des Pas par ZInteger=ZEntier. Et le chapitre des précisions calculatoires informe que l'affectation des Pas ne modifie que les Xmax et Ymax. Tout est incohérent.rpgcreator le 26/09/2013 à 13:55
voila, donc mets ma partie de code, c'est plus sur...

grmycaire le 05/11/2013 à 18:58
À La place de "ligne" utilise "verticale" ou "horizontale"grmycaire le 05/11/2013 à 18:59
À La place de "ligne" utilise "verticale" ou "horizontale"rpgcreator le 08/11/2013 à 12:41
c'est pas con, vu que ca economise pas mal en arguments

y a des trucs a optimiser, c'est sur!!
Bounter le 24/11/2013 à 20:15
Salut a tous j'ai fait tout ce que vous avez marqué sur le code source mais une erreur me parvient lors du Repeat K"pas egal"0 et je me demande alors ce qu'il faut mettre pour que cela marche merci de votre comprehension. =)m@thieu41 le 24/11/2013 à 20:41
Bonjour
Quel type d'erreur?
As tu bien saisis différend de? (2nde+math+2)linkakro le 24/11/2013 à 22:28
Dans le cas présent "Repeat K" suffit bien. Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.