Page 3 sur 9

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 15:38
de grosged
Je vois où ça plante :
Code: Tout sélectionner
{2,2,2,4,4,4,6,6,6->L5


C'est plutôt

Code: Tout sélectionner
{2,4,6,2,4,6,2,4,6->L5


Car X sera bien égal à 2 si la touche=72 , à 4 si la touche=73 etc...
ne t'embêtes pas à refaire
Code: Tout sélectionner
{72,73,74,82,83,84,92,93,94}->L4

réutilise L1


Tu peux aussi optimiser un poil en faisant
Code: Tout sélectionner
max(L2(K=L1→Y

ou directement
Code: Tout sélectionner
max({2,2,2,4,4,4,6,6,6}(K=L1→Y

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 15:42
de Angorar
ok je vais essayer merci
et juste au passage la syntaxe
Code: Tout sélectionner
if k=72:2->y and 2->x
est fausse? ma calculette m'affiche un message d'erreur sur le and

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 15:55
de Angorar
Ok mon erreur était bien de la
du coup j'ai remplacer

Code: Tout sélectionner
{72,73,74,82,83,84,92,93,94->L1         
{2,2,2,4,4,4,6,6,6->L2
max((K=L1)(L2))->Y
{72,73,74,82,83,84,92,93,94}->L4
{2,4,6,2,5,6,2,5,6->L5
max((K=L4)(L5)->X 



par

Code: Tout sélectionner
{72,73,74,82,83,84,92,93,94->L1   
{2,2,2,4,4,4,6,6,6->L2
max((K=L1)(L2))->Y
{2,4,6,2,5,6,2,5,6->L5
max((K=L4)(L5)->X 



et sa marche NIkel !

Juste si vous avez des idée pour les "collision" (pas deux même pions au même endroit)


Merci encore pour votre aide :D

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 16:00
de Mingerton
Oui mais tu as oublié d'initialiser L4 dans ton 2e code. peut être voulais tu remplacer L4 par L1 non ? ;)

A vrai dire, une belle optimisation serait celle ci non ? :
Code: Tout sélectionner
{72,73,74,82,83,84,92,93,94->L1   
max({2,2,2,4,4,4,6,6,6}(K=Ans->Y
max({2,4,6,2,5,6,2,5,6}(K=Ans->X

Et encore, si tu n'utilises L1 que ici tu peux même remplacer L1 par sa valeur (au détriment d'un tout petit peu de vitesse)

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 16:03
de Angorar
Oui super merci !

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 16:19
de Wistaro
Pas mal!

Comment tu comptes gérer les tests de fin de victoire ?

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 16:44
de grosged
Mingerton a écrit:Oui mais tu as oublié d'initialiser L4 dans ton 2e code. peut être voulais tu remplacer L4 par L1 non ? ;)

A vrai dire, une belle optimisation serait celle ci non ? :
Code: Tout sélectionner
{72,73,74,82,83,84,92,93,94->L1   
max({2,2,2,4,4,4,6,6,6}(K=Ans->Y
max({2,4,6,2,5,6,2,5,6}(K=Ans->X

Et encore, si tu n'utilises L1 que ici tu peux même remplacer L1 par sa valeur (au détriment d'un tout petit peu de vitesse)


Je dirais que c'est "presque" possible, car au moment du 2ème max({... , Ans ne contient plus L1 mais Y

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 17:46
de grosged
Autre façon de faire:

Code: Tout sélectionner
Repeat max(K={72,73,74,82,83,84,92,93,94
getKey→K
End
20fPart(.1K)-2→X                         (corrigé: c'était -2 , pas -6)
int(.2K)-12→Y


en gros, on va trouver X en fonction des unités de getKey (2,3 ou 4)
et Y en fonction des dizaines (7, 8 ou 9

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 17:55
de Angorar
Bonjour,
Avec l'aide de mingerton j'ai découvert les Matrice ! (les bases des bases)
J'ai crée la matrice [a]=[[0,0,0,][0,0,0][0,0,0]]
cette matrice servira a calculer si un Joueur (j1 ou j2) a déjà placer un pion.

et j'ai réfléchi comme sa :
vu que mon terrain fait 7x7 et que les possibilités de jeu sont 2,2 4,4 et 6,6 et que ma matrice [a] ne fait que 3*3 sa reviens a diviser 2,2/2 = 1,1 (en coo)
don j'ai crée 2 variables t et s (il sont juste au dessus de X et y)
et j'ai fait sa dans ma boucle qui affiche les pion

Code: Tout sélectionner
0->t
0->s
Y/2->T   //vu que la matrice est graphiquement  2 X plus petit que mon tableau de jeu
X/2->S    //idem
if J=1
then
1->[a](t,s)
else
2->[a](t,s]
end


je ne sais si c'est la bonne méthode donc dites moi se que vous en penser merci ;-)

Re: [jeu] morpion ti-83+

Message non luPosté: 15 Mar 2015, 18:08
de grosged
Personnellement, je raisonnerais avec une matrice de 3 sur 3
et ce n'est qu'au moment d'afficher que je multiplierais par 2
Alors, mon bout de code précèdent deviendrait:

Code: Tout sélectionner
Repeat max(K={72,73,74,82,83,84,92,93,94
getKey→K
End
10fPart(.1K)-1→X   
int(.1K)-6→Y