Skip to content

Instantly share code, notes, and snippets.

@horstjens
Last active November 10, 2025 12:23
Show Gist options
  • Select an option

  • Save horstjens/947188ab48389cecb719fe10c4b8c69c to your computer and use it in GitHub Desktop.

Select an option

Save horstjens/947188ab48389cecb719fe10c4b8c69c to your computer and use it in GitHub Desktop.
termin 09
# zuordnung von Puzzlesteinen zu Puzzlespielen kann auf
# verschiende Arten erfolgen
class Lager:
meine_spiele = [] # class variable
class Puzzlespiel:
def __init__(self, bild, anzahl_steine, zustand):
self.bild = bild
self.anzahl_steine = anzahl_steine
self.zustand = zustand
# self referenziert DIESE Instanz
Lager.meine_spiele.append(self)
self.steine = [] # leere Liste
class Puzzlestein:
def __init__(self, zustand, anzahl_glatten_Kanten, anzahl_zapferl, anzahl_buchten):
self.zustand = zustand
self.anzahl_glatten_Kanten = anzahl_glatten_Kanten
self.anzahl_zapferl = anzahl_zapferl
self.anzahl_buchten = anzahl_buchten
# instanzen erzeugen
Puzzlespiel("pferd.jpg", 500, "gut")
Puzzlespiel("wasserfall.jpg", 1000, "leicht beschädigt")
Puzzlespiel("wiese.jpg", 200, "gut")
for p in Lager.meine_spiele:
#print("alle attribute dieser instanz")
#print(p.__dict__) # zeigt alle eigenschaften vom puzzlespiel
p.steine.append(Puzzlestein("gut", 0, 4, 0))
p.steine.append(Puzzlestein("gut", 1, 3, 1))
p.steine.append(Puzzlestein("gut", 0, 2, 2))
for spiel in Lager.meine_spiele:
print("spiel instanz:")
print(spiel.__dict__)
print("spielsteine:")
for steinchen in spiel.steine:
print(steinchen.__dict__)
# zuordnung von Puzzlesteinen zu Puzzlespielen kann auf
# verschiende Arten erfolgen
class Lager:
meine_spiele = [] # class variable
class Puzzlespiel:
def __init__(self, bild, breite, höhe):
self.bild = bild
self.breite = breite
self.höhe = höhe
self.anzahl_steine = breite * höhe
# self referenziert DIESE Instanz
Lager.meine_spiele.append(self)
self.steine = [] # leere Liste
class Puzzlestein:
def __init__(self, nummer, oben, unten, links, rechts, beschädigt=False):
self.nummer = nummer
self.oben = oben
self.unten = unten
self.links = links
self.rechts = rechts
self.beschädigt = beschädigt
# instanzen erzeugen
if __name__ == "__main__":
Puzzlespiel("wasserfall.jpg", 50, 20)
print(Lager.meine_spiele)
# zuordnung von Puzzlesteinen zu Puzzlespielen kann auf
# verschiende Arten erfolgen
import random
class Lager:
meine_spiele = [] # class variable
class Puzzlespiel:
def __init__(self, bild, breite, höhe):
self.bild = bild
self.breite = breite
self.höhe = höhe
self.anzahl_steine = breite * höhe
# self referenziert DIESE Instanz
Lager.meine_spiele.append(self)
self.steine = [] # leere Liste
def erzeuge_steine(self):
gegenteil = {"zapfen":"loch",
"loch":"zapfen"}
i = 0
for y in range(self.höhe):
for x in range(self.breite):
pass
#stein = Puzzlestein(nummer=i,
class Puzzlestein:
def __init__(self, nummer, oben, unten, links, rechts, beschädigt=False):
self.nummer = nummer
self.oben = oben
self.unten = unten
self.links = links
self.rechts = rechts
self.beschädigt = beschädigt
def __str__(self):
text ="#{} links:{} rechts:{} oben:{} unten:{}"
text = text.format(self.links, self.rechts,
self.oben, self.unten)
# instanzen erzeugen
if __name__ == "__main__":
Puzzlespiel("wasserfall.jpg", 50, 20)
print(Lager.meine_spiele)
import os # operation system
#https://docs.python.org/3/library/os.html
# os.path.join
# zugriff auf datei "rex.jpg" im Ordner "Hund":
# unter linux und macOS: folder/file
# unter windows: folder\file
# os.path.join wählt immer das richtige Verbindungszeichen
dateiname = os.path.join("Hund", "rex.jpg")
# os.name .. zeight betriebssystem an
print("Betriebsystem:", os.name)
# os.getcwd() ... zeigt current work directory
print(os.getcwd())
# os.walk ... durchsucht (rekursiv!) dateien und ordner
#for root, dirs, files in os.walk('.'):
# #print(root, dirs, files)
# print("============================")
# print("derzeit:", root)
# print("=============================")
# print("---- (unter)verzeichnisse: ----")
# for d in dirs:
# print(d)
# print("----- Dateien ----")
# for file in files:
# print(file)
# input("bitte enter drücken")
# pathlib
import pathlib
for root, dirs, files in pathlib.Path(".").walk():
print("======root ist: ===========================")
print(root)
print("===========================================")
print("---------- folders: ---------------")
for d in dirs:
print(d)
print("- - - - - - files - - - - - - - ")
for f in files:
print(f)
print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.")
input("Enter drücken")
# os.call ... ruft ein anderes Programm direkt vom Betriebssystem auf (z.B. calc.exe )
# bessere Alternative subprocess
import subprocess
subprocess.call("pluma") # started (im Labor) den Editor pluma
# sys ... System
import sys #https://docs.python.org/3/library/sys.html
# liste der argumente ... das erste argument ist immer der
# python-filename
# die elemente der Liste sind immer strings
# bsp: programm starten mit python termin09_001.py abc 123
print("sys.argv ist", sys.argv)
#sys.exit() # beendet ein programm sofort
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment