We hebben aangetoond dat je een dobbelsteen kan maken met random(), we hebben aangetoond hoe je het getal kan weergeven op een 7 segment display. Nu tonen we een andere manier om aan het getal te komen.
De millis() functie
Deze manier werkt met millis(). De instructie millis() geeft je ook een redelijk random getal. Dit is namelijk de tijd tussen het begin van het programma en het moment dat millis() werd opgeroepen in milliseconden. Aangezien het in milliseconden is kan je uiteraard niet makkelijk meetellen.
int randomnummer = millis();
Dit getal is uiteraard veel groter dan 1, je moet ervoor zorgen dat het niet groter kan worden dan 6 en tegelijkertijd niet gelijk aan 0. Dit kan door er een formule op los te laten. De formule die namelijk de rest van de deling door 6 zal berekenen.
dit is mogelijk door volgende code.
unsigned int getal = randomnummer%6;
Als je iets deelt door zes kan je geen rest hebben en de maximale rest die je kan hebben is gelijk aan 5.
Je krijgt dus een getal van 0 tot en met 5 en dit moet een getal van 1 tot en met 6 worden. De oplossing is dus eenvoudig, je moet er gewoon 1 bij optellen.
getal++;
Nu heb je dus ook een random getal gemaakt en de rest van de code van je dobbelsteen blijft identiek.
willekeurig getal met een counter
Een laatste methode is de methode van het optellen. Hierbij laat je het getal telkens het programma opnieuw aan de loop begint eentje toenemen en controleer je of hij het maximum al bereikt heeft. Op die manier krijg je de meest voorspelbare dobbelsteen (toch als de tijd dat de loop duurt lang is zodat je kan meetellen)
Je kan dit getal als volgt genereren.
randomnummer++;
if (randomnummer > 6){
randomnummer = 1;
}
Volgende les : reactiesnelheid game probleemstelling
We bespreken nog eens de volledige uitwerking van een probleemstelling van A tot Z, deze keer voor het te realiseren van een reactiesnelheid game die je zegt hoe snel je reactie is via de serial monitor.
Vorige les : random()
Vorige keer besproken we het genereren van een willekeurig nummer via de random() functie.
5 reacties op “dobbelsteen met millis()”-
-
-
-
-
Tutorial : Een reactie snelheid GAME – Projects4edu
(12 mei 2017 - 23:40)[…] van speciale functies zoals millis() en random() is de uitvoering niet zeer moeilijk. We hebben millis() en random() eerder gebruikt in een tutorial voor het realiseren van een dobbelsteen. Ook iets sturen […]
Overzicht tutorials en demonstraties – Projects4edu
(9 juni 2017 - 22:18)[…] aansturen van het 7segment display. 6) Het aansturen van een dobbelsteen door middel van random(). 7) dobbelsteen door middel van millis() of counter. 8) Reactie snelheid game : analyse van probleemstelling en opstellen van de flowchart. 9) Reactie […]
Overzicht tutorials en demonstraties – Projects4edu
(31 juli 2017 - 18:20)[…] aansturen van het 7segment display. 8) Het aansturen van een dobbelsteen door middel van random(). 9) dobbelsteen door middel van millis() of counter. 10) Reactie snelheid game : analyse van probleemstelling en opstellen van de flowchart. 11) […]
Dobbelsteen met random() – Projects4edu
(1 augustus 2017 - 15:49)[…] les tonen we twee andere methodes voor het realiseren van de dobbelsteen, dit toont aan dat er altijd meerdere mogelijke oplossingen zijn voor dezelfde […]
Statistiek met Arduino – Projects4edu
(20 mei 2018 - 16:53)[…] die je gemaakt hebt dankzij de random functie. als de dobbelsteen die je gemaakt hebt met de millis functie en de dobbelsteen met het tellen. dan heb je in totaal de resultaten van 4 verschillende dobbelstenen. Op deze manier kan je bepalen […]