dobbelsteen

algemene C code
Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: dobbelsteen

Berichtdoor Koepel » 12 Okt 2020, 17:13

Je kunt een tweede sketch maken om te kijken of je een getal kunt lezen van de seriële monitor.
Misschien dat je deze functie kunt gebruiken: https://www.arduino.cc/reference/en/language/functions/communication/serial/parseint/.

Dus je stuurt bijvoorbeeld de tekst: "Hoeveel personen zijn er ?".
Dan kun je dat in de seriële monitor invoeren (het invoerveld staat tegenwoordig inderdaad bovenaan).
Dan lezen, bijvoorbeeld met die Serial.parseInt().
Laat voor de zekerheid het aantal in de seriële monitor zien.

Dan kun je eens proberen wat er gebeurt als je alleen op enter drukt, of een verkeerd getal ingeeft, of een negatief getal, of een getal groter dan het aantal mensen op aarde, enzovoorts.

Advertisement

Berichten: 11
Geregistreerd: 03 Okt 2020, 10:42
Woonplaats: Denekamp

Re: dobbelsteen

Berichtdoor melvinkamphuis » 13 Okt 2020, 15:05

volgens mij heb ik hem :mrgreen: :D
dit is de code:
Code: Alles selecteren
byte dobbelsteen_1;
byte dobbelsteen_2;
byte dobbelsteen_3;
byte Winst_6 = 6;
byte Winst_4 = 4;
byte Winst_2 = 2;
int Winst_0 = 0;
byte counter = 0;
int pot;
int totaleWinst;

// Setup
void setup()
{
  Serial.begin(9600); //snelheid is 9600 tekens per seconde
  randomSeed( analogRead(0) ); //de randomSeed zorgt er voor dat de random niet ieder
  pinMode (10, INPUT_PULLUP); //trekt de schakelaar naar de GND.

}


// Main loop
void loop()
{

  if (!digitalRead(10)) // schakelaar word gelezen.
  {
    counter = counter + 1;
    Serial.println();
    Serial.print ("aantal_worpen =  ");
    Serial.println (counter);
    // hierboven word bijgehouden hoe vaak er in het spel op de schakelaar is gedrukt. met de resetknop op de arduino word alles gereset.

    Serial.println();
    dobbelsteen_1 = random(1, 7);
    Serial.print ("dobbelsteen_1");
    Serial.print ("=     ");
    Serial.println (dobbelsteen_1);
    // het programma voor dobbelsteen_1 zorgt ervoor dat er een waarde van 1 t/m 6 geworpen word.

    dobbelsteen_2 = random(1, 7);
    Serial.print ("dobbelsteen_2");
    Serial.print ("=     ");
    Serial.println (dobbelsteen_2);
    // het programma voor dobbelsteen_2 zorgt ervoor dat er een waarde van 1 t/m 6 geworpen word.

    dobbelsteen_3 = random(1, 7);
    Serial.print ("dobbelsteen_3");
    Serial.print ("=     ");
    Serial.println (dobbelsteen_3);
    // het programma voor dobbelsteen_3 zorgt ervoor dat er een waarde van 1 t/m 6 geworpen word.



    if ((dobbelsteen_1 == 6) && (dobbelsteen_2 == 6) && (dobbelsteen_3 == 6)) // hier word bekeken of de waarde van alle dobbelstenen gelijk zijn aan 6.
    {
      // zijn de dobbelstenen allemaal gelijk aan 6 dan gebeurt dit:
      Serial.println ("€6,00 Gewonnen"); //in de seriële monitor word er laten zien wat je gewonnen hebt.
      Serial.print ("totaleWinst = €"); /* hier word vóór het resultaat van de bovenstaande berekening (voor de duidelijkheid)
      in de seriële monitor totaleWinst = € gezet omdat het dan duidelijk is wat je in totaal hebt gewonnen.
      */
      Serial.println (Winst_6 - 1); //achter de totaleWinst word dan de waarde van Winst_6 weergegeven en dan een lege regel eronder.
      totaleWinst = Winst_6;
    }
    else // als het bovenstaande niet het geval is gebeurt er dit:
    {
      if ((dobbelsteen_1 == dobbelsteen_2) && (dobbelsteen_1 == dobbelsteen_3) && (dobbelsteen_2 == dobbelsteen_3)) /* hier word vergeleken of er 3 dobbelstenen
      gelijk zijn aan elkaar */
      {
        // zijn de dobbelstenen gelijk aan elkaar dan is het onderstaande het geval.
        Serial.println ("€4,00 Gewonnen"); //in de seriële monitor word er laten zien wat je gewonnen hebt.
        Serial.print ("totaleWinst = €"); /* hier word vóór het resultaat van de bovenstaande berekening (voor de duidelijkheid)
        in de seriële monitor totaleWinst = € gezet omdat het dan duidelijk is wat je in totaal hebt gewonnen.
        */
        Serial.println (Winst_4 - 1); //achter de totaleWinst word dan de waarde van Winst_4 weergegeven en dan een lege regel eronder.
        totaleWinst = Winst_4;
      }
      else // als het bovenstaande niet het geval is gebeurt er dit:
      {
        if ((dobbelsteen_1 == dobbelsteen_2) || (dobbelsteen_1 == dobbelsteen_3) || (dobbelsteen_2 == dobbelsteen_3)) /*hier word gekeken of er 2 dobbelstenen
        gelijk zijn aan elkaar. */
        {
          // zijn er 2 dobbelstenen gelijk aan elkaar dan is het onderstaande het geval.
          Serial.println ("€2,00 Gewonnen"); //in de seriële monitor word er laten zien wat je gewonnen hebt.
          Serial.print ("totaleWinst = €"); /* hier word vóór het resultaat van de bovenstaande berekening (voor de duidelijkheid)
          in de seriële monitor totaleWinst = € gezet omdat het dan duidelijk is wat je in totaal hebt gewonnen.
          */
          Serial.println (Winst_2 - 1); /*achter de totaleWinst word dan de waarde van Winst_2 weergegeven dan weet je wat je in totaal gewonnen hebt
          en dan een lege regel eronder.
          */
          totaleWinst = Winst_2;
        }
        else // als het bovenstaande niet het geval is gebeurt er dit:
        {
          //bij dit geval is er niks gelijk aan elkaar en heb je ook geen winst.
          Serial.println ("€0,00 Gewonnen"); //in de seriële monitor word er laten zien wat je gewonnen hebt.
          Serial.print ("totaleVerlies = €"); /*omdat je €1,- verloren hebt en dus geen winst word er in de seriële monitor Verlies = € neergezet
          en daarna de nieuwe waarde.
          */
          Serial.println (Winst_0 - 1); /*achter de totaleVerlies word dan de waarde van Winst_0 weergegeven dan weet je wat je in totaal gewonnen hebt
          en dan een lege regel eronder.
          */
          totaleWinst = Winst_0;
        }
      }
    }
    delay (1000); //de delay word er aan het einde toegevoegd om er voor te zorgen dat als je op de schakelaar drukt er ook 1 keer met de dobbelstenen geworpen word.
  }
    pot = (counter * 3);
    Serial.println();
    Serial.print ("totale inleg v/d pot: € ");
    Serial.println (pot - totaleWinst);
    delay (1500);
}


dit is dan te zien in de seriële monitor:
aantal_worpen = 4

dobbelsteen_1= 1
dobbelsteen_2= 4
dobbelsteen_3= 5
€0,00 Gewonnen
Totale Verlies Deelnemer = €-1

totale inleg v/d pot: € 12

m.v.g
melvinkamphuis

Vorige

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten