Posté le 30/09/2015 14:25
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 106 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
Citer : Posté le 30/09/2015 14:59 | #
Tu peu créer une liste qui stocke l'ensemble des nombres que tu a créer ainsi qu'une variable pour le nombre de nombres stockés dans la liste.
Tu tire un nombre aléatoirement puis tu réalise une boucle for qui prend comme paramètre la variable précédemment créer.
Dans la boucle for tu réalise un test entre le nombre tiré et le nombre de la liste. Si ils sont égaux alors tu retire aléatoirement un nouveau nombre. Sinon tu sera sur que le nombre tiré n'a jamais été tiré.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Vieljeux Invité
Citer : Posté le 30/09/2015 15:58 | #
D'accord j'essaye ça tout de suite ! Merci
Citer : Posté le 30/09/2015 16:25 | #
Le plus simple (et optimisé), c'est de créer une liste qui contient tout tes éléments. Ensuite tu mélanges la liste un peu plus de 2*n (n nombre d'éléments) pour être sûr que ce soit bien mélangé, puis tu tire les x premiers termes.
Compléxité linéaire, tu peux tirer 54 cartes sans remise en moins de 0.5s
Vieljeux Invité
Citer : Posté le 30/09/2015 16:57 | #
Et comment faire pour mélanger une liste ?
Citer : Posté le 30/09/2015 17:33 | #
For 1->X to 2^(Dim List 1)
Int (Dim List 1)Ran+1->A
Int (Dim List 1)Ran+1->B
List 1[A]->C
List 1[B]->List 1[A]
C->List 1[B]
Next
C'est comme ça que je ferai
Citer : Posté le 01/10/2015 09:53 | #
Exactement
Ajouté le 01/10/2015 à 19:17 :
Je viens de remarquer le "To 2^(Dim List 1)". Tu peux optimiser sur les grandes listes en faisant du "To k*Dim List 1" où k est un nombre au moins supérieur à un. Plus il est grand, plus c'est lent mais plus c'est aléatoire.
Citer : Posté le 02/10/2015 09:53 | #
J'en parle dans mon topic sur un future jeu, ici
mon mélangeur est en fichier joint dans ma première réponse au sujet.
Vieljeux Invité
Citer : Posté le 05/10/2015 19:30 | #
Merci à tous pour vos réponses !
Vieljeux Invité
Citer : Posté le 06/10/2015 11:14 | #
Juste une petite précision, peut-on juste prendre quelques termes de la liste ?
Par exemple, on a ABCDEF la calculette fait le mélange (comme avec le programme de Fabcvlr) mais nous affiche juste ECA par exemple et non toutes les lettres mélangées ?
Citer : Posté le 06/10/2015 12:39 | #
oui, il y a une fonction pour sa :
Je te renvoie sur ces liens :
fonction
tuto 1
tuto 2
Et pour ton code, cela donne un truc du genre :
""->Str 2
For 1->X to [blue]3[/blue]
Int (StrLen Str 1)Ran+1→A
Str 2+StrMid(Str 1,A, 1)-> Str 2
Next
Ce programme te dire 3 lettres aléatoire de la Str 1 et stocke ça en Str 2