Voor een spelletje thuis wil ik een bingokaartgenerator schrijven.
Nu is dit volgens mij niet zo moeilijk. Er kan straks worden ingegeven welke nummers er uitgedeeld moeten worden, hoeveel nummers er op een bingokaart staan, en hoeveel bingokaarten er gegenereerd moeten worden.
Voor elke gegenereerde kaart moet ik natuurlijk kijken of de kaart wel uniek is.
De controle hierop is niet zo moeilijk, want ik kan gewoon de andere gegenereerde kaarten afgaan op de zelfde combinaties.
Nu kan de volgende situatie ontstaan:
Gebruik de getallen 1 t/m 10, genereer 4 kaarten en zet 5 getallen op een kaart.
Kaart 1: 1,2,3,4,5
Kaart 2: 1,2,3,4,6
Kaart 3: 1,2,3,5,6
Kaart 4: 1,2,3,6,7
Met een beetje ongeluk worden eerst de getallen 8, 9 en 10 getrokken die niemand op zijn kaart heeft staan.
Ik heb liever dat de getallen op de kaarten gelijkmatig uit de gehele range worden gehaald. Zoiets dus:
Kaart 1: 1,2,3,4,5
Kaart 2: 6,7,8,9,10
Kaart 3: 1,3,5,7,9
Kaart 4: 2,4,6,8,10
Welk getal er nu wordt getrokken, er zijn nu altijd wel mensen die een getal op de kaart hebben staan.
Zelf had ik gedacht om eerst te bepalen hoe vaak een willekeurig getal dan op de kaarten voor zou komen.
Daarna zit ik elk getal dat aantal keer (minus het aantal keer dat het getal is uitgegeven) in een array, om vervolgens met een randomgenerator een willekeurig getal eruit te pikken.
Helaas kom ik dan voor het probleem te zitten dat ik bijvoorbeeld voor de laatste kaart nog de keuze heb uit drie zessen. Dit kan ik natuurlijk niet gebruiken en dan zou ik de overgebleven getallen met de al bestaande kaarten moeten uitwisselen.
Dit lijkt mij dan ook geen juiste methode. Hebben jullie een idee om dit aan te pakken?
Nu is dit volgens mij niet zo moeilijk. Er kan straks worden ingegeven welke nummers er uitgedeeld moeten worden, hoeveel nummers er op een bingokaart staan, en hoeveel bingokaarten er gegenereerd moeten worden.
Voor elke gegenereerde kaart moet ik natuurlijk kijken of de kaart wel uniek is.
De controle hierop is niet zo moeilijk, want ik kan gewoon de andere gegenereerde kaarten afgaan op de zelfde combinaties.
Nu kan de volgende situatie ontstaan:
Gebruik de getallen 1 t/m 10, genereer 4 kaarten en zet 5 getallen op een kaart.
Kaart 1: 1,2,3,4,5
Kaart 2: 1,2,3,4,6
Kaart 3: 1,2,3,5,6
Kaart 4: 1,2,3,6,7
Met een beetje ongeluk worden eerst de getallen 8, 9 en 10 getrokken die niemand op zijn kaart heeft staan.
Ik heb liever dat de getallen op de kaarten gelijkmatig uit de gehele range worden gehaald. Zoiets dus:
Kaart 1: 1,2,3,4,5
Kaart 2: 6,7,8,9,10
Kaart 3: 1,3,5,7,9
Kaart 4: 2,4,6,8,10
Welk getal er nu wordt getrokken, er zijn nu altijd wel mensen die een getal op de kaart hebben staan.
Zelf had ik gedacht om eerst te bepalen hoe vaak een willekeurig getal dan op de kaarten voor zou komen.
Daarna zit ik elk getal dat aantal keer (minus het aantal keer dat het getal is uitgegeven) in een array, om vervolgens met een randomgenerator een willekeurig getal eruit te pikken.
Helaas kom ik dan voor het probleem te zitten dat ik bijvoorbeeld voor de laatste kaart nog de keuze heb uit drie zessen. Dit kan ik natuurlijk niet gebruiken en dan zou ik de overgebleven getallen met de al bestaande kaarten moeten uitwisselen.
Dit lijkt mij dan ook geen juiste methode. Hebben jullie een idee om dit aan te pakken?
Speel ook Balls Connect en Repeat