4 svar
177 visningar
mrlill_ludde är nöjd med hjälpen
mrlill_ludde 1047 – Fd. Medlem
Postad: 17 jan 2019 12:35 Redigerad: 17 jan 2019 12:36

Försöker förstå den här python koden

Koden är: https://github.com/RaemondBW/Python-Minesweeper/blob/master/minesweeper.py

Det allra första, alltså detta kod:

__________________

class boardSpot(object):
value = 0
selected = False
mine = False

def __init__(self):
self.selected = False

def __str__(self):
return str(boardSpot.value)

def isMine(self):
if boardSpot.value == -1:
return True
return False
_______________

Så nu ska jag försöka översätta detta/läsa av: 

Vi har alltså en klass brädplacering

"Ett objekt i Python kan beskrivas som en modul som har ett visst antal fördefinierade funktioner och/eller variabler.

 1. Variabler som tillhör ett objekt kallas för attribut
2. Funktioner som tillhör ett objekt kallas för metoder"

Och vi har ett attribut här som heter object. Men jag förstår inte varför man sätter i den klassen värde=0 och varför minor,den valda ska vara falsk? 

def __init__(self):
self.selected = False ... Här Init-metoden kallas även för konstruktormetoden. Det är den som anropas först när vi skapar en ny objekt.
Och då har vi skrivit self.selected för att säga att den ska tillhöra den klassen, brädplacering?

__str__ gör att vi konverterar det till en sträng. Och stänger den funktionen med return.

 

Men det sista kodstycket, def isMine(self):
if boardSpot.value == -1:
return True
return False.
Om värdet på brödet får -1, så kan vi både få falsk värde på det och ett sant värde på det? Hänger inte med på hur dom hänger ihop, de är ju varandras motsatser?

 

Oich sen så gör han en klass för hela spelet, med funktioner och variabler.

emilg 478
Postad: 17 jan 2019 12:41

 isMine-funktionen returnerar True om boardSpot.value == -1, om det inte är true kommer det returna false.

mrlill_ludde 1047 – Fd. Medlem
Postad: 17 jan 2019 13:03
emilg skrev:

 isMine-funktionen returnerar True om boardSpot.value == -1, om det inte är true kommer det returna false.

 okej, en i första kodstycket; så om värdet är 0 i boardSpot, då är valda (selected=False) och det kommer inte finnas minor, heller? och inte heller någon matris(a.k.a bräde)

haraldfreij 1315
Postad: 17 jan 2019 14:57

Angående isMine: om man når en return så avbryts metoden, så om man nåt return True så kommer man därefter inte nå return False. Funktionen gör alltså samma sak som den lite längre, men lite tydligare,

def isMine(self):
    if boardSpot.value == -1:
        return True
    else:
        return False

Om en boardSpot (dessa representerar rutor på brädet) har värde 0 så betyder det att varken rutan eller någon av dess grannar innehåller en mina.

mrlill_ludde 1047 – Fd. Medlem
Postad: 17 jan 2019 16:40
haraldfreij skrev:

Angående isMine: om man når en return så avbryts metoden, så om man nåt return True så kommer man därefter inte nå return False. Funktionen gör alltså samma sak som den lite längre, men lite tydligare,

def isMine(self):
    if boardSpot.value == -1:
        return True
    else:
        return False

Om en boardSpot (dessa representerar rutor på brädet) har värde 0 så betyder det att varken rutan eller någon av dess grannar innehåller en mina.

 jag tänkte mer att man alltid gav attribut värdet 0 i början. mesen ok

Svara Avbryt
Close