π
<-
Chat plein-écran
[^]

[jeu] morpion ti-83+

Re: [jeu] morpion ti-83+

Message non lude Bisam » 21 Mar 2015, 12:14

Mingerton : une liste {1,1,2} a un produit non nul et donc déclenche la victoire ?
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.5%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [jeu] morpion ti-83+

Message non lude Mingerton » 21 Mar 2015, 12:17

En effet... les deux tests sur les produits égaux à 1 et à 8 sont parfaits par contre. De même, la variance (eh oui !) marche pas mal du tout, bien que ça soit un peu plus lourd.

Donc on aurait plutôt :
Code: Tout sélectionner
If max(prod(L1)={1,8
//écran de victoire

En effet j'avais oublié. Cependant, au final c'est le produit qui demeure le plus optimisé ;)
Dernière édition par Mingerton le 21 Mar 2015, 15:17, édité 1 fois.
Avatar de l’utilisateur
Mingerton
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 69.6%
 
Messages: 655
Images: 2
Inscription: 13 Mai 2014, 19:36
Localisation: À l'infini
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Américaine

Re: [jeu] morpion ti-83+

Message non lude Bisam » 21 Mar 2015, 13:36

Je ne vois pas en quoi c'est mieux que de faire une somme...
Avec des valeurs -1 ou 1 pour les joueurs, on peut faire :
Code: Tout sélectionner
If abs(sum(L1))=3
//victoire
ce qui non seulement diminue le nombre de calculs mais en plus les rend plus simples !
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.5%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [jeu] morpion ti-83+

Message non lude Mingerton » 21 Mar 2015, 13:54

Parce que dans les initialisations on gagne de la place, ainsi que lorsque l'on place les valeurs dans la matrice. En effet, pour initialiser un matrice à 0 :
Code: Tout sélectionner
0identity(3->[A]

Pour les valeurs à entrer dans la matrice :
Code: Tout sélectionner
J-(J=2)+(J=1->J
J->//matrice


Ce n'est que du gain d'octets, les fonctionnalités sont exactement les mêmes, mais au final c'est plus léger. Je ne met pas en doute la valeur de l'utilisation de la somme, je signale simplement une optimisation de quelques dizaines d'octets.
Avatar de l’utilisateur
Mingerton
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 69.6%
 
Messages: 655
Images: 2
Inscription: 13 Mai 2014, 19:36
Localisation: À l'infini
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Américaine

Re: [jeu] morpion ti-83+

Message non lude Bisam » 21 Mar 2015, 14:15

Pour l'initialisation, ça ne change rien.
Et pour ta deuxième partie, je n'ai pas bien compris... c'est pour changer de joueur et passer de 1 à 2 ou de 2 à 1 ?
Dans ce cas, il est bien plus simple de faire 3-J->J.
Mais avec un numéro de joueur qui vaut -1 ou 1, il suffit de faire -J->J, ce qui là encore économise un octet.

Bref, on n'est pas là pour discuter optimisation, mais je trouve un peu limite de dire "la meilleure solution est..." quand, en fait, rien n'est moins certain.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.5%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [jeu] morpion ti-83+

Message non lude Mingerton » 21 Mar 2015, 15:14

Je me base pour mes réponses sur un ancien morpion que j'ai programmé. Il se trouve qu'après plusieurs essais, nous nous sommes mis d'accord avec Linkakro sur le fait que la meilleur optimisation était celle du produit, c'est pourquoi je dis que c'est la meilleure.

Voilà le sujet : http://www.tout82.org/t232-probleme-calcul-avec-listes

Je ne me souvenais pas de tout quand j'ai posté plus haut, c'est pourquoi les erreurs d'optimisation font penser que ce n'est pas plus léger.

Enfin, bref, je digresse...

HS : Bisam, j'ai une question : Comment fais tu pour inclure des petits morceaux de texte avec une syntaxe code dans tes messages ? Je ne trouve pas.. merci d'avance ! :)
Avatar de l’utilisateur
Mingerton
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 69.6%
 
Messages: 655
Images: 2
Inscription: 13 Mai 2014, 19:36
Localisation: À l'infini
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Américaine

Re: [jeu] morpion ti-83+

Message non lude Hayleia » 21 Mar 2015, 16:17

Mingerton a écrit:HS : Bisam, j'ai une question : Comment fais tu pour inclure des petits morceaux de texte avec une syntaxe code dans tes messages ? Je ne trouve pas.. merci d'avance ! :)

Utilise la balise [icode] ;)
Et en règle générale, lorsque tu veux savoir comment quelqu'un a fait quelque chose dans un de ses posts, utilise le bouton "quote" et regarde ce qui a été tapé ;)

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [jeu] morpion ti-83+

Message non lude Mingerton » 21 Mar 2015, 17:27

Disp "MERCI HAYLEIA ! :P
Avatar de l’utilisateur
Mingerton
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 69.6%
 
Messages: 655
Images: 2
Inscription: 13 Mai 2014, 19:36
Localisation: À l'infini
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Américaine

Re: [jeu] morpion ti-83+

Message non lude grosged » 24 Mar 2015, 09:52

Autre idée d'algorithme :

En ayant pour les coups du joueur des abscisses X entre 1 et 3 , des ordonnées Y entre 4 et 6
et pour les coups de la TI des abscisses X entre 7 et 9 , des ordonnées Y entre 10 et 12,
à chaque coup joué, on ajoute dans une liste L1 les valeurs X et Y correspondantes.
Puis, pour savoir si l'un ou l'autre vient de gagner (horizontalement ou verticalement), il suffit de vérifier si la liste L1 comporte au moins 3 fois une même valeur !

Code: Tout sélectionner
sum(seq(sum(L1=X)=3,X,1,12
nous donnera combien de "triplets" figurent dans L1


Quant aux diagonales, je suis sur une piste:
Toujours avec la manière "spéciale" de gérer les X,Y
si Abs(X-Y) est impaire (ce qui veut dire que X,Y est positionné soit au centre, soit sur l'un des 4 coins) alors on incrémente un compteur de cette valeur.
Et si ce compteur arrive à 9,10,12,14 ou 16 , ça veut dire qu'une diagonale est présente !
Bien sur, il faudra attribuer un compteur pour le joueur, un autre pour la TI.

EDIT: Aïe, les diagonales, c'est pas encore au point : on peut avoir aussi un total=9 quand 3 coins seulement sont joués :(
(Je repars sur une autre piste...)
Dernière édition par grosged le 24 Mar 2015, 10:58, édité 2 fois.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: [jeu] morpion ti-83+

Message non lude grosged » 24 Mar 2015, 17:40

Après réfléxion, il y a bien plus simple pour tester les combinaisons horizontales et verticales :
En utilisant une matrice [A] avec les cases d'origine à 0, puis petit-à-petit égales à 1 ou -1 (selon les pions de la TI ou du joueur)
Il nous suffit de faire:

Code: Tout sélectionner
Matr►list(cumSum([A],3,L1
Matr►list(cumSum([A]┬,3,L2
If 3=max(abs(augment(L1,L2
Disp"GAGNE!

Par contre, je n'arrive pas (encore?) à trouver de solution "élégante" quant aux tests des diagonales...
Quelqu'un a une idée ? :#roll#:
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 10 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1041 utilisateurs:
>1020 invités
>16 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)