Vaatimusmäärittely dokumentti

Asdf

Helsinki 5.5.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi

581260 Ohjelmistotuotantoprojekti (6 ov)

Projektiryhmä Kuisma Sami Louhio Jaakko Rimpilä Raine Urtela Mika Vilhonen Vesa

Asiakas Pasanen Tomi, Saukonoja teemu

Johtoryhmä Yrjänäinen Sampo Simola Kimmo

Kotisivu

http://www.cs.helsinki.fi/group/asdf

Versiohistoria

Versio Päiväys Tehdyt muutokset
1.0  20.1.2008 Dokumentti luotu
1.1  28.1.2008 Lisätty käyttäjä- sekä järjestelmävaatimuksia
1.2  29.1.2008 Lisätty sanastoa
1.3  1.30.2008 Tarkennettu järjestelmä vaatimuksia

Sisältö

1 Johdanto 1

2 Järjestelmän yleiskuvaus 2 2.1 sanasto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Käyttäjän vaatimukset 3

4 Järjestelmävaatimukset 5

4.1 Palvelin vaatimukset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.1.1 Käyttäjähallinnan vaatimukset . . . . . . . . . . . . . . . . . . . 7 4.1.2 Pelilogiikka texas holdemille . . . . . . . . . . . . . . . . . . . . 8

4.2 Peliaulan vaatimukset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.3 Pokeripöydän vaatimukset . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.4 Laadulliset vaatimukset . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.5 Muut vaatimukset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5 Järjestelmäarkkitehtuuri 13 5.1 Asiakas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.2 Tekoälypelaaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.3 Palvelin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Käyttötapaukset 14

7 Ohjelmiston elinkaari 16

Liitteet

1 Texas hold’em pelin määrittely

1 Johdanto

Asdf on Helsingin yliopiston tietojenkäsittelytieteen laitoksen ohjelmistotuotantoprojektin ryhmä, joka toteuttaa asiakkaan tilaaman pokeripalvelin ohjelmiston. Tässä dokumentissa määritellään toteutettava ohjelmisto ja siihen läheisesti vaikuttavat asiat. Dokumentti on tarkoitettu projektiryhmän, projektin ohjaajan ja asiakkaiden käyttöön. Dokumentti toimii myös sopimuksena toteutettavista ominaisuuksista projektiryhmän ja asiakkaiden välillä. Projektiin liittyvää materiaalia tulee olemaan saatavilla ryhmän kotisivulla osoitteessa:

http://www.cs.helsinki.fi/group/asdf/

Projekti tehdään iteroivana prosessimallina, joten lopullinen määrittely saadaan vasta projektin viimeisessä iteraatiovaiheessa ennen lopullista ohjelmaa. Projektin aikana on ryhmällä sekä asiakkaalla mahdollisuus yhteistyössä neuvotella mahdollisista muutoksia sekä korjauksista, jos projektin edetessä ilmenee epäkohtia. Tällöin myös määrittelydokumentti muokataan vastaamaan todellista tarvetta.

Luvussa 2 annetaan yleiskuvaus sekä käsitellään järjestelmään liittyvät termit. Luvussa 3 esitellään asiakkaan esittämät vaatimukset ohjelmistolle. Luvussa 4 käydään läpi järjestelmä vaatimukset. Luvussa 5 käydään läpi korkean abstraktio tason järjestelmäarkkitehtuuri ja Luvussa 6 käyttötapaukset. Luku 7 koskee järjestelmän elinkaarta.

2 Järjestelmän yleiskuvaus

Ohjelmistotuotantoprojektiryhmä toteuttaa yleiskäyttöisen pokeripalvelimen. Pokeripalvelimen on tarkoitus toimia ympäristönä testattaessa erilaisia tekoälysovelluksia. Palvelin tulee tarjoamaan yleisen rajapinnan, jonka avulla pystytään peluuttamaan erilaisia tietokone- ja ihmispelaajia keskenään.

2.1 sanasto

Sana  Selitys

limit (joskus fixed)

Pokerimuoto, jossa on Kiinteästi rajoitettu panostusmäärä.

no limit  Pokerimuoto, jossa ei ole rajoitettu panostuksien suuruutta.

pot limit Pokerimuoto, jossa maksimipanostus pokeripelissä on pelissä olevan potin suuruinen.

Texas holdem  Suosittu pokerimuoto, pelisäännöt liitteessä 1.

Pelitili Kokoelma käyttäjille kuuluvista pelaajista sekä tekoälypelaajista sekä niiden tiedoista.

Pelilogiikka Kuhunkin pelimuotoon kuuluva pelin eteneminen, lailliset toiminnot

ja vuorot.

Tekoäly Tekoälyn on tarkoitus mahdollistaa tietokoneen pelaaminen itsenäisesti ilman ihmisen ohjausta. Käyttäjät voivat laittaa tekoälysovelluksia (botteja) pelipöytään ja testata näiden käyttämiä algoritmeja.

sit-out pelaaja istuu edelleen pöydässä, mutta hänelle ei jaeta kortteja, eikä hän panosta pottiin

muck  Heitetään käsikortit pois näyttämättä niitä toisille pelaajille.

sokkopanokset Sokkopanokset ovat pakolliset panostukset määrätyillä pelaajilla jo ennen korttien jakamista. Texas Hold’emissa jakajasta seuraava pelaaja laittaa pienen sokkopanoksen (small blind, puolet minimikorotuksesta) ja tästä seuraava suuren sokkopanoksen (big blind, minimikorotuksen verran) pottiin kunkin käden alussa.

Rajapinta Liittymä, jolla eri ohjelmat voivat tehdä pyyntöjä ja vaihtaa tietoja eli keskustella keskenään.

Pelipöydän  Tarkoitetaan tässä toteutettavien pelien

ominaisuudet ominaisuuksia, pelityyppi, pelimuoto, pelaajamäärä, sokkopanosten suuruus.

3 Käyttäjän vaatimukset

Seuraavassa asiakkaan esittämät vaatimukset ohjelmistolle.

• Ohjelmiston on oltava yleiskäyttöinen Ohjelmiston on tarjottava rajapinnat, joiden avulla voidaan testata erilaisia tekoälyratkaisuja peluuttamalla niitä eritasoisia ja tyylisiä tietokone- ja ihmisvastustajia vastaan pokeripeleissä.

• Palvelimella olevia palveluita on voitava käyttää etäkäyttönä Pelaajat sekä tekoälypelaajat liittyvät peliin verkonkautta TCP/IP yhteydellä.

• Ohjelmistossa on oltava vuorovaikutteinen graafinen käyttöliittymä. Ohjelmiston on toteutettava visuaalinen ja vuorovaikutteinen käyttöliittymä, joka mahdollistaa pelaamisen sekä tekoälybottien lisäämisen peliin. Sekä pelien välillä navigoinnin.

• Tekoälypelaajat on pystyttävä käynnistämään ilman graafista liittymää eräajoon

• Ohjelmiston on tarjottava samat rajapinnat pelaajalle ja tekoälypelaajalle

• Palvelin toteuttaa pelilogiikan ja pelaajien syötteiden yhdistämisen

• Pelisääntöjen erottaminen palvelimesta Pelilogiikka on erottu palvelimella erillisiin moduuleihin.

• Ohjelmistolla on pystyttävä pelaamaan Texas holdemista käteispelejä, limit ja no-limit versiona. Vuoroihin on voitava määritellä myös aikaraja. Projektiajan puitteessa toteutetaan myös pot-limit.

• Palvelimen on toteutettava käyttäjänhallinta.

• Pelatuista peleistä sekä käyttäjistä on tallennettava tilastotietoa.

• Parhaillaan pelattavia pelejä on oltava mahdollisuus seurata graafisen käyttöliittymän kautta. Projektiajan puitteessa myös menneitä pelejä

• Ohjelmiston on suoriuduttava tuhansien yhdenaikaisten pelien pelaamisesta sekä pelaajien hallinasta yhtä aikaa

• Ohjelmalla on pystyttävä tekemään uusia pelejä ja valitsemaan asetukset niihin

• Ohjelmistoon toteutetaan projektin aikarajojen puitteessa muita korttipelejä kuten sökö ja omaha.

• Ohjelmassa on oltava mahdollisuus keskustella pelaajien kesken • Palvelimen on mahdollisuuksien mukaan toimittavana alustana muille vuoro-

pohjaisille peleille.

Muita pelejä kuten shakki, back gammon ei toteuteta projektin puitteessa. Rajapinnat sekä palvelin kuitenkin suunnitellaan, niin että muiden vuoropohjaisten pelien toteutus pitäisi onnistua uuden pelilogikka-moduulin sekä sitä vastaavan asiakasohjelman toteuttamisella.

• Ohjelmiston on toimittava tietojenkäsittelytieteen laitoksen ympäristössä.

Palvelinosuuden ohjelmistosta on toimittava laitoksen linux-ympäristössä. Asiakasohjelman tulee toimia sekä windows- että linux-ympäristössä. Projektiryhmä asentaa ohjelmiston laitoksen palvelimelle.

• Käyttäjätili tulee kuulumaan yhteen kolmesta roolista, joista ylempi perii aina alemman oikeudet.

Superkäyttäjä(1), voi nähdä kaikkien kortit. Testaaja(2), voi lisätä botteja peliin. Normaalipelaaja(3), voi luoda ja pelata pelejä.

4 Järjestelmävaatimukset

Asiakkaan vaatimukset järjestelmälle on jaettu viiteen osaan: palvelin, peliaula, pelipöytä ja laadulliset sekä muut vaatimukset Palvelin on peliserveri, joka pitää yllä pelejä joihin pelaajat ja tekoälybotit voivat liittyä. Peliaula tarjoaa liittymän, jolla luodaan uusia pelejä palvelimelle sekä listataan käynnissä olevia pelejä sekä siirrytään itse pelipöytään. Pelipöytä on graafinen vuorovaikutteinen näkymä itse pelitilanteesta. Seuraavassa on määritelty kunkin osan toteutuksen vaatimukset.

Vaatimukset on priorisoitu asteikolla 1-3. 1-prioriteetit toteutetaan ehdottomasti. 2-prioriteetit pyritään myös toteuttamaan. 3-priorioriteetit toteutetaan vain jos aikaa jää yli.

4.1 Palvelin vaatimukset

Tunnus  V0
Nimi:  Yhteydenmuodostaminen palvelimelle

Kuvaus:

Tekoälybotit ja pelaajaohjelmat kommunikoivat palvelimen kanssa etänä. Yhteys luodaan TCP/IP tietoliikenneprotokollalla.

Prioriteetti  1

Tunnus V1

Nimi:  Pelien erottelu toisistaan

Kuvaus:

Serverillä olevat pelit on voitava yksikäsitteisesti erottaa toisistaan, pelien nimien ja muiden peliin vaikuttavien ominaisuuksien perusteella.

Prioriteetti  1
Tunnus  V2
Nimi:  Pelin seuraaminen
Kuvaus:  Palvelin lähettää pelitietoa sitä pyytäville.
Prioriteetti  1
Tunnus  V3
Nimi:  Peliin liittyminen
Kuvaus:  Palvelin liittää pelaajat peleihin pyynnöstä.
Prioriteetti  1
Tunnus  V4
nimi:  Pelistä poistuminen
Kuvaus:  Palvelin poistaa pelaajia peleistä pyynnöstä.
Prioriteetti  1

Tunnus  V5
Nimi:  Pelinhaku
Kuvaus:  Pelejä on voitava hakea pelipöydän ominaisuuksien perusteella.
Prioriteetti  2
Tunnus  V6
Nimi:  Pelaajanhaku
Kuvaus:  Palvelin tarjoaa listan pelipöydistä missä etsitty pelaaja on.
Prioriteetti  2
Tunnus  V7
Nimi:  Uuden pelin luonti
Kuvaus:  Palvelin luo pelin pyynnöstä halutuilla ominaisuuksilla.
Prioriteetti  1
Tunnus  V8
Nimi:  Pelin poisto

Kuvaus:

Pelipöydät, joissa peli jo alkanut eikä enää ole yhtään pelaajaa tai seuraajia poistettava.

Prioriteetti  1
Tunnus  V9
Nimi:  Linkkikatko

Kuvaus:

Mikäli yhteys pelaajaan menetetään kyseinen pelaaja siirretään "sit out"tilaan.

Prioriteetti  1
Tunnus  V10
Nimi:  Keskustelun välitys

Kuvaus:

Palvelimen on välitettävä asiakasohjelmien väliset keskusteluviestit kaikille pöytää seuraaville

Prioriteetti  2
Tunnus  V11
Nimi:  Pelilogiikka

Kuvaus:

Pelilogiikka on toteutettava modulaarisesti. Texas holdemin pelilogiikka aliluvussa 4.1.2

Prioriteetti  1
Tunnus  V12
Nimi:  Pelihistorian tallennus

Kuvaus:

Palvelin ottaa vastaan historiatietoa pelilogiikkamoduuleilta ja tallentaa sen.

Prioriteetti  2

4.1.1 Käyttäjähallinnan vaatimukset

Tunnus  V13
Nimi:  Palvelimelle kirjautuminen

Kuvaus:

Palvelin autentikoi käyttäjän ennalta tallennetun käyttäjätunnuksen ja salasanan perusteella.

Prioriteetti  1
Tunnus  V14
Nimi:  Pelaajatilin luonti

Kuvaus:

Palvelimelle on voitava lisätä uusia käyttäjätilejä. Käyttäjätileillä toteutetaan kolme eri tasoa. Superkäyttäjä(1), voi nähdä kaikkien kortit. Testaaja(2), voi lisätä botteja peliin. Normaalipelaaja(3), voi luoda ja pelata pelejä.

Prioriteetti  1
Tunnus  V15
Nimi:  Pelaajatilin poisto
Kuvaus:  Pelaajatilejä tulee voida poistaa.
Prioriteetti  1
Tunnus  V16
Nimi:  Pelaajatilin tietojen säilytys ja hallinnointi

Kuvaus:

Pelitilillä sijaitsee tilillä luodut tekoälypelaajat sekä pelaajat sekä niiden tiedot, tietoja on pystyttävä myös muokkaamaan ja hallinnoimaan. Rahojen käsittely kuitenkin niin, että pelaajat aloittavat nollasaldosta ja peliin otettava pelivara asettaa saldon miinukselle, jos se ei riitä pelivaraan.

Prioriteetti  1

4.1.2 Pelilogiikka texas holdemille

Ohjelmistossa ensisijaisesti toteutetaan käteispelit texas holdemille. Texas holdemin säännöt tarkemmin liitteessä yksi. Seuraavassa lueteltu vaatimuksia mitä korttipelien logiikkaan tarvitaan.

Tunnus  V17
Nimi:  Sokkopanokset

Kuvaus:

Pelissä on maksettava ensimmäisellä kierrollaan big-blind, sen lisäksi joka kierroksella kaksi kiertävää small-blind (jakajasta vasen) ja big-blind (seuraava vasemmalle). Big blind maksetaan automaattisesti myös peliin liityttäessä. Sit-out tilassa maksamatta jääneet blindit maksetaan takaisin tullessa.

Prioriteetti  1
Tunnus  V18
Nimi:  Jakajan kierto

Kuvaus:

Pokeripeleissä jakaja kiertää myötäpäivää ja panostamiskierrokset aloitetaan sokkopanoksista seuraavasta pelaajasta ja kierretään myötäpäivään.

Prioriteetti  1
Tunnus  V19
Nimi:  Pelinkulku

Kuvaus:

Palvelimen on hoidettava tietojen keruu ja yhdistely asiakasohjelmilta mitä kukin pelaaja tekee ja välitettävä se eteenpäin muille pelaajille, sekä hoidettava pelin kulkua sen mukaan. Pelaajille välitetään verkon yli vain tarpeelliset tiedot.

Prioriteetti  1
Tunnus  V20
Nimi:  Pelimuoto
Kuvaus:  Texas holdemiin toteutetaan limit ja no-limit pelimuodot.
Prioriteetti  1
Tunnus  V21
Nimi:  Pelimuoto/pot-limit
Kuvaus:  Texas holdemiin toteutetaan pot-limit pelimuoto.
Prioriteetti  2

Tunnus  V22
Nimi:  Tulostenlaskenta
Kuvaus:  Ratkaisee pelikäsien arvojärjestyksen.
Prioriteetti  1
Tunnus  V23
Nimi:  Pottien hallinta
Kuvaus:  Rahojen siirtely tulosten laskennan jälkeen.
Prioriteetti  1
Tunnus  V24
Nimi:  Käsihistoria

Kuvaus:

Pelilogiikkamoduuli välittää tiedot pelatuista käsistä palvelimelle, joka tallentaa ne.

Prioriteetti  2

4.2 Peliaulan vaatimukset

Tunnus  V25
Nimi:  Peliaulan hallinnointi

Kuvaus:

Tarjoaa graafisen käyttöliittymän palvelimen kohtiin uusipeli(V7), erinäköiset hakemiset(V5,V6)

Prioriteetti  1
Tunnus  V26
Nimi:  Pelipöytien järjesteleminen

Kuvaus:

Hakuehdoilla haettu lista pelipöydistä on voitava järjestää ominaisuuksiensa perusteella.

Prioriteetti  1
Tunnus  V27
Nimi:  Pelipöydän pelaajalista
Kuvaus:  Aula näyttää valitun pelin pelaajat.
Prioriteetti  1

Tunnus  V28
Nimi:  Pelipöytään siirtyminen
Kuvaus:  Valitusta pelistä on päästävä siirtymään itse pelipöytään.
Prioriteetti  1

4.3 Pokeripöydän vaatimukset

Tunnus  V29
Nimi:  Seuraaminen
Kuvaus:  Pelipöydästä on voitava seurata meneillään olevaa peliä.
Prioriteetti  1
Tunnus  V30
Nimi:  Ulkoasu

Kuvaus:

Pokeripöydän tulee esittää texas holdemiin tarvittavat kortit, panokset, jakaja, potti, vapaat istuimet, pöydässä olevien pelaajien nimet ja rahamäärät sekä pelitoiminnot meneillään olevalla kierroksella.

Laajennettavuus:muut korttipelit kuten omaha, sökö, 7 card-stud.
Prioriteetti  1
Tunnus  V31
Nimi:  Pelitoiminnot
Kuvaus:  Pöydän on tarjottava pelitilanteeseen tarvittavat painikkeet.
Laajennettavuus:muihin peleihin tarvittavat painikkeet, esim. blackjack.
Prioriteetti  1
Tunnus  V32
Nimi:  Pelitilin hallinnointi

Kuvaus: pelipöytä tarjoaa käyttöliittymän palvelimella sijaitsevan pelitilin hallinnointiin ja tarkasteluun.

Prioriteetti  1

Tunnus  V33
Nimi:  Pelaajien lisääminen peliin

Kuvaus:

Pelipöytä tarjoaa mahdollisuuden lisätä pelipöydän vapaisiin paikkoihin tekoäly- tai ihmispelaajia, samalta koneelta voi vuorotellen pelata myös monta ihmispelaajaa. (palvelimen kohta peliin liittyminen)

Prioriteetti  1
Tunnus  V34
Nimi:  Pelistä poistuminen
Kuvaus:  Pelistä on voitava poistaa omat pelaajat sekä tietokonepelaajat.
Prioriteetti  1
Tunnus  V35
Nimi:  Korttien katseleminen

Kuvaus:

Superkäyttäjän tulee olla mahdollista nähdä myös muiden pelaajien kortit.

Prioriteetti  1

Tunnus  V36
Nimi:  Keskustelu

Kuvaus:

Pelipöydässä on pystyttävä keskustelemaan muiden pöytää seuraavien pelaajien kanssa teksti-ikkunassa.

Prioriteetti  1
Tunnus  V37
Nimi:  Muckkaus

Kuvaus:

Käyttöliittymän on tarjottava mahdollisuus pelaajalle näyttää tai piilottaa häviävät kädet kierroksen lopussa. voittokäsi näytetään automaattisesti, paitsi jos kaikki muut pelaajat ovat foldanneet, tällöin tulee olla mahdollisuus vapaaehtoisesti näyttää tai piilottaa myös voittokäsi.

Prioriteetti  1
Tunnus  V38
Nimi  Yhteys

Kuvaus:

Asiakasohjelman on huomattava mikäli yhteys palvelimeen on menetetty esim. tutkimalla yhteyttä tyhjiä paketteja lähettämällä säännöllisesti ja ilmoitettava yhteyskatkosta käyttäjälle.

4.4 Laadulliset vaatimukset

Laadulliset vaatimukset ovat ehdottomia vaatimuksia ja vaikuttavat pääasiallisesti ohjelmiston rakenteeseen ja käytettyihin ratkaisuihin. Laadullisilla vaatimuksilla ei ole prioriteettia.

Toteutuksessa ei oteta myöskään tietoturvallisuutta huomioon, koska järjestelmä on tarkoitettu tutkimuskäyttöön. Arkkitehtuuri toteutetaan kuitenkin tukemaan jälkeenpäin mahdollisesti toteutettavaa tietoliikenteen salausta.

Tunnus  V39
Nimi:  Asennus

Kuvaus:

Palvelinosuuden ohjelmistosta on toimittava laitoksen linuxympäristössä. Asiakasohjelman tulee toimia sekä windows- että linux-ympäristössä. Projektiryhmä asentaa ohjelmiston laitoksen palvelimelle.

Tunnus  V40
Nimi:  Yleiskäyttöisyys

Kuvaus:

Ohjelman rajapinnat on toteutettava niin että pelilogiikka komponentteja voidaan vaihtaa ja uusia asiakasohjelmia eri peleille toteuttaa tulevaisuudessa.

Tunnus  V41
Nimi:  Laajennettavuus

Kuvaus:

Pelipalvelinta tulevaisuudessa pystytään laajentamaan muihin vuoropohjaisiin peleihin, go, shakki jne.

4.5 Muut vaatimukset

Tunnus  V42
Nimi:  Eräajo
Kuvaus:  Tekoälypelaajat ovat pystyttävä käynnistämään eräajoon.
Prioriteetti  1

5 Järjestelmäarkkitehtuuri

Kuva 1 esittää ohjelman arkkitehtuurin korkean tason näkymän. Kuva esittää koko järjestelmän, joka aiotaan toteuttaa.

5.1 Asiakas

Asiakas on loppukäyttäjän koneella pyörivä graafinen komponentti. Asiakaskomponentin avulla loppukäyttäjä voi tehdä, poistaa ja pelata pelejä. Pelejä pystyy pelaamaan usealla paikalla. Käyttöliittymä toteuttaa myös tekoälypelaajien hallinnoinnin ja pelauttamisen.

5.2 Tekoälypelaaja

Tekoälypelaaja on loppukäyttäjän koneella pyörivä käyttöliittymätön komponentti. Komponentin tarkoitus on pelata peliä täysin automaattisesti loppukäyttäjän määrittelemin keinoin.

5.3 Palvelin

Palvelin huolehtii pelilogiikan latauksesta. Palvelin välittää viestit pelilogiikkamoduulien ja (tekoäly)pelaajien kesken. Palvelin tarjoaa rajapinnat pelilogiikkamoduuleille.

6 Käyttötapaukset

Esimerkkikäyttäjänä toimivat Pekka Pokerimestari ja hänen hyvä ystävänsä Kaisa Kaduntallaaja. Pekka työskentelee tietojenkäsittelytieteen Peliikka-laboratoriossa ja tutkii pokeriin liittyviä tekoälyratkaisuja. Kaisa on näyttelijä teatterissa ja joskus vapaa-ajallaan kokoontuu ystäviensä kanssa pokeri-illan viettoon.

Nimi Pokeripalvelimen käyttö ensimmäistä kertaa

Toimijat Pekka Pokerimestari

Kuvaus Pekka on tilannut projektin, joka mahdollistaa helpon pokerin tekoälyalgoritmien testaamisen. Pekalle on tullut tieto, että järjestelmä on valmis. Pekka päättää kokeilla järjestelmää pelaamalla tietokonepelaajaa vastaan muutaman erän Texas Hold’Em peliä. Pekka ei ole käyttänyt järjestelmää ennen, joten hän luo käyttäjätunnuksen itselleen ja kirjautuu sen jälkeen peliin.

Nimi Uuden tekoälyalgoritmin testaaminen ihmispelaajaa vastaan

Toimijat Pekka Pokerimestari

kuvaus Pekka on kehittänyt uuden Texas Hold’em pokerialgoritmin. Pekka testaa algoritmia pelaamalla itse sitä vastaan. Pekka luo uuden pelipöydän itselleen ja tietokonepelaajalle ja yrittää parhaansa mukaan pelata. Hän arvioi algoritmin kelpoisuuden sitä käyttävän tietokonepelaajan menestyksellä.

Nimi Uuden tekoälyalgoritmin testaaminen tietokonepelaajia vastaan

Toimijat Pekka Pokerimestari

kuvaus Pekka on kehittänyt uuden Texas Hold’em pokerialgoritmin. Pekka haluaa saada takeita algoritmin kelpoisuudesta ja pelauttaa sitä useita kertoja toisia algoritmeja käyttäviä tietokonepelaajia vastaan. Pekka laittaa tietokonepelaajat pelaamaan vastakkain ja tulkitsee algoritmin kelpoisuuden pelin tuloksista.

Nimi Ihmispelaajien analysointi

Toimijat Pekka Pokerimestari

kuvaus Pekka tutkii Texas Hold’em pokerin olemusta empiirisesti seuraamalla ihmispelaajien peliä. Pekka kutsuu tutkimukseen osallistuvia testipelaajia pelaamaan, tekee heille pelipöydän ja seuraa itse peliä siihen osallistumatta. Pekka saa hyödyllistä tutkimusaineistoa reaaliajassa ja jälkeenpäin pelin tuloksista.

Nimi Aloittelevan pelaajan liittyminen peliin

Toimijat Kaisa Kaduntallaaja

kuvaus Pekka on pyytänyt Kaisaa osallistumaan testiinsä ennalta määräämässään testipelipöydässä. Kaisa käynnistää asiakasohjelman tavoitteenaan auttaa testissä.

Nimi Useamman tietokonepelaajan testaaminen useaa ihmistä vastaan

Toimijat Pekka Pokerimestari

kuvaus Pekka haluaa vertailla kahta Texas Hold’em algoritmia toisiaan vastaan useiden muiden pelaajien pelissä. Hän etsii pöydän johon hän ja tietokonepelaaja kummallekin algoritmille mahtuvat ja lisää tietokonepelaajat ja itsensä peliin. Pekka arvioi pelaajien menestystä pelin tuloksista.

Nimi Bottipelaajan luominen

Toimijat Pekka Pokerimestari

kuvaus Pekka luo uuden bottipelaajan nimeltä Skynet voidakseen kilpailuttaa sitä ihmis- tai bottipelaajia vastaan. Pekka määrittää itsensä botin omistajaksi.

Nimi Bottipelaajan poistaminen

Toimijat Pekka Pokerimestari

kuvaus Pekalle on kertynyt niin monta bottipelaajaa, että Pekan on vaikea löytää haluamansa niiden joukosta. Pekka poistaa yhden bottipelaajista.

7 Ohjelmiston elinkaari

Projektin tarkoituksena on toteuttaa ensimmäinen prototyyppi pokeripalvelimesta. Prototyypillä olisi tarkoitus pystyä testaamaan Texas Hold’emin tiettyjä variaatioita ihmis- ja tekoälypelaajien kesken. Ohjelmisto on suunniteltu tukemaanlaajennettavuutta. Projektiryhmä lopettaa työskentelyn ohjelmiston kanssa kurssin loputtua.

1

Liite 1. Texas hold’em pelin määrittely