Last active
November 10, 2025 12:23
-
-
Save horstjens/947188ab48389cecb719fe10c4b8c69c to your computer and use it in GitHub Desktop.
termin 09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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__) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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":"Bucht", | |
| "Bucht":"Zapfen"} | |
| i = 0 | |
| for y in range(self.höhe): | |
| for x in range(self.breite): | |
| stein = Puzzlestein(nummer=i, | |
| beschädigt=False, | |
| unten=None, | |
| oben=None, | |
| links=None, | |
| rechts=None) | |
| # kante oben? weil erste Reihe ? | |
| if y == 0: | |
| stein.oben = "Kante" | |
| # kante unten weil unterste Reihe ? | |
| if y == self.höhe - 1 : #weil python beginnt mit 0 zu zählen | |
| stein.unten = "Kante" | |
| # kante links ? | |
| if x == 0: | |
| stein.links = "Kante" | |
| # kante rechts | |
| if x == self.breite - 1: | |
| stein.rechts = "Kante" | |
| # zufällig zapfen und buchten vergeben | |
| if stein.rechts is None: | |
| stein.rechts = random.choice(("Zapfen", "Bucht")) | |
| if stein.unten is None: | |
| stein.unten = random.choice(("Zapfen", "Bucht")) | |
| if stein.links is None: | |
| # vorgängerstein hat index [i-1] oder self.steine[-1] | |
| vorgänger = self.steine[-1] | |
| vorgänger_form = vorgänger.rechts | |
| stein.links = gegenteil[vorgänger_form] | |
| if stein.oben is None: | |
| # vorgängerstein hat index[i-self.breite] | |
| vorgänger = self.steine[i-self.breite] # nachbar oben | |
| vorgänger_form = vorgänger.unten | |
| stein.oben = gegenteil[vorgänger_form] | |
| # stein zu den anderen steinen im spiel dazutun | |
| self.steine.append(stein) | |
| i += 1 | |
| 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.nummer, self.links, self.rechts, | |
| self.oben, self.unten) | |
| return text | |
| # instanzen erzeugen | |
| if __name__ == "__main__": | |
| p = Puzzlespiel("wasserfall.jpg", 50, 20) | |
| #print(Lager.meine_spiele) | |
| #stein = Puzzlestein(55, "Rand", "Zapfen", "Bucht", "Bucht") | |
| #print(stein) | |
| p.erzeuge_steine() | |
| #print(p.steine) | |
| for s in p.steine: | |
| print(s) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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