Commit 317ff428 authored by M1888's avatar M1888

speksi

parent dab043b8
# lottokone
# Lottokone - TTOS0300 kurssin harjoitustyö
Joeli Hokkanen / M1888@student.jamk.fi
Dokumentaatioon **[doc/spec.md](TÄSTÄ.)**
TTOS0300 kurssin harkkatyö
\ No newline at end of file
# Lottokone
TTOS0300 kurssin harjoitustyö.
Joeli Hokkanen / M1888@student.jamk.fi
## Sovelluksen yleiskuvaus
Tarkoituksena on tehdä peli, joka näyttää miten hölmöä lottoaminen käytännössä on. Pelin voittaa, kun voittaa lotossa päävoiton, ja pisteet tulevat siitä kuinka vähän olet saanut tilisi miinukselle.
Tätä varten loton toimintaa tulisi siis simuloida mahdollisimman tarkasti. Tämä sisältää mm.:
- 7 numeroa (1-40) per lottorivi, lisänumerot
- simuloituja pelaajia (tuhansia), joiden riveistä ja niiden hinnasta potti muodostuu
- pelaajalle mahdollisuus valita omat vakiorivit, ja arpoa automaattisesti rivejä
- simuloitujen pelaajien voitot
Lisää pohdintaa ominaisuuksista:
- Asetukset ja pisteet tullaan tallentamaan paikalliseen SQLite-kantaan
- Suorituskyvyn kannalta kaikkien simuloitujen pelaajien satunnaisesti luotujen lottorivien tarkastus joka kierroksella kuulostaa raskaalta. Harkitaan ehkä massojen kohdalla vain todennäköisyyteen perustuvaa voittomäärettä?
## Pelin kulku
Peli mittaa vuosien ja viikkojen kulumista, joka viikko suoritetaan yksi lottoarvonta kuten oikeastikin. Alkupäivä voisi olla vaikka kuluvan vuoden alku. Pelaajalla on alussa tietty määrä *rahaa*, ja mahdollisuus syöttää *vakiorivejä*, jotka pysyvät viikosta toiseen samana. Lisäksi voi määritellä *arparivien* määrän, jotka ovat siis joka arvontaan uudelleen arvottavia rivejä.
Kun halutut rivit on syötetty, laitetaan peli käyntiin. Peli luo simuloituja pelaajia, jotka lottoavat oikean pelaajan kanssa. Jokainen lottorivi maksaa tietyn määrän (esim. 1€), ja peli pitää kirjaa lottoriveistä muodostuvasta voittopotista, sekä pelaajan tilin saldosta.
Tilin saldon meneminen miinukselle tulee olemaan luultavasti väistämätöntä. Peli ei kuitenkaan tähän pääty, vaan saat jatkaa tilin vinguttamista miinukselle rajattomasti. Tarkoituksena onkin voittaa lotossa päävoitto häviten ennen sitä mahdollisimman vähän rahaa.
Kun päävoitto osuu kohdalle, ilmoittaa peli siitä, ja ottaa pistesaldoksi tilin saldon ennen kuin sille on juuri kohdalle osunut päävoitto lisätty. Tästä saadaan pistetaululle pisteet.
## Käyttöympäristö ja käytetyt teknologiat
Peli tullaan toteuttamaan C# ja XAML -kielillä WPF:ää käyttäen. Kohdealustana on Windows sekä .NET Framework 4.6.
Tietojen säilyttämiseen ohjelma tulee käyttämään SQLiteä, ja C#:n [https://www.nuget.org/packages/System.Data.SQLite](System.Data.SQLite) -pakettia.
Harkintalistalla on myös toteuttaa käyttöliittymä [https://github.com/benruehl/adonis-ui](AdonisUIn avulla), mikäli aikaa tähän tutustumiseen jää.
## Käyttäjäroolit
Peli on paikallinen yksinpeli, ja käyttäjärooleja on siten vain yksi: Pelaaja.
## Toteutettavat toiminnot
- [ ] Yleinen käyttöliittymä
- [ ] Rahan/pisteiden tarkastelu
- [ ] Lottosimulaatiosta tulostetta ja statistiikkaa, jota näkee pelin aikana
- [ ] Vakiorivejen syöttö
- [ ] Arparivien määrittely
- [ ] Lottosimulaation asetusten säätö (mm. pelaajien määrä, rivin hinta, ...)
- [ ] Scoreboard
## Käyttötapauskaavio
TODO ...
## Luokkamalli
Alustava luokkakaavio ohjelman komponenteista:
![](luokkakaavio-v1.png)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment