Object Oriënteerd Programmeren A human process, to produce products for human consumption.
Waarom OOP?
Encapsulated data
Programma
Denken in OOP
Analysis
Requirements
1. Statement Of Work Online spel gebaseerd op Blackjack. In het spel kunnen een of meerdere individuen tegen een “dealer” spelen. Ook zijn er meer dan een speler, zo kunnen de speler alleen tegen de dealer en niet tegen elkaar spelen. Het doel van het spel uit zicht van de speler is, om zo lang om nieuwe kaarten van de dealer te vragen tot het totaal aan punten van alle kaarten in zijn bezit of 21 of zo dicht als mogelijk bij 21 is, zonder hoger dan 21 te zijn. Als de speler meer dan 21 punten op de hand heeft, heeft hij verloren. Als de speler met alleen de eerste twee kaarten precies 21 punten heeft, heeft hij Blackjack en heeft meteen het speel gewonnen. De “dealer” doet ook mee als speler. Hij bied elk speler nieuwe kaarten aan, tot iedereen niet meer wil. Behalve de eerste kaart van elk speler, liggen alle kaarten open. De “dealer” bepaald de winner aan hand van hun punten en begint een nieuwe spel.
Analysis Elke kaart moet zijn waarde in punten weten en kunnen weergeven ● De kleur van de kaart is onbelangrijk ● Kaarten met nummer tellen hun punten ● As telt 1 of 11 punten ● Dame, koning en jack tellen 10 punten ● Elk kaart hoort bij een “deck” ● Elk “deck” moet de volgend kaart kunnen uit delen ● Elk “deck” moet weten hoeveel kaarten nog in het “deck” zijn ● Elk speler moet antwoorden, als een nieuwe kaart wordt aan geboden ● Elk speler moet zijn kaarten kunnen zien, weten hoeveel kaarten en punten hij heeft ● De “dealer” moet elk speler een nieuwe kaart aanbieden ● De “dealer” moet ook een speler zijn ● De “dealer” moet de punten van elk speler kunnen berekenen ● De “dealer” bepaald de winner ● De “dealer” begint en eindigt het spel ● Elk spel moet minstens een speler naast de “dealer” hebben ● Die speler wint, die het meest dicht bij 21 punten zit ● Wie wint krijgt de totaal inzet ● Heeft de speler Blackjack wint hij 3:2 van de totaal inzet ● Heeft de speler meer dan 21 punten heeft hij zijn inzet verloren ● Heeft de speler niet verloren, gelijk veel punten dan de “dealer” en meer dan 17 punten, krijgt hij gewoon zijn inzet terug. ● ... ●
Analysis
Analysis
1. Statement Of Work Online spel gebaseerd op Blackjack. In het spel kunnen een of meerdere individuen tegen een “dealer” spelen. Ook zijn er meer dan een speler, zo kunnen de speler alleen tegen de dealer en niet tegen elkaar spelen. Het doel van het spel uit zicht van de speler is, om zo lang om nieuwe kaarten van de dealer te vragen tot het totaal aan punten van alle kaarten in zijn bezit of 21 of zo dicht als mogelijk bij 21 is, zonder hoger dan 21 te zijn. Als de speler meer dan 21 punten op de hand heeft, heeft hij verloren. Als de speler met alleen de eerste twee kaarten precies 21 punten heeft, heeft hij Blackjack en heeft meteen het speel gewonnen. De “dealer” doet ook mee als speler. Hij bied elk speler nieuwe kaarten aan, tot iedereen niet meer wil. Behalve de eerste kaart van elk speler, liggen alle kaarten open. De “dealer” bepaald de winner aan hand van hun punten en begint een nieuwe spel.
Analysis Lijst van objecten in het programma: ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Doel Spel Blackjack Dealer Speler Kaarten Kaart Deck Hand Punten Kleur Winner As Koning Dame Inzet ...
Analysis Revisited lijst van objecten in het programma: ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Doel Spel Blackjack Dealer Speler Kaarten Kaart Deck Hand Punten Kleur Winner As Koning Dame Inzet ...
Analysis
1. Statement Of Work Online spel gebaseerd op Blackjack. In het spel kunnen een of meerdere individuen tegen een “dealer” spelen. Ook zijn er meer dan een speler, zo kunnen de speler alleen tegen de dealer en niet tegen elkaar spelen. Het doel van het spel uit zicht van de speler is, om zo lang om nieuwe kaarten van de dealer te vragen tot het totaal aan punten van alle kaarten in zijn bezit of 21 of zo dicht als mogelijk bij 21 is, zonder hoger dan 21 te zijn. Als de speler meer dan 21 punten op de hand heeft, heeft hij verloren. Als de speler met alleen de eerste twee kaarten precies 21 punten heeft, heeft hij Blackjack en heeft meteen het speel gewonnen. De “dealer” doet ook mee als speler. Hij bied elk speler nieuwe kaarten aan, tot iedereen niet meer wil. Behalve de eerste kaart van elk speler, liggen alle kaarten open. De “dealer” bepaald de winner aan hand van hun punten en begint een nieuwe spel.
Analysis
Dealer ● verdeel kaarten ● bereken waarde van hand ● geef kaart aan speler ● laat hand zien ● bepaald de winner ● start nieuwe spel ● .. Speler ● vraag om nieuwe kaart ● bereken waarde van hand ● weet hoeveel kaarten je op de hand hebt ● laat hand zien ● weet wanneer je boven 21 punten bent ● weet wanneer je onder 21 punten bent ● weet wanneer je backjack hebt ● .. Kaart ● Weet ● Weet ● Weet ● Weet ● ..
je waarde je kleur je punten of je een as, jack, dame of koning bent
Deck ● Geef volgend kaart ● Weet hoeveel kaarten er nog zijn ● Meng je kaarten ● .. Hand ● Weet hoeveel kaarten je hebt ● Weet hoeveel punten je hebt ● Laat je kaarten zien ● .. Inzet ● Weet hoeveel is ingezet ● Weet hoeveel credit de speler heeft ● Weet of de inzet gedekt is ● ..
Analysis
Class Responsibility Collaboration (CRC)
Analysis Responsibilities
Collaborations
Kaart: ● Noem naam ● Geef punten waard Deck: ● Aantal kaarten ● Kaarten mengen ● Geef volgend kaart Dealer: ● Start nieuw spel ● Verdeel nieuwe kaart Speler: ● Meer kaarten? ● Vraag om kaart ● Laat hand zien ● Waarde van hand Hand ● Geef totaal punten ● Voeg kaart toe ● Laat hand zien
Hand Speler, Deck Hand Dealer Hand Speler Dealer
Analysis
Use Case Diagram
Analysis
Use Case Speel Blackjack Omschrijving: Volgorde van handelingen bij het spelen van blackjack. Pre-conditions: Speler is logged in, Speler heef credit .. Main Success Scenario: 1. Speler selecteert spel 2. Dealer mengt kaarten 3. Speler maakt inzet 4. Dealer verdeelt eerste kaart 5. Speler voegt kaart aan zijn hand toe 6. Hand geeft nieuw aantal punten aan speler weer 7. Dealer voegt kaart aan zijn hand toe 8. Dealer bied een nieuwe kaart aan de speler aan 9. Dealer geeft een nieuwe kaart aan speler 10. Speler voegt kaart aan hand toe 11. Hand geeft nieuw aantal punten aan speler weer 12. Dealer vraagt of iemand nog kaarten wil 13. Dealer ontvangt de punten van alle spelers handen 14. Dealer vraagt en verdeelt inzet aan spelers 15. Speler verrekent winst of verlies aan inzet
Analysis
Main Success Scenario: ... 5. Speler voegt kaart aan zijn hand toe 6. Hand geeft nieuw aantal punten aan speler weer 7. Dealer voegt kaart aan zijn hand toe ... 11. Hand geeft nieuw aantal punten aan speler weer 12. Dealer vraagt of iemand nog kaarten wil 13. Dealer ontvangt de punten van alle spelers handen ... Extentions: 6.a. Speler heeft BlackJack 6.a.1. Dealer ontvangt de punten van alle spelers handen 6.a.2. Dealer vraagt en verdeelt inzet aan spelers 6.a.3. Speler verrekent winst of verlies aan inzet 12.a. Speler accepteert aanbod 12.a.1. Dealer geeft een nieuwe kaart aan speler 12.a.2. Speler voegt kaart aan hand toe 12.a.3. Hand geeft nieuw aantal punten aan speler weer
Design
Class Diagram
Thuiswerk Case study: Koffie Automaat HvA ➔ ➔ ➔
Requirements Use Case(s) Collaborations (CRC)
Thuiswerk
http://umlhandson.notlong.com