Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Générer un arrangement multiple de 3-4-5 objets
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Générer un arrangement multiple de 3-4-5 objets

Posté le 21/01/2015 14:53

Bonjour !

J'ai beau ne pas être méga actif sur le site en ce moment, je programme quand même toujours. J'achoppe sur une petite partie depuis quelque jour et sa m'énerve... J'aime bien trouver par moi même mais là je reste toujours sur une solution assez grosse, en ayant conscience qu'il y'a moyen de faire mieux. Voici ce que je recherche.

Mon programme a trois, quatre ou cinq chaîne de caractères.
A B C D E

Comment puis-je faire pour qu'il s'affiche aléatoirement dans un ordre différent ?
A D B E C


J'ai déjà bien un gros bazar, à coup de int Ran# mais bon je suis certain qu'une meilleure solution existe....
Avez vous une petite idée ?

Merci d'avance

Marmotti


Dark storm En ligne Labélisateur Points: 11537 Défis: 176 Message

Citer : Posté le 21/01/2015 14:56 | #


En C ou en Basic ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 21/01/2015 14:58 | #


Darkyz a écrit :
En C ou en Basic ?

Tu as ta réponse:
Marmotti a écrit :
int Ran#

Dark storm En ligne Labélisateur Points: 11537 Défis: 176 Message

Citer : Posté le 21/01/2015 15:01 | #


Ben, en basic t'as pas de int
Et en C c'est pas Ran#
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Totoyo Hors ligne Membre d'honneur Points: 16034 Défis: 102 Message
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 21/01/2015 15:11 | #


En Basic Vous m'avez déjà vu programmer en C ? (bon oui un peu)
Totoyo Hors ligne Membre d'honneur Points: 16034 Défis: 102 Message

Citer : Posté le 21/01/2015 15:14 | #


J'ai pensé à la RanSamp#(), apparue avec la version 2.04, mais elle permet le tirer de même nombre plusieurs fois.

Pour tirer un nombre aléatoirement, je sélectionne aléatoirement l'un des nombre de première liste pour en former une nouvelle série (list 2):
{5,4,3,2,1->List 1
{0->List 2
For Dim List 1->B To 1
1+Int (BRan #
List 1[Ans->List 2[B
0->List 1[Ans
SortD(List 1)
Next


Une solution consiste à permuter plusieurs fois la position des valeurs au sein de la même liste :
{1,2,3,4,5->List 1
Dim List 1->L
For 1->B To L
1+Int (LRan #
List 1[Ans->A
List 1[B->List 1[Ans
A->List 1[B
Next


La deuxième solution a l'avantage d'être plus économe en ressources (on utilise la même liste). Je la trouve aussi plus simple à comprendre.
Lephenixnoir Hors ligne Administrateur Points: 20736 Défis: 143 Message

Citer : Posté le 21/01/2015 17:14 | #


Oh mais y'a beaucoup, beaucoup plus simple

Tu fais une « liste » triée et puis tu la détries en échangeant des éléments, n ou 2n fois (n étant le nombre d'éléments)
Totoyo Hors ligne Membre d'honneur Points: 16034 Défis: 102 Message

Citer : Posté le 21/01/2015 17:46 | #


Tu fais une « liste » triée et puis tu la détries en échangeant des éléments, n ou 2n fois (n étant le nombre d'éléments)

Ça reprend ma seconde solution, non ?
Lephenixnoir Hors ligne Administrateur Points: 20736 Défis: 143 Message

Citer : Posté le 21/01/2015 17:55 | #


Totoyo a écrit :
Tu fais une « liste » triée et puis tu la détries en échangeant des éléments, n ou 2n fois (n étant le nombre d'éléments)

Ça reprend ma seconde solution, non ?

C'est exactement ça en fait !
J'ai lu un assez vite, passant rapidement chaque message et j'ai vu que tu avais évoqué RanSamp# mais je suis passé un peu (trop) rapidement sur la suite
Totoyo Hors ligne Membre d'honneur Points: 16034 Défis: 102 Message
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 22/01/2015 16:14 | #


Hum j'ai vaguement compris ton code et je t'en remercie d'ailleurs, par contre je n'arrive pas à trouver de solution courte pour que cela fonctionne avec 3, 4 ou 5 objets, mais cela reste quand même nettement plus propre que mon truc (un pavé à coup de lbl....)

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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 89 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