import random #import math class Brikke: def __init__(self, tegn): self._tegn = tegn self._gjettet = False self._snudd = False def hentTegn(self): # trenger for å kunne sammenlign return self._tegn def snu(self): # for å vite om vi skal vise tegnet eller x if self._snudd: self._snudd = False else: self._snudd = True def settGjettet(self): self._gjettet = True def __str__(self): # bruker til å skrive ut if self._gjettet or self._snudd: return self._tegn else: return "x" def __eq__(self, annenBrikke): if annenBrikke == None: return False else: return self._tegn == annenBrikke.hentTegn() class Spillebrett: def __init__(self, listeMedTegn, storrelse): self._listeMedTegn = listeMedTegn self._storrelse = storrelse self._rutenett = [] self._snuddBrikke1 = None self._snuddBrikke2 = None for radnr in range(self._storrelse): raden = [] for kolonnenr in range(self._storrelse): nyttTegn = self._bestemTegn() raden.append(Brikke(nyttTegn)) self._rutenett.append(raden) def _bestemTegn(self): indeks = random.randint(0, len(self._listeMedTegn) - 1) tegnet = self._listeMedTegn[indeks] self._listeMedTegn.remove(tegnet) return tegnet def skrivUtBrett(self): print("\n"*20) for rad in self._rutenett: for brikke in rad: print(brikke, "", end="") print("") def _sjekkLikhet(self): if self._snuddBrikke1 == None or self._snuddBrikke2 == None: return if self._snuddBrikke1 is self._snuddBrikke2: print("Samme brikke") #self._snuddBrikke1.snu() elif self._snuddBrikke1 == self._snuddBrikke2: self._snuddBrikke1.settGjettet() self._snuddBrikke2.settGjettet() print("\nLike brikker!") else: self._snuddBrikke1.snu() self._snuddBrikke2.snu() print("Ikke like!\n") self._snuddBrikke1 = None self._snuddBrikke2 = None def _utenfor(self, radnr, kolnr): if radnr < 0 or radnr > self._storrelse: return True if kolnr < 0 or kolnr > self._storrelse: return True return False def velgBrikke(self, radnr, kolnr): if self._utenfor(radnr, kolnr): print("Ugyldig indeks") return brikken = self._rutenett[radnr][kolnr] brikken.snu() self.skrivUtBrett() if self._snuddBrikke1 == None: self._snuddBrikke1 = brikken elif self._snuddBrikke2 == None: self._snuddBrikke2 = brikken self._sjekkLikhet() def hovedprogram(): tegnListe = ["$", "$", "@", "@", "£", "£", "%", "%", "{", "{", "!", "!", "*", "*", "^", "^"] brettet = Spillebrett(tegnListe, 4) print("Velkommen til MEMORY! Tast s for å avslutte") brettet.skrivUtBrett() trekk = input("\nVelg en brikke, oppgi koordinater (rad, kol): \n> ") while trekk != "s": try: koord = trekk.split(",") rad = int(koord[0]) kol = int(koord[1]) brettet.velgBrikke(rad, kol) except: print("Ugyldig input, prøv igjen") trekk = input("\nVelg brikke, oppgi koordinater (rad, kol): \n> ") hovedprogram()