Valgfri oppgave uke 8 (endret 11/10)

Dette er en fortsettelse fra forrige ukes innleveringsoppgave, som du m? ha gjort for at denne oppgaven skal gi mening. Har du ikke gjort denne oppgaven, b?r du heller begynne med den og se hvor langt du kommer.

Oppgave 5

Filnavn: kamp.py og test.py

Denne oppgaven er en del av en oppgave som var frivillig p? innleveringen. Hvis du ikke gjorde oppgaven eller ikke fikk den til, kan du f? hjelp underveis. Hvis du har f?tt til denne, kan du g? rett p? oppgave 6.

I denne oppgaven vil du b?de endre p? klassen Kamp og teste endringene du gj?r etterp?. At denne oppgaven er frivillig betyr at innleveringen egentlig er stor nok uten denne oppgaven, men om du har lyst og tid, s? vil du f? tilbakemelding p? denne ogs?.

Vel er det mange tilfeldigheter i fotball, men alt er ikke helt tilfeldig - vi skal n? utvide spill-metoden til ? bli mer realistisk ved ? ta hensyn til f?lgende:

Oppgave 6 (valgfri konkurranse)

Filnavn: DELTAKERNAVN.py

Vi har brukt antall m?l for og imot etter de 24 f?rste serierundene til ? gi lagene f?lgende antall m?l scoret mot et gjennomsnittlig lag (rett og slett gjennomsnittet per kamp for alle lagene, som vi antar er n?rt nok s? langt uti sesongen):

# dette er listen over lag som skal spille (representert ved Lag-objekter)
lagliste = []
lagliste.append(Lag("Bod?/Glimt  ", 2.6, 1.2))
lagliste.append(Lag("Brann       ", 1.8, 1.1))
lagliste.append(Lag("HamKam      ", 1.4, 2.1))
lagliste.append(Lag("Haugesund   ", 0.9, 1.4))
lagliste.append(Lag("Molde       ", 2.2, 1.1))
lagliste.append(Lag("Lillestr?m  ", 1.7, 1.5))
lagliste.append(Lag("Odd         ", 1.2, 1.3))
lagliste.append(Lag("Rosenborg   ", 1.3, 1.7))
lagliste.append(Lag("Sandefjord  ", 1.5, 1.9))
lagliste.append(Lag("Sarpsborg 08", 1.9, 1.6))
lagliste.append(Lag("Stab?k      ", 1.0, 1.5))
lagliste.append(Lag("Str?msgodset", 1.1, 1.3))
lagliste.append(Lag("Troms?      ", 1.5, 1.0))
lagliste.append(Lag("Viking      ", 2.1, 1.4))
lagliste.append(Lag("V?lerenga   ", 1.4, 1.7))
lagliste.append(Lag("Aalesund    ", 0.8, 2.2))

La alle disse lagene spille 100 000 kamper hjemme (og like mange borte) mot et gjennomsnittlig lag, som vi definerer slik:

# Gjennomsnittlig 3.04 m?l per kamp gj?r at et gjennomsnittlig lag blir slik:
snitt = Lag("SNITT", 1.52, 1.52)

Koden du leverer skal v?re klassen Kamp, kopiert til en ny fil med ditt navn.

M?let her er ? finjustere spill()-metoden i klassen Kamp slik at alle lagene faktisk (i snitt) slipper inn s? n?rt som mulig riktig antall m?l mot det gjennomsnittlige laget. Du f?r h?yere poengsum jo n?rmere du kommer for s? mange av lagene som mulig.

Oppgave 7 (valgfri konkurranse)

Filnavn: DELTAKERNAVN.py

Det finnes mange l?sninger p? oppgave 6 som gir riktig antall m?l for og imot, i snitt, for alle lagene. Forskjellen p? disse l?sningene er hvor stor hjemmefordelen er. Videreutvikle spill()-metoden fra oppgave 6 slik at n?r det gjennomsnittlige laget snitt spiller mot seg selv, blir det hjemmeseier (ikke borteseier eller uavgjort) 50% av gangene. Du skal fortsatt ha gjennomsnittlig antall m?l p? 3.04. Hvem klarer ? komme n?rmest en hjemmefordel som gir sier 50% av gangene til to gjennomsnittlige lag?

Oppgave 8 (valgfri konkurranse)

Filnavn: DELTAKERNAVN.py

Kombinér oppgave 6 og 7: