Naloge iz programiranja

Igra Memo

V davnih časih (ko še ni bilo računalnikov) smo se igrali Memo. To je igra za dva igralca.

Pravila:

  • Prvi igralec izbere poljubno kombinacijo štirih barv od šestih.
    Barve so Y – rumena, O – oranžna, R – rdeča, B – modra, G – zelena, V - vijolična, pri čemer se barve ne ponavljajo, npr. YRGB.
  • Drugi igralec poskuša ugotoviti soigralčevo kombinacijo.
  • Prvi igralec mu označi (na istoležnih mestih)
    • s črno (B) – če je uganil barvo in lego,
    • z belo (W) – če je uganil le barvo,
    • nič ( ) – če nista pravi niti barva niti lega.
  • Drugi igralec poskuša ponovno.
  • Igra se konča, ko drugi igralec ugane kombinacijo (zmaga), ali če v šestih poskusih ne ugotovi kombinacije (izgubi).

V modernih časih se skoraj nihče več ne igra s sovrstniki, ampak le z računalniki. Zato napišite program, ki bo simuliral igro prvega igralca.

Progam naj vsebuje metode:

  1. Metodo nakljucnaKombinacija, ki vrne poljubno kombinacijo štirih barv od šestih v obliki niza - npr. "YRGB".
  2. Metodo odgovorPrimerjave, ki primerja dve kombinaciji in vrne odgovor, ki vsebuje informacije o pravilnosti barv in lege. Tako kombinaciji barv kot vrnjena informacija so nizi.
  3. Metodo main v kateri od igralca progam zahteva kombinacijo (največ šestkrat) in mu sporoči, kako blizu je pravi rešitvi. Na koncu naj še izpiše, ali je igralec zmagal ali izgubil.

Komentar:

Pravila igre lahko spreminjamo:

  • Popravimo metodo, ki vrne naključno kombinacijo štirih barv tako, da se barve lahko ponavljajo. (POZOR! Popraviti je potrebno tudi metodo, ki bo taka niza primerjala.)
  • Odgovor, ki ga vrne metoda primerjave, spremenimo tako, da bo igralec izvedel le, koliko barv ima pravo lego, koliko barv je samo pravih in koliko je zgrešenih, ne pa tudi, katere.

Namig