lehrkraefte:blc:informatik:ffprg1-2020:klassen

This is an old revision of the document!


Klassen

Eine Klasse verbindet Daten und Funktionen zu einer Einheit. Das erlaubt es, innerhalb der Klasse quasi “globale” Variablen zu haben.

tictactoe.py
class TicTacToe:
    # Konstruktur, wird bei der Kreation der Instanz aufgerufen
    def __init__(self):
        # leeres Feld
        self.feld = [[0,0,0] for i in range(3)]
 
    def clear(self):
        for x in range(3):
            for y in range(3):
                self.feld[x][y] = 0
 
    # Standard-Methode zur Umwandlung in einen String
    def __str__(self):
        symbols = [" ", "O", "X"]
        res = ""
        for y in range(3):
            for x in range(3):
                res += " "+symbols[self.feld[x][y]]+" "
                if (x<2):
                    res += "|"
            res += "\n"
            if (y<2):
                res += "---+---+---\n"
        return res
 
    # Setzt ein Feld, wenn es leer ist
    def set(self,x,y,what):
        if (self.feld[x][y]==0):
            self.feld[x][y] = what
        else:
            raise RuntimeError("Feld ist schon belegt!")
 
    def isEmpty(self,x,y):
        return self.feld[x][y]==0
 
 
# Initialierung einer Instanz    
t = TicTacToe()
# Ruft automatisch __str__ auf, zur Umwandlung in einen String
print(t)
t.set(1,1,1);
print(t)
t.set(0,0,2);
print(t)
t.set(0,0,1); # Generiert einen Fehler.
  • lehrkraefte/blc/informatik/ffprg1-2020/klassen.1582560053.txt.gz
  • Last modified: 2020/02/24 17:00
  • by Ivo Blöchliger