9. Hur slumpa data?

I den här övningen ska vi använda slumptal. För att tilldela ett slumptal till en variabel gör du så här:
variabeln = random(start,upp till (men inte inkluderat));
Exempel om variabeln heter svar och ska få ett slumpat tal mellan 1-6:

svar = random(1,6);
kommer att ge ett tal mellan 1 och 5,9999999...

Om du skriver ut variabeln svar kan det se ut så här:
4.882837616066588
Men om vi vill ha ett heltal behövs en avrundning till närmaste heltal:
Det finns olika sätt att avrunda på i p5.js. Här använder vi floor() vilket avrundar till det heltal som är mindre än, eller lika med det slumpade värdet.  Om slumpat värde är 6.897545254 avrundar floor() till 6.

svar = random(1,7); från 1 upp till, men inte inklusive, 7.
svar =floor(svar);

Om du skriver ut variabeln svar nu kan det se ut så här:
4
Det går också bra att skriva koden i ett steg:

svar = floor(random(1,7));

För att  funktionerna floor() och random() ska fungera krävs, i P5.js editor, att de placeras i setup-funktionen. Börja alltså med att skapa setup-funktion och skriv sen all din kod innanför klammerparenteserna.

function setup(){

//innanför klammerparenteserna skriver du sen din kod

}

Nu är det dags för en utmaning: att skapa ett program som testar hur många 6:or det blir på tre ”tärningskast”.
Så här ska programmet fungera:

  1. Skapa variabeln antal och sätt den till 0
  2. Skapa variabeln slumptal
  3. Sätt slumptal till ett avrundat slumpvärde mellan 1-7
  4. Om det är en 6:a, öka antal med 1
  5. Sätt slumptal till ett avrundat slumpvärde mellan 1-7
  6. Om det är en 6:a, öka antal med 1
  7. Sätt slumptal till ett heltalsavrundat slumpvärde mellan 1-7
  8. Om det är en 6:a, öka antal med 1
  9. Skriv ut ”Du fick ” + antal + ” 6:or på de här tre kasten”

Vill du vara säker på att din kod verkligen fungerar som du tänkt kan du använda console.log(slumptal); på de platser i koden där slumptal genereras. På så sätt kan du se i konsolen att att antal 6:or verkligen blir korrekt summerade i variabeln antal.

Nästa utmaning är att skapa ett program där användaren får gissa ett slumpat tal och efter tre försök får veta hur nära bästa gissningen var.
Det här kan vara en svår utmaning, så var noggrann! (Indragen kan hjälpa dig skapa if-satserna).
Så här ska programmet fungera:

  1. Skapa slumptal mellan 0-100 och avrunda det till ett heltal
  2. Använd prompt ()och be användaren gissa ett tal mellan 0-100
  3. Konvertera tal till ett nummer med int(tal)
  4. Om tal var lika som slumptal
    svara ”Du gissade rätt tal!!”
    Annars om tal är mindre än slumptal,
    Fråga användaren efter en ny gissning mellan tal och 100
    Annars om talet är större än slumptal,
    Fråga användaren efter en ny gissning mellan 0 och tal
  5. Om tal var lika som slumptal
    svara ”Du gissade rätt tal!!”
    Annars om tal är mindre än slumptal,
    Fråga användaren efter en ny gissning mellan tal och 100
    Annars om tal är större än slumptal,
    Fråga användaren efter en ny gissning mellan 0 och tal
  6. Om tal var lika som slumptal
    svara ”Du gissade rätt tal!!”
    Annars
    Om tal är mindre än slumptal
    svara ”Du kom ” + (talslumptal) + ” ifrån slumptalet”
    Annars om tal är större än slumptal
    svara ”Du kom ” + (slumptaltal) + ” ifrån slumptalet”