Kierros 9, tehtävä 2

Yksinkertaisen luokan kirjoittaminen (180 p)

Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:

Opetusmonisteen ja luentojen lisäksi voit tutustua aiheeseen katsomalla olio-ohjelmointia käsitteleviä videoita sivulla http://www.cse.hut.fi/fi/opetusmateriaali/videoprojekti/python.html

Tässä tehtävässä sinun ei tarvitse kirjoittaa lainkaan pääohjelmaa, vaan sinun tehtäväsi on kirjoittaa olion ominaisuudet ja toiminnot määrittelevä luokka.

Luo uusi projekti tehtava9_2 ja siihen moduuli pelaaja. Kirjoita tähän moduuliin luokka Pelaaja erään tietokonepelin yhden pelaajan kuvaamiseen. Kopioi myös samaan projektiin toinen moduuli pelaajatesti. Se sisältää testipääohjelman, jonka avulla voit testata kirjoittamasi luokan toimintaa. Älä muuta moduulin pelaajatesti sisältöä mitenkään.

Luokalla Pelaaja on seuraavat kentät

Määrittele luokkaan seuraavat metodit (jos metodien yhteydessä ei ole kerrottu mitään paluuarvosta, metodin ei tarvitse palauttaa mitään):

Kun olet kirjoittanut luokan valmiiksi, voit testata sitä ajamalla valmiiksi kirjoitettua testipääohjelmaa pelaajatesti.py. Älä tee mitään muutoksia pelaajatesti-ohjelmaan. Jos Eclipse valittaa virheistä tässä ohjelmassa, kysymys on todennäköisesti siitä, että sinun Pelaaja-luokastasi puuttuu vielä sellaisia ominaisuuksia, joita pelaajatesti-moduulin pääohjelma käyttää. Huomaa, että kaikki esimerkkiajossa näkyvät tulostukset on tehty valmiissa testipääohjelmassasi. Sinun ei tarvitse kirjoittaa luokkaasi yhtään tulostuskäskyä.

Kun luokkasi näyttää toimivan oikein sitä testipääohjelmalla testatessa, palauta Gobliniin tiedosto pelaaja.py.

Esimerkkejä ohjelman (testipääohjelman) suorituksesta:

[ohjelman suoritus alkaa]
Anna ensimmaisen pelaajan nimi.
Teemu Teekkari
Anna toisen pelaajan nimi.
Fanny Fyysikko
1. pelaajan tiedot aluksi:
Nimi: Teemu Teekkari
Pelin lukumaara: 0
Ennatys: 0
Keskiarvo: 0.00

2. pelaajan tiedot aluksi:
Nimi: Fanny Fyysikko
Pelin lukumaara: 0
Ennatys: 0
Keskiarvo: 0.00

Lisataan pelaajille pelituloksia...
Kuinka monen pelin tulokset lisataan 1. pelaajalle?
3
Anna seuraavan pelin pisteet.
150
Anna seuraavan pelin pisteet.
200
Anna seuraavan pelin pisteet.
125
Kuinka monen pelin tulokset lisataan 2. pelaajalle?
2
Anna seuraavan pelin pisteet.
180
Anna seuraavan pelin pisteet.
155
Pelaajien tiedot pisteiden lisayksen jalkeen:
Nimi: Teemu Teekkari
Pelin lukumaara: 3
Ennatys: 200
Keskiarvo: 158.33
Nimi: Fanny Fyysikko
Pelin lukumaara: 2
Ennatys: 180
Keskiarvo: 167.50

Ensimmainen pelaaja on parempi kuin toinen.

Pelaajien tiedot __str__-metodilla:
Teemu Teekkari, pelien lukumaara 3, ennatys 200 pistetta.
Fanny Fyysikko, pelien lukumaara 2, ennatys 180 pistetta.
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa, osa käyttäjän antamista pisteistä on negatiivisia]
Anna ensimmaisen pelaajan nimi.
Tiina Teekkari
Anna toisen pelaajan nimi.
Risto Rakentaja
1. pelaajan tiedot aluksi:
Nimi: Tiina Teekkari
Pelin lukumaara: 0
Ennatys: 0
Keskiarvo: 0.00

2. pelaajan tiedot aluksi:
Nimi: Risto Rakentaja
Pelin lukumaara: 0
Ennatys: 0
Keskiarvo: 0.00

Lisataan pelaajille pelituloksia...
Kuinka monen pelin tulokset lisataan 1. pelaajalle?
5
Anna seuraavan pelin pisteet.
-100
Anna seuraavan pelin pisteet.
400
Anna seuraavan pelin pisteet.
-200
Anna seuraavan pelin pisteet.
350
Anna seuraavan pelin pisteet.
300
Kuinka monen pelin tulokset lisataan 2. pelaajalle?
0
Pelaajien tiedot pisteiden lisayksen jalkeen:
Nimi: Tiina Teekkari
Pelin lukumaara: 3
Ennatys: 400
Keskiarvo: 350.00
Nimi: Risto Rakentaja
Pelin lukumaara: 0
Ennatys: 0
Keskiarvo: 0.00

Ensimmainen pelaaja on parempi kuin toinen.

Pelaajien tiedot __str__-metodilla:
Tiina Teekkari, pelien lukumaara 3, ennatys 400 pistetta.
Risto Rakentaja, pelien lukumaara 0, ennatys 0 pistetta.
[ohjelman suoritus päättyy]

Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta