Projekt:2021/LightsOut: Unterschied zwischen den Versionen

1.865 Bytes hinzugefügt ,  22:21, 6. Apr. 2022
Zeile 77: Zeile 77:
     loc = toLocation(e.getX(), e.getY())
     loc = toLocation(e.getX(), e.getY())
      
      
     # Programmiere hier, was passieren soll
     # Zelle des Mausklicks prüfen und ggf. Farbe setzen
    if bg.getColor(loc) == Color.black:
        if player == 1:
            bg.fillCell(loc, Color.green)
        else:
            bg.fillCell(loc, Color.blue)
           
    # Sieg prüfen und ggf. Feld einfärben
    if pruefeSieg():
        if player == 1:
            bg.clear(Color.green)
        else:
            bg.clear(Color.blue)
    # ... sonst Unentschieden prüfen und ggf. färben
    elif pruefeUnentschieden():
        bg.clear(Color.yellow)
      
      
     # Tipps: https://qr-lernhilfen.de/mobileUrl?url=ef8305935be33077
     # Spieler wechseln
    if player == 1:
        player = 2
    else:
        player = 1
      
      
     refresh()
     refresh()
    return True
def pruefeSieg():
    # Zeilen und SPalten prüfen
    for i in range(3):
        if pruefeZeile(i):
            return True
        elif pruefeSpalte(i):
            return True
    # Diagonalen prüfen
    return pruefeDiagonalen()
# prüft beide Diagonalen
def pruefeDiagonalen():
    if bg.getColor(Location(0,0)) != Color.black and bg.getColor(Location(0,0)) == bg.getColor(Location(1,1)) and bg.getColor(Location(1,1)) == bg.getColor(Location(2,2)):
        return True
    if bg.getColor(Location(2,0)) != Color.black and bg.getColor(Location(2,0)) == bg.getColor(Location(1,1)) and bg.getColor(Location(1,1)) == bg.getColor(Location(0,2)):
        return True
    return False
# Prüft genau eine Zeile
def pruefeZeile(y):
    return bg.getColor(Location(0,y)) != Color.black and bg.getColor(Location(0,y)) == bg.getColor(Location(1,y)) and bg.getColor(Location(1,y)) == bg.getColor(Location(2,y))
# Prüft genau eine Spalten
def pruefeSpalte(x):
    return bg.getColor(Location(x,0)) != Color.black and bg.getColor(Location(x,0)) == bg.getColor(Location(x,1)) and bg.getColor(Location(x,1)) == bg.getColor(Location(x,2))
# Prüft, ob noch schwarze (freie) Felder existieren
def pruefeUnentschieden():
    for i in range(3):
        for j in range(3):
            if bg.getColor(Location(i,j)) == Color.black:
                return False
     return True
     return True


8.581

Bearbeitungen