![]() |
[Visual Basic] Willekeurige volgorde
Probleem: Een woordenreeks moet in willekeurige volgorde gezet worden, en dan in de labels in het interface getoond worden.
Oplossing: ??? Ik kon er zou gauw niet op komen hoe dit zou moeten. Iemand die me kan helpen? |
'randomize'
Maak een lijst aan met woorden. Elk woord krijgt een indexnummer. Randomize de lijst met nummers. Orden de woorden volgens die nummers. Zoiets? Ik heb al jaren niet meer met VB geprogrammeerd, maar dit komt zo in me op. |
Citaat:
Zover als dit was ik ook gekomen, maar om het nou ook nog werkende te krijgen was een tweede.... |
Citaat:
Ik zou de woorden in een string-array plaatsen. Op die manier kun je ze opvragen aan de hand van hun index. Ook weet je hoeveel woorden je hebt. De taak is nu een random getal op te roepen tussen 1 en het aantal woorden, met de eis dat het nog niet eerder voor is gekomen. Als je dat lukt, kun je de woorden in willekeurige volgorde oproepen. Als eerste initialiseren we de random-feed met de randomize functie. Dit doen we maar 1 keer, namelijk als het programma start. Code:
Private Sub Form_Load() Code:
i = Int(X * Rnd) + 1 Succes :) |
Zoals ******** al zei ja, plaats het in een array, randomize de array, en dan zet je ze in je labels.
Je labels geef je dezelfde naam maar elk een apart index nummer, zodat je makkelijker je array in de labels kan stoppen. DIM Array(3) Randomize Timer Array(0)="Woord1" Array(1)="Woord2" Array(2)="Woord3" Array(3)="Woord4" FOR I%=0 TO 3 Temp=Array(I%) J%=INT(RND * 4) Array(I%)=Array(J%) Array(J%)=Temp Label(I%).caption = Array(I%) NEXT I% en klaar. ofzo iets dergelijks |
Citaat:
dit werkt zo niet....... |
Citaat:
|
Citaat:
Misschien dat het bij 4 woorden meestal goed gaat, maar bij 1000 woorden zul je met dat algoritme niet ver komen. |
Citaat:
Tenzij je me heel lief aankijkt en ik zo nostalgisch ben om VB5 Professional uit mijn stoffige doos van oude software te halen (maar die kans is niet zo groot :p ). |
|
Citaat:
Ik ga elk veld langs en switch hem random met een ander veld. Er is een kans dat die op zijn originele plek terug komt, maar dat boeit niet, die kans moet ook bestaan. |
Citaat:
Okay, is goed :) Ik las er te snel overheen, zie nu wel wat je doet. Is een stuk beter dan mijn extra array :) |
Citaat:
|
Citaat:
Dacht je nou echt dat ik zoiets als Array2(I%)=Array1(RND*20) zou doen.? :D poe hee. Nee zoals je ziet, ik ga elke plek langs, en wissel de waarde om met een willekeurige waarde ergens anders in de array. Dus elk veldje word een keer ergens anders heengeplekt. Resultaat: een geshockte array met nog steeds alleen maar unieke woorden. |
Citaat:
Hmm, door het lezen van literatuur over Psychologie en Filosofie gaan mijn programmeerkunsten er niet bepaald op vooruit :o |
Citaat:
Maar bij hem heb ik soms wel is het gevoel, dat als die met een programmeerprobleem opgezadeld zit, dat die *eerst* de meest briljante en moeilijkste oplossing probeert te bedenken, met behulp van wat die allemaal geleerd heeft op school, voordat die gewoon simpel stap voor stap een oplossing zoekt. We pesten hem soms wel is, omdat die, als je hem iets vraagt, altijd wel met een 'ja .. maaaarrr' .. of een 'neee, maaar ..' antwoord komt. :) |
Citaat:
|
Citaat:
|
"De mensen die het wiel opnieuw uitvinden worden niet gezocht" .. zegt hij wel eens tegen me. Daarmee bedoelt hij dat ik te veel mijn eigen oplossingen voor alles heb, in plaats van dat ik gewoon effectief een probleem oplos.
Zo heb ik voor kantoor het facturatie-systeem geprogrammeerd. Als ik dit met VB en Access had gedaan, was het misschien in 3 dagen af. Maar nee, ik moest het per sé met BCB (C++ en statisch gelinkt) doen, zodat het programma ad hoc overal werkt. Dat ik hierdoor ook een eigen database-engine moest ontwerpen (BDE heb ik geen licenties voor) stoorde me niet :o Het duurde uiteindelijk 2 weken. Als ik ergens anders ga werken, zal ik daar dan ook hard aan moeten werken .. gewoon doen "wat de klant wil" en niet mijn eigenwijze kop doorzetten :D |
Alle tijden zijn GMT +1. Het is nu 19:20. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.