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.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » LIMachi fait encore des siennes avec les Str
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

LIMachi fait encore des siennes avec les Str

Posté le 26/09/2012 23:11

Quand je pense avoir enfin tout découvert sur ma calto, voila-t-y pas que je découvre un moyen d'allouer "dynamiquement" des listes dans un programme basique acceptant les Str!
En effet, j'ai découvert que en remplissant la liste Ans et en la transvasant dans une liste sans préciser le nombre, mais le nom de la liste, la calculatrice va chercher la liste correspondante (au nom) et si elle ne la trouve pas, va la créer sur la première liste non nommée qu'elle va trouver!
Plus-tôt que de vous ensevelir sous des paroles, passons aux exemples:

(pour tous les exemples, j'utilise ce code)
seq(0,X,0,9,1)
List Ans->List "Test"

(J'utilise la fonction seq() par défaut pour créer des listes)


Cas 1: Toutes les liste sont libres de toute valeur et tout nom:
La liste 1 ce nommera Test, et seras remplie de la case 1 a 10 par des 0.

Cas 2 (Le plus important!!): Les 10 premières listes sont pleines de valeurs, mais n'ont pas de noms:
La liste 1 ce nommera Test, et seras remplie de la case 1 a 10 par des 0. La liste 1 de base a donc été écrasée par la nouvelle liste.

Cas 3 (Le plus intéressant pour la compatibilité inter-programmes): Les 10 premières listes sont pleines de valeurs, et on des noms:
La 11ème liste ce nommera Test et ... (enfin bref).
Le programme aura sauté les 10 premières listes car elles ne sont pas vide de noms et qu'elles ne correspondent pas au nom "Test"

Cas 4: La liste n°4 s'appelle "Test": La calculatrice n'est pas trop conne, si le nom correspond parfaitement (sensible a la case), elle va modifier la liste qui existe déjà plus-tôt que d'en recréer une.


Une autre astuce qu'il faut connaitre car elle est extrêmement pratique avec ce que je viens d’expliquer, c'est qu'une liste peut être appelé soit avec ce code:
List "Test"

soit avec celui-ci:
"Test"->Str 1
List Str 1


Bien sur, ce sont des exemples, a vous d’exploiter ces astuces comme bon vous semble, mais sachez une chose:
List "Test"+"1"[1]
"Test"->Str 1
List Str 1+"1"[1]
"1"->Str 2
List Str 1+Str 2[1]

ces trois codes ne marchent pas! n'utilisez qu'un texte ou un Str lorsque vous appelez une liste!

Ajout du 01/10/2012 à 22h00
petites choses que j'ai oublié de préciser, et petites astuces pouvant être utilisées:
-On ne peut pas allouer de listes avec la fonction Dim, utilisez la fonction seq() de préférence ou une liste déjà définie définie.
-Par contre:
{0,1}->List Str 1
fonctionne.

-Astuce: vous pouvez comparer deux listes de cette façon:
Not Sum (List 1!=List Str 1

mais il faut commencer par tester la Dim des deux listes pour éviter une érreur. et pour tester la Dim, l'astuce consiste justement a nommer la liste 1 puis tester la Dim (on est mal si on ne peut être vraiment sur de nos listes, mais bon, on trouvera sans doute bien-tôt une astuce pour y remédier).

-Astuce, sans en être une: n'oubliez pas la fonction File, nous n'avons pas que 26 listes, mais 156 (6*26). En les utilisant, on doit pouvoir trouver des nouvelles astuces aussi.
(je n'ai pas testé, mais j'ai imaginé une méthode de test de listes qui fonctionnerait si on connait le nom de toutes les listes nommées d'une File. En gros, on transvase toutes les listes ayant un nom dans une File de sauvegarde, on renomme les 26 listes de la File qui nous intéresse, on les teste avec la méthode sus-citée, on stocke dans une liste de la File de sauvegarde les info tailles des 26 liste de la File testée, puis finalement, on retransvase nos listes stockées dans la File de sauvegarde vers la File testée en utilisant une boucle de comparaison utilisant ma formule de comparaison sus-citée aussi (bon, si vous avez tout compris, on a donc au final la File testée avec toutes ces listes nommées, sans que celles qui nous intéressent ne soient renommées et en prime, une liste contenant toutes les Dim des autres listes))
Après avoir lu sa, je vous autorise a me dire que je suis fou


Ray Hors ligne Membre Points: 1338 Défis: 18 Message

Citer : Posté le 26/09/2012 23:16 | #


Très intéressant... Cela pourrait convenir à un jeu où on peut créer autant de personnages que l'on le souhaite (tant qu'il y a de la mémoire)...
Il suffira d'écrire le nom du perso au début puis si il existe, on reprendra sa partie, mais si il n'existe pas, il en créera un automatiquement.
Projets que je soutiens
Masquer
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 27/09/2012 10:11 | #


Bien évidemment, ça ne s'arrête qu'après 26 listes
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 27/09/2012 17:58 | #


Ca marche aussi visiblement un peu partout où on peut utiliser les listes!
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 27/09/2012 18:54 | # | Fichier joint


Message du 26/09/2012 a 23h25 en retard dû a un problème de connection de ma part
je l'ai appliqué se midi, durant un cours de physique-chimie, après avoir découvert l'astuce, pour créer un jeu de carte qui n'empiète pas sur mes autres programmes. Il est pas fini (je dois finir mon système d’allocation pour qu'il évite de supprimer les listes sans nom), mais il est déjà jouable, je vous met la version d’essai en fichier joint.
Les règles ne sont pas données, il y a encore des bug, il n'y a qu'une seule manche...

Règles du jeu
C'est dur?

Le Pazac est un jeu de carte joué dans toute la galaxie (si si, croyez moi) tout particulièrement par les jédi (CF: StarWars Knights Of The Old Républic).
Le but du jeu est extrêmement simple:
Il y a un dec de 40 cartes numérotées de 1 a 10 (donc il y en a 4 de chaque nombre) qui est commun aux deux joueurs.
Deux autres decs spécifiques aux joueurs de 10 cartes chacun et peuvent comprendre des cartes ayant des nombres compris entre -10 et 10, le 0 étant exclu.
Le but du jeu est:
-Soit d'être le premier joueur ayant atteint 20
-Soit avoir un plus grand nombre que l'adversaire a la fin de la partie
-Soit le joueur adverse a dépassé 20 (disqualification immédiate)

Au début du jeu, le dec de 40 cartes est mélangé, ainsi que ceux des joueurs.
La partie débute après qu'ils aient pioché chacun les 4 premières cartes de leur dec.
Tout le monde commence avec un total de point égal a 0.

A chaque tour, une carte du dec principal est piochée et additionnée aux précédentes, le joueur a alors le choix:
-Jouer des cartes (il n'a pas de limite du nombre de carte jouables, mais s'il a joué une carte, il ne la repioche pas jusqu'à la fin du jeu)
-Passer
-Ce coucher (s'il fait cela, il ne peut plus jouer)


Ce jeu seras sans doute ma participation au concours des 8 ans de planète casio (une fois fini) car je n'ai pas eut le temps de faire du C depuis la rentrée.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 88 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