J'ai trouvé une façon de faire pour les diagonales:
a chaque coup joué en X,Y , si X+Y est pair , on a affaire à une case de diagonale, on va donc coder cette case (X+Y)^X
ce qui nous donnera
2 - 64
-16 -
4 - 216
puis on va incrémenter de cette valeur un compteur (par exemple L9(1) pour la TI et L9(2) pour le joueur )
et si l'un de ces compteur atteint l'une de ces valeurs : 84,234,86,238,290,298,302
au moins l'une des diagonales est faîte !
[jeu] morpion ti-83+
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [jeu] morpion ti-83+
Est-ce vraiment plus court que de faire 2 sommes de 3 cases, soit 4 additions et 2 tests d'égalité ?
Si tu stockes les valeurs des sommes des diagonales, il n'y a même qu'une seule addition et un seul test à faire (ou 2, si on tape au centre).
Bref, ou bien je n'ai pas compris, ou bien c'est de l'optimisation qui fait faire plus de calculs...
Si tu stockes les valeurs des sommes des diagonales, il n'y a même qu'une seule addition et un seul test à faire (ou 2, si on tape au centre).
Bref, ou bien je n'ai pas compris, ou bien c'est de l'optimisation qui fait faire plus de calculs...
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [jeu] morpion ti-83+
Quand je tente une optimisation, j'arrive parfois à mes fins en adoptant une autre "façon de faire".
Je dis bien "parfois" parce que, comme je l'ai précédemment expliqué à Wistaro, mes recherches ne me mènent pas forcément au succès instantanément, ni à tous les coups.
(mais bon!.. qui ne tente rien n'a rien )
Pour revenir au sujet, j'avoue que je n'avais pas essayé de tout d'abord optimiser ces séries d'addition d'éléments de matrice.
Et en y regardant de plus près, j'avoue qu'au final,ce n'était peut-être pas la peine de changer de méthode...
J'en suis arrivé à cette optimisation:
Mais comme je suis un peu "tête de lard" , j'ai poursuivi mes recherches et optimisé encore un peu ma version, en abandonnant (X+Y)^X au profit d'un X+7Y bien plus léger.
Petit rappel: L6(1) et L6(2) (au départ à 0) sont les compteurs respectifs de chaque joueur qui permettent de déceler au moins une éventuelle diagonale gagnante.
Plus court?..Plus long?..Plus rapide?...Plus lent?... Différent, en tout cas !
Dans la programmation, c'est surtout ça que je trouve fascinant : dans bien des cas, il y a toujours plusieurs façons de faire, de voir les choses.
Et l'optimisation nous le rappelle si bien
Je dis bien "parfois" parce que, comme je l'ai précédemment expliqué à Wistaro, mes recherches ne me mènent pas forcément au succès instantanément, ni à tous les coups.
(mais bon!.. qui ne tente rien n'a rien )
Pour revenir au sujet, j'avoue que je n'avais pas essayé de tout d'abord optimiser ces séries d'addition d'éléments de matrice.
Et en y regardant de plus près, j'avoue qu'au final,ce n'était peut-être pas la peine de changer de méthode...
J'en suis arrivé à cette optimisation:
- Code: Select all
If 3=max(abs([A](2,2)+{[A](1,1)+[A](3,3),[A](3,1)+[A](1,3
Disp"GAGNE!
Mais comme je suis un peu "tête de lard" , j'ai poursuivi mes recherches et optimisé encore un peu ma version, en abandonnant (X+Y)^X au profit d'un X+7Y bien plus léger.
Petit rappel: L6(1) et L6(2) (au départ à 0) sont les compteurs respectifs de chaque joueur qui permettent de déceler au moins une éventuelle diagonale gagnante.
- Code: Select all
X+7Y:L6(T)+Ansnot(fPart(.5Ans→L6(T
If max(Ans={36,44,46,50,52,60
Disp"GAGNE!
Plus court?..Plus long?..Plus rapide?...Plus lent?... Différent, en tout cas !
Dans la programmation, c'est surtout ça que je trouve fascinant : dans bien des cas, il y a toujours plusieurs façons de faire, de voir les choses.
Et l'optimisation nous le rappelle si bien
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [jeu] morpion ti-83+
Il ne faut pas non plus que des optimisations de ce genre ralentissent le programmes juste pour gagner quelques octets, ça serait bête... Et puis, ça nuit à la lisibilité
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14727
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: [jeu] morpion ti-83+
Dans ce cas, ça doit être mon côté "Opti-Défi" qui reprend le dessus....Oops!, Désolé
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [jeu] morpion ti-83+
XD
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.
Liens utiles:
- Guide: meilleurs programmes & tutoriels - toutes calculatrices
- Guide: programmer en langage C sur TI-83 Premium CE/84+CE
- Groupe Facebook d'entraide autour des études post-bac (prépa, université, IUT...)
Découvre mes programmes et mon site!
-
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 3183
- Images: 37
- Joined: 25 Feb 2013, 16:21
- Location: Toulouse
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingénieur en électronique
- YouTube: Wistaro
- Twitter: Wistaro
- GitHub: Wistaro
Who is online
Users browsing this forum: ClaudeBot [spider] and 5 guests