Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Jeux >> Graph 35 à 100 >> Divers >> Morpion graph
Morpion graph
Version : 1.0 Taille : 12460 octets Ajouté le : 2010-11-25 18:20 Modifié le : 2010-12-02 16:25
Auteur et posteur :
AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Planète Casio - Jeu Casio - Morpion graph - adbook - Calculatrices
Nombre de visites sur cette page : 12377
Score au progrank : 44
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
3822 téléchargements | Soumettre un test


Description :

Un Morpion en mode graphique avec à votre disposition quelques "animations" 8) selon si vous gagnez ou perdez.

Vous pouvez jouer au choix contre une ia ou tout simplement en mode deux joueurs.

Je sais l'I.A n'est pas très difficile à battre quand vous savez jouer, bon...
Mais quand vous savez jouer et que vous commencez à jouer, qui peut vous battre???
Pour un peu plus de défi (je dis vraiment un peu) vous pouvez choisir de la laisser commencer à jouer (c'est pour ça que j'ai ajouté cette option d'ailleurs).

Le fichier est assez lourd car je ne programme pas très proprement, veuillez m'en excuser.

Je n'ai qu'un .g1m et un .txt à ma disposition car je ne sais pas comment convertir en .fxi, aussi je vous serai reconnaissant d'en mettre un à disposition.

Le mot de passe est:
"ADBOOK"

Bon Jeu !!!


Commentaires :

Pages: Précédente | 1, 2, 3, 4 | Suivante

AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Posté le 01-12-2010 à 20:59 | #
Je suis désolé Totoyo, j'ai revérifié tout mon code ( et ça fait beaucoup ), c'est bien un "=>". la citation de eyeron est au milieu d'une condition. De plus, je ne donne comme valeur à Mat A que 1 si c'est une croix et 2 si c'est un rond.

@Nitrosax.
Quoi qu'est-ce qu'il y a?
Un peu d'humilté ne fait jamais de mal a personne.
TotoyoHors ligneMembre d'honneurPoints: 16102 Défis: 102 Message
Posté le 01-12-2010 à 22:48 | #
C=72=>Mat A[3,1]=0=>F-Line 5,5,18,18

Là, pour moi, c'est plus cohérent que 72=>Mat A[3,1]
Bref, passons

Sinon, j'ai regardé ton code vite fait, mais il peut être optimisé grandement. Il y a de gros bloc de codes qui se ressemble tous, mais il y a juste un chiffre qui change. Utilise la fonction For qui t'allègera ton code ! Tu peux réduire la taille de ton programme de 50% facilement
AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Posté le 02-12-2010 à 16:04 | #
Merci Totoyo.

J'y penserai
TotoyoHors ligneMembre d'honneurPoints: 16102 Défis: 102 Message
Posté le 02-12-2010 à 17:02 | #
Sympa ton screen, ça doit envie de tester ton morpion !
AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Posté le 02-12-2010 à 17:24 | #
Merci
AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Posté le 02-12-2010 à 17:39 | # | Fichier joint
Sinon, j'ai regardé ton code vite fait, mais il peut être optimisé grandement. Il y a de gros bloc de codes qui se ressemble tous, mais il y a juste un chiffre qui change. Utilise la fonction For qui t'allègera ton code ! Tu peux réduire la taille de ton programme de 50% facilement


En fait j'y ai repensé au calme et je me suis rendu compte que ce n'était pas si simple que ça car contrairement à ce que l'on peut croire, il y a pas mal de choses qui changent. pour moi le seul moyen d'y remédier serait de mettre de If partout mais cela augmenterait encore le poids du prog.
Pourrais tu me dire comment optimiser, par exemple, la série de conditions ci-jointes stp?
Merci d'avance
TotoyoHors ligneMembre d'honneurPoints: 16102 Défis: 102 Message
Posté le 02-12-2010 à 18:35 | #
Sans utiliser les For
C=72=>Mat A[3,1]=0=>F-Line 5,5,18,18
C=72=>Mat A[3,1]=0=>F-Line 5,18,18,5
C=72=>Mat A[3,1]=0=>J-1->J
C=72=>Mat A[3,1]=0×1ãMat A[3,1]Ù

Tu vérifies 4 fois de suite des conditions identiques.
If C=72 And 0=Mat A[3,1
Then F-Line 5,5,18,18
F-Line 5,18,18,5
J-1->J
1->Mat A[3,1
IfEnd

Petite précision : tu n'es pas obligé de fermer les parenthèses et les accolades à la fin d'une ligne, comme c'est le cas pour Mat A[3,1 dans cette exemple.

De même, si on regarde le bloc dans son ensemble (ce qui suit), on voit que tout se répète. Il faut trouver quelques variables, beaucoup de formules sont redondantes.
C=72×Mat A[3,1]=0×F-Line 5,5,18,18Ù
C=72×Mat A[3,1]=0×F-Line 5,18,18,5Ù
C=72×Mat A[3,1]=0×J-1ãJÙ
C=72×Mat A[3,1]=0×1ãMat A[3,1]Ù
C=73×Mat A[2,1]=0×F-Line 5,26,18,39Ù
C=73×Mat A[2,1]=0×F-Line 5,39,18,26Ù
C=73×Mat A[2,1]=0×J-1ãJÙ
C=73×Mat A[2,1]=0×1ãMat A[2,1]Ù
...

On va donc optimiser ce gros tas de bloc tout moche. Pas besoin de For dans ce cas là :

3(7-Int (.1C))+10Frac (.1C)-1->Z [green]// On convertit le Getkey par une valeur entre 1 et 9, plus facile à manipuler.[/green]
If Z>=1 And Z<=9 [green]// On vérifie que le joueur a appuyé sur une bonne touche[/green]
Then Int ((Z-1)/3->X
Z-3X-1->Y [green]// X et Y faut permettre d'adapter les F-Line à n'importe quelle valeur de ton Getkey (ou de Z)[/green]
If 0=Mat A[Y+1,3-X [green]// On vérifie que la case n'a pas encore été jouée[/green]
Then F-Line 5+21X,5+21Y,18+21X,18+21Y
F-Line 5+21X,18+21Y,18+21X,5+21Y [green]// On trace la croix[/green]
J-1->J
1->Mat A[Y+1,3-X
IfEnd
IfEnd

Normalement, le code marche correctement, je l'ai testé sur ma casio. Après, il ne te reste qu'à l'adapter à ton programme, vu que j'ai employé les variables X,Y et Z par défaut. De même, ce code n'est pas 100% optimisé, il est toujours possible de faire mieux !

Voilà un exemple de simplification. Il devrait faire la même chose que le tien, mais avec une vitesse d'exécution bien plus rapide et moins de mémoire est consommée.
DafpHors ligneMembrePoints: 5141 Défis: 191 Message
Posté le 02-12-2010 à 20:36 | #
J'ai voulu optimiser ton code totoyo:

If 72=C(0=Mat A[3,1
Then 18
F-Line 5,5,Ans,Ans
F-Line 5,Ans,Ans,5
Dsz J
1->Mat A[3,1

Pas besoin de Ifend si c'est en fin de programme, mais ça m'étonnerait

3(7-Int .1C)-1+10Frac .1C->Z
If Z>=1 And Z<=9
Then Int 3^-1(Z-1->X
Z-3X-1->Y
If 0=Mat A[Y+1,3-X
Then 21
F-Line 5+AnsX,5+AnsY,18+AnsX,18+AnsY
F-Line 5+AnsX,18+AnsY,18+AnsX,5+AnsY
Dsz J
1->Mat A[Y+1,3-X

De même pour au dessus.
AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Posté le 02-12-2010 à 21:20 | #

Merci.
Je crois que ton code est un peu chaud pour moi Totoyo.
Je medite la dessus et je vois ce que ça donne demain.

Je bloque surtout sur la premiere ligne:
3(7-Int (.1C))+10Frac (.1C)-1Z

Pas mal de trucs que je pige pas.
SmashmasterHors ligneAncien modérateurPoints: 4561 Défis: 253 Message
Posté le 02-12-2010 à 22:24 | #
Int : Rend la valeur entière. Cette commande enlève simplement tous les chiffres derrière la virgule et n’arrondit pas.
exemple: Int(2.7)= 2
Int (256.4)=256

frac : Donne la valeur décimale d’un nombre. Cette commande garde juste ce qu’il y a après la virgule et met un 0 avant, enlevant le nombre qui s’y trouvait.
exemple: Frac(2.7)= 0.7
Frac (256.4)=0.4


Pages: Précédente | 1, 2, 3, 4 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 216 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd