Poster un nouveau sujet Poster une réponse
COOKIE CLICKER
Auteur Message
Thunderbolt



Autorisation : Membre
Nb de messages : 7
Inscrit le : Mar 04 Nov 2014, 19:04
Posté le : Jeu 06 Nov 2014, 15:40   Citer 

Salut a tous,
J'avais pensé coder un cookie clicker, mais je ne suis pas bien sur de comment gérer mes upgrades, je pensais faire un truc du genre

Code

(l1*0.1)+(l2*1)+... ->l9   //ici les listes représentent le nombre d'upgrades que l'on a avec la production de cookie dans une boucle, et l9 le nombe total de cookies
K->Codetouche
If K=1:1+l1->l1 //avec le même principe pour les autres upgrades, seulement je ne sais pas si on peut utiliser les listes comme des variables
l9->C  //du au fait que je ne suis pas sur de l'utilisation des variables
Texte(1,1,"COOKIES
Texte(1,33,C  //oui, je fait mon CC sur écran graphique



tout ca dans une boucle repeat k=45.
Bref, je suis un débutant et j'espère que je n'aurais pas dit trop de bourdes, mais j'espère grâce a vos réponses pouvoir finir ce cc ^^
Merci d'avance !

----------------------
Anarchy mother f*cker !
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 06 Nov 2014, 21:03   Citer 

On risque de confondre la lettre L minuscule avec le chiffre 1. Utilise un commentaire ou une syntaxe différente pour éviter la confusion dans les forums. Par exemple "l_" et expliquer une fois que cela représente le symbole liste de la calculatrice.

Une ti82stats dispose de 6 listes de base prédéfinies et des listes au nom personnalisé peuvent être définies.
Tu sembles confondre le nom des listes avec les index des termes.
Pour une liste LA, tu peux accéder au terme C avec LA(C).
(L étant le caractère liste de la calculatrice)

1+l1->l1
Oui tu peux affecter une liste avec une autre liste. L'arithmétique est supportée.
Mais tu voulais certainement écrire 1+LA(1)->LA(1) pour manipuler le terme 1 d'une liste LA.

En revanche je ne sais pas ce que tu veux faire de "l9->C".
Tu ne peux pas stocker une liste dans une variable numérique.
La calculatrice ti82stats suppose qu'il s'agit d'un raccourcis pour "l9->lC" et donc une liste lC est créée. Une ti82 plantera simplement.
Mais tu voulais certainement écrire LA(9)->LA(C) pour manipuler le terme 1 d'une liste LA.

Les touches du clavier d'une calculatrice ti82stats ne sont pas numérotées de 1 à 50. 11 à 15, 21 à 26, 31 à 34, puis régulièrement par lignes de 5 jusqu'en bas, excepté ON.

J'écris l'exemple suivant avec les listes prédéfinies. Saisie au clavier 2nde+1 pour L1 et ainsi de suite.
Une liste représente les productions unitaires des sources, une autre liste contient le nombre de chaque source, et une liste la base du coût de création de source.
La fonction somme()=sum() permet de calculer la production facilement.
Ce serait intéressant de n'affecter la variable de production que lorsqu'elle change.

Code
{0.1,1,10->L2 // production de chaque type de source, ici trois
dim(L2->dim(L1
 // préparation de la dimension de L1, la crée si elle n'existait pas et la conserve si elle existait.
 //  L1 contiendra le nombre de chacune des sources
10L2->L3 // définition des coûts, le décuple me suffit pour cet exemple

Repeat K=45
somme(L1L2->D // production totale de chaque itération (somme des produits)
codeTouche->K
If K=11 et C>=L3(1  // la touche 11 est pressée et on a assez de cookies
Then
1+L1(1->L1(1
C-L3(1->C    // on achete une source
End
If K=12 et C>=L3(2
Then
1+L1(2->L1(2
C-L3(2->C
End
...
C+D->C    // ajout des cookies produits au stock
Texte(0,0,"COOKIES
Texte(0,33,C
End


Si tu déterminais un code différent aux touches via une opération telle que la suivante, tu pourrais ensuite gérer la création de sources avec une seule alternative. Et pour supporter le cas sans touche pressée, le plus simple est une condition. Voici une autre gestion des codes de touches.
Code
codeTouche->K
If K=26
35->K
K.1
5ent(Rép-1)+10partDéc(Rép)->K  // 5*(dizaine-1)+unité
If K   // K non-nul
Then
If C>=L3(K
Then
1+L1(K->L1(K
C-L3(K->C
End
End

Saches que la limite de la calculatrice en nombre de cookies est environ 10^14 fois la production. Si la production est trop faible devant le stock, les incréments n'auront plus d'effet. (ajouter 1 à 10^15 ne marche pas, mais augmenter de quelques décades, ou bien avec un arrondi de 5 à 10, fonctionne.)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Thunderbolt



Autorisation : Membre
Nb de messages : 7
Inscrit le : Mar 04 Nov 2014, 19:04
Posté le : Ven 07 Nov 2014, 12:21   Citer 

Salut, déja merci pour ta réponse même si je n ai pas tout compris, j'ai relu une fiche sur l'utilisation des listes et j'ai trouvé la solution en n'utilisant qu'une ou deux listes.

Citer
En revanche je ne sais pas ce que tu veux faire de "l9->C".


C'était pour ne pas avoir a utiliser la liste en tant que variable et ainsi avoir une sauvegarde
Mais apres relecture de mes fiches de prog, je me sens un peu con minied.gif
Enfin le programme est en cours de rédaction, le temps de faire des betatest sur l'ergo et je le paste la semaine prochaine selon mes disponibilités.
Bref, merci pour tes conseils
P.S. Serait il possible de déplacer ce message dans la section dédiée à l'aide ? Je posterait mon programme sous le même nom

----------------------
Anarchy mother f*cker !
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 08 Nov 2014, 20:44   Citer 

J'ai déplacé le sujet comme tu l'as suggéré.

Mon exemple est déjà très efficace, tu peux simplement y ajouter des choses.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Thunderbolt



Autorisation : Membre
Nb de messages : 7
Inscrit le : Mar 04 Nov 2014, 19:04
Posté le : Jeu 13 Nov 2014, 13:14   Citer 


Citer : linkakro

Si tu déterminais un code différent aux touches via une opération telle que la suivante, tu pourrais ensuite gérer la création de sources avec une seule alternative. Et pour supporter le cas sans touche pressée, le plus simple est une condition. Voici une autre gestion des codes de touches.
Code
codeTouche->K
If K=26
35->K
K.1
5ent(Rép-1)+10partDéc(Rép)->K  // 5*(dizaine-1)+unité
If K   // K non-nul
Then
If C>=L3(K
Then
1+L1(K->L1(K
C-L3(K->C
End
End



J'ai fini de modifier le programme, mais je n'ai pas bien compris ce passage là par contre moodforlove.gif

----------------------
Anarchy mother f*cker !
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 13 Nov 2014, 21:19   Citer 

Je signale à tout le monde l'existence de la première version publiée.
http://tout82.free.fr/forum/sujet.php?sujet=4142
---

Ce passage permet d'avoir toutes les données dans une liste et d'associer à chaque touche du clavier une position dans les listes. Le calcul permet de remplacer les codes des touche par les positions et l'unique alternative en fonction de la touche remplace toutes les alternatives de ta version précédente.

Le calcul réalisé sur K dans cet exemple remplace 11 à 15 par 1 à 5, 21 à 25 par 6 à 10, 31 à 34 par 11 à 14, et ainsi de suite. La touche droite 26 est une exception, j'ai choisi de la traiter comme une hypothétique touche 35. La touche ON n'a pas de code.

Pour utiliser d'autres touches, il faudra utiliser un autre calcul ou algorithme pour adapter le code K des touches.

Je n'ai pas prévu que l'utilisateur presse n'importe quelle touche. C'est un défaut, car ton programme publié ne réagit pas aux touches inutiles.
Pour gérer cela je remplacerai la condition de pression de touche, en retenant uniquement les premières touches du clavier.

Ci-après je substitue le programme complet et ajoute encore quelques commentaires.
De plus je copie les données de ta première version publiée.
Par ailleurs j'optimise ton affichage des possessions en utilisant une boucle et un unique affichage plutôt que de lire chaque terme avec une ligne chacun.



Code
Menu("","CONTINUE",1,"RESET",2,"Q",3
Lbl 3
Return
Lbl 2
EffListe L1 // je préfère EffListe plutôt que EffVar à cause du menu stats/edit
0->C
Lbl 1

{15,100,500,3000,10000,40000,200000,1666666,123456789}->L2
dim(L2->dim(L1
 //  L1 contiendra le nombre de chacune des sources
:{1,2,4,10,40,100,400,6666,98765}->L3 // dépenses

// des affichages ici

Repeat K=45
somme(L1L2->D // production
codeTouche->K

If K=26
35->K   // exception de la touche 26 droite
K.1  // K*0.1=dixième stocké dans Rép
5ent(Rép-1)+10partDéc(Rép)->K  // 5*(dizaine-1)+unité

If K>0 et K<10  // codes 1 à 9, donc touches 11 à 24
Then
If C>=L3(K  // condition de prix
Then
1+L1(K->L1(K  // upgrade
C-L3(K->C  // dépense
End
End

C+D->C    // production

Texte(7,1,C
For(W,1,9   //W6-5={1,7,13,...,49}
Texte(W6-5,86,L1(W
End

End

Tu peux déplacer le calcul de D hors de la boucle et placer le substitut suivant juste après la dépense C-L3(K->C.
D+L2(K->D

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink