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.
isMine-funktionen returnerar True om boardSpot.value == -1, om det inte är true kommer det returna false.
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)
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.
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 FalseOm 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