Sorry für den Titel, mir ist irgendwie nicht viel eingefallen.
Ich hab heute angefangen, mir mal Python anzusehen. Und um besser vergleichen zu können, will ich mal mein 'Game of Life' auch in Python schreiben.
Was mir jetzt Kopfzerbrechen bereitet: Ich habe ein zweidimensionales Array, wo sich an einem bestimmten Punkt entweder ein . oder eine # befindet. Wenn sich dort eine # befindet, will ich rausfinden, wieviele Nachbar-# es dazu gibt.
Versucht habe ich, beispielsweise den Punkt links neben dem gerade zu testenden Punkt zu prüfen, indem ich matrix[x-1][y] überprüfe, dummerweise gibt das eine Fehlermeldung, auch wenn ich das in eine if-Abfrage stecke, die erst ausgeführt wird, wenn x-1 >= 0 wäre. Also so beispielsweise:
if i+1 <= rows and j-1 >= 0: if matrix[i+1][j-1] == '#': neighbours = neighbours + 1
Wie könnte ich das denn sonst machen? Ich nehme an, Python beschwert sich auch darüber, wenn die if-Abfrage garnicht ausgeführt wird. Irgendjemand eine Idee?
edit:
Das mit dem Fehler konnte ich beseitigen, aber irgendwie klappt das immer noch nicht so richtig, ich hänge mal den Quellcode an, das Problem liegt in der next_step Funktion irgendwie...
http://www.ubuntuusers.de/paste/2920/
edit2:
Ich bin vielleicht so blöd... hab nen Teil, den ich zum Testen reingemacht hab, nicht mehr rausgemacht... kein Wunder, dass das sponn.