Johdatus ohjelmistotekniikkaan 2007 -kurssin vaatimusmäärittelyluentotehtävän mallivastaus

Tämä peliesimerkki on siinä mielessä hyvä ja opettavainen, että

Mallivastaus

[name]
Pelaa Nettipokeria
[steps]
Pelaaja valitsee selaimeensa pokeripalvelun URIn.
Pelaaja kirjautuu pokeripalveluun. {PN_P1}
Pokeripalvelu esittää pelaajalle aktiiviset pelipöydät. (Tarkastele aktiivisia pelipöytiä)
Pelaaja valitsee pelipöydän. {PN_P2}
Pelaaja liittyy uutena pelaajana valitsemaansa pelipöytään. {PN_P3}
Pelaaja pelaa Texas Hold'em pokeria valitsemassaan pelipöydässä. (Pelaa Texas Hold'emia)
Pelaaja kirjautuu ulos pokeripalvelusta.
[end]
    PN_P1: Pelaajalla ei ole aktiivista käyttäjätunnusta.
	   Pokeripalvelu tarjoaa pelaajalle mahdollisuuden
	   käyttäjätunnuksen luomiseen.
    PN_P2: Pelaajan pelikassan saldo ei riitä pelaamiseen.
	   Pokeripalvelu tarjoaa pelaajalle mahdollisuuden
	   seurata valitsemansa pöydän peliä siihen itse osallistumatta.
	   Pokeripalvelu tarjoaa pelaajalle mahdollisuuden
	   täydentää pelikassaansa "cashier":n kautta.
    PN_P3: Uusi pelaaja joko odottaa ison blindin tulevan omalle kohdalle tai postaa
	   ylimääräisen ison blindin päästen peliin mukaan kesken kierroksen.

[name]
Tarkastele aktiivisia pelipöytiä
[steps]
Pokeripalvelu esittää listan aktiivisista pelipöydistä.
Pelaaja valitsee pelipöydän lähempää tarkastelua varten.
Pokeripalvelu esittää yhteenvedon pelipöydän pelihistoriasta.
Pelaaja valitsee jonkin pelaajan lähempää tarkastelua varten.
Pokeripalvelu esittää yhteenvedon pelaajan pelihistoriasta.
[end]

[name]
Pelaa Texas Hold'emia
[steps]
Jakajan vasemmalla puolella istuva pelaaja maksaa pienen sokkopanoksen ja hänestä
seuraava pelaaja ison sokkopanoksen (iso blindi).
Pokeripalvelu jakaa kaksi pimeää korttia jokaiselle pelipöydän pelaajalle.
Isosta blindista seuraava pelaaja avaa ja maksaa, korottaa tai kippaa.
Muut pelaajat maksavat, korottavat tai kippaavat järjestyksessä myötäpäivään. {PTH_P1} {PTH_P3}
Pokeripalvelu jakaa kolme avointa korttia pelipöydälle (flop).
Pelaajat sököttävät, maksavat, kippaavat tai korottavat järjestyksessä myötäpäivään.
{PTH_P1} {PTH_P2} {PTH_P3}
Pokeripalvelu jakaa neljännen avoimen kortin pelipöydälle (turn). {PTH_P4}
Pelaajat sököttävät, maksavat, kippaavat tai korottavat järjestyksessä myötäpäivään.
{PTH_P1} {PTH_P2} {PTH_P3}
Pokeripalvelu jakaa viidennen avoimen kortin pelipöydälle (river).
Pelaajat sököttävät, maksavat, kippaavat tai korottavat järjestyksessä myötäpäivään.
{PTH_P1} {PTH_P2} {PTH_P3}
Korkeimman käden omaava pelaaja voittaa potin. {PTH_P5}
[end]
    PTH_P1: Limit Hold'emissa saa panostaa vain neljä kertaa
	    panostuskierroksen aikana: (1) panostus, (2) korotus, 
	    (3) uudelleenkorotus ja (4) cap (viimeinen korotus).
    PTH_P2: Pelin aloittaa se pelaaja, joka on myötäpäivään seuraava jakajan napista.
    PTH_P3: Panostuskierros loppuu kun kaikki pelaajat ovat joko kipanneet tai
	    maksaneet viimeisen korotuksen.
	    Jos pelissä on mukana vain yksi pelaaja hän voittaa potin.
    PTH_P4: Tästä eteenpäin panosten hinta on kaksinkertaistunut.
    PTH_P5: Tasapelitilanteessa potti jaetaan.


[concepts]
Pelaaja
Selain
Pokeripalvelu
URI
Käyttäjätunnus
Pelipöytä
Yhteenveto pelipöydän pelihistoriasta
Yhteenveto pelaajan pelihistoriasta
Pelikassa
"cashier"
Blindi
Kierros
Texas Hold'em
Jakaja
Sokkopanos
Kortti
Panostuskierros
Panostus
Korotus
Uudelleenkorotus
cap
Jakajan nappi
flop
turn
Panos
river
Hinta
Potti
Tasapeli