Skip to content

Track 1 - Oefenopdracht - Dobbelsteen

Codelab

npx @hboictcloud/codelab-cli new oop/1-dobbelsteen

Beschrijving

Tijdens de Programming Codelabs heb je al eens gewerkt aan een applicatie die dobbelstenen gooit. Je kunt gedeeltelijk de code van die opdracht hergebruiken.

In deze nieuwe versie gaan we een dobbelsteen class maken. Het voordeel is dat we hierna gemakkelijk meerdere dobbelstenen kunnen aanmaken en daarmee kunnen gooien.

  1. Maak een class Dobbelsteen volgens het onderstaande klassendiagram.
  2. Test de werking van de Dobbelsteen-class in index.ts, haal daarna de test-code weer weg.
  3. Vraag de gebruiker om een karakter voor de ogen en blijf de de dobbelsteen werpen tot er 6 gegooid wordt.

Hieronder een voorbeeld van input/output van deze applicatie na de wijzigingen. Input die de gebruiker invoert is onderstreept.

Voorbeeld 1

In het eerste voorbeeld wordt achtereenvolgens 2 en 6 gegooid.

Welk karakter moet ik gebruiken voor het oog: *

*

  *

* *
* *
* *

Voorbeeld 2

In het tweede voorbeeld wordt achtereenvolgens 5, 5, 3 en 6 gegooid.

Welk karakter moet ik gebruiken voor het oog: #

# #
 #
# #

# #
 #
# #

#
 #
  #

# #
# #
# #

Klassendiagram

Onderstaand diagram vat de structuur van de class samen:

classDiagram
    class Dobbelsteen {
        worp: number
        karakter: string
        constructor(karakter?: string)
        gooi() void
        print() void
        getWorp() number
    }

Stappenplan

  1. Maak een nieuwe class genaamd Dobbelsteen.

    1. Geef deze class de attributen worp en karakter. Worp geeft aan wat er als laatste is gegooid met de dobbelsteen. Karakter wordt gebruikt voor de weergave van het oog.
    2. Deze class heeft een default constructor en een constructor voor het karakter van het oog. In de constructor met het karakter zul je de waarde van dit karakter aan het attribuut karakter moeten toewijzen.
    3. Maak een methode gooi(): void. Deze methode zorgt dat het attribuut worp een nieuwe, random waarde krijgt. Deze methode drukt dus niets af! Gebruik Math.random() om een random waarde van 1 tot en met 6 te genereren.
    4. Maak een methode print(): void. Deze methode print de dobbelsteen op dezelfde wijze als we deden in de dobbelsteenopdracht van Programming. Zorg dat als er een karakter is meegegeven in de constructor dat deze gebruikt wordt als oog!
    5. Maak een methode getWorp(): number. Deze methode geeft de waarde van het attribuut worp terug.
  2. Test in de index.ts of je class Dobbelsteen werkt.

    1. Maak een object van type Dobbelsteen aan door de default constructor aan te roepen: const steen: Dobbelsteen = new Dobbelsteen().
    2. Druk de waarde van worp af. Gebruik hiervoor de methode getWorp() en console.log().
    3. Gooi met de dobbelsteen door de methode gooi() van steen aan te roepen. Je ziet verder nog niets gebeuren.
    4. Laat zien wat er gegooid is door de methode print() van steen aan te roepen.
    5. Maak nog een const steenMetAnderOog: Dobbelsteen = new Dobbelsteen("$") aan en herhaal de bovenstaande stappen. Test of het karakter dat je meegeeft geprint wordt.
  3. Implementeer de originele applicatie, maar dit keer met gebruik van de Dobbelsteen-class.

  4. Verwijder alle bestaande code uit de index.ts.

  5. Vraag de gebruiker om een karakter dat gebruikt moet worden voor de ogen van de dobbelsteen, maak daarmee een instantie van je Dobbelsteen-class.
  6. Werp de dobbelsteen en blijf dit herhalen tot er 6 gegooid wordt, na het printen van de dobbelsteen stopt de applicatie.

Richtlijnen bij coderen

  • Zorg dat je naam en het doel van het programma bovenin staan.
  • Gebruik de juiste inspringing (indentation) bij de lay-out.
  • Let op juist gebruik hoofdletters en kleine letters.
  • Gebruik goede namen.
  • Voeg waar nodig commentaar toe dat inzicht geeft in je code.