Zitat:
"Die Idee des "Game of Life" gibt es schon lange. Life wurde vom Mathematiker John Conway 1970 erfunden. Die Grundidee ist, dass jede Zelle acht Nachbarn hat, d.h. es liegt eine in viele kleine Quadrate eingeteilte Fläche vor. Folgende Regeln sind definiert, die festlegen, wann eine Zelle lebendig wird, lebendig bleibt und stirbt:"
So.... jetzt stehe ich da ganz am Anfang, habe mit python nie viel gemacht, aber das soll sich ja ändern...
Also... als erstes wollte ich mal die "Spielfläche" generieren... um viele Felder zu haben, die man, um ein Muster erzeugen zu können, auch gut bedienen kann, dachte ich da an "button".... viele davon.... habe jetzt erst mal 50 in einer Reihe, sollen 50 Reihen werden, aber ist ja auch mehr möglich...
Nach einem Click auf ein Feld muss man natürlich wissen, in welcher Zeile, Spalte oder welche laufende Nummer der button hat, um da dann einzufärben, nen Punkt reinzumachen, was auch immer.....
Problem..... ich kriege die Information nicht raus, wenn ich da was auslesen will, meckert er das an...
Ich tacker den Code mal eben hier hin..... und ja, ich weiß, dass es Google gibt, ich weiß auch, dass man da mehr Grundlagen anlesen muß, aber ich weiß eben auch, dass Fragen immer die schnellste Methode ist

# 30.06.2021
# Ein/Ausgabe, Datum, Uhrzeit
#
from tkinter import *
import time
import poplib
counter = 0
led_counter = 0
i = 0;
feld_str = [];
btn = [];
# Hier wird im Sekundentakt ausgegeben
#-------------------------------------
counter = 0
def counter_label(label):
def count():
global counter
global bereit_flag
bereit_flag = 0
counter += 1
label.config(text=str(counter))
label.after(1000, count) # hier erneuter Aufruf... oder so
dateandtime = time.strftime("%d.%m.%Y %H:%M:%S")
labelZahl1 = Label(master=tkFenster, bg='#FFCFC9', text = dateandtime)
labelZahl1.grid(row=0, column=0, padx='5', pady='5', sticky='ew')
if counter > 0:
bereit = Button(master=tkFenster, text='Warte. ', width='10', bg='#FBD975', command="")
bereit.grid(row=0, column=14, padx='5', pady='5')
if counter > 1:
bereit = Button(master=tkFenster, text='Warte.. ', width='10', bg='#FBD975', command="")
bereit.grid(row=0, column=14, padx='5', pady='5')
if counter > 2:
bereit = Button(master=tkFenster, text='Warte... ', width='10', bg='#FBD975', command="")
bereit.grid(row=0, column=14, padx='5', pady='5')
if counter > 3:
bereit = Button(master=tkFenster, text='Warte.... ', width='10', bg='#FBD975', command="")
bereit.grid(row=0, column=14, padx='5', pady='5')
if counter > 4:
bereit = Button(master=tkFenster, text='Bereit', width='10', bg='#00D900', command="")
bereit.grid(row=0, column=14, padx='5', pady='5')
bereit_flag = 1
count()
#----------------------------------------------------------------------------------------------
# Wird aufgerufen, wenn der START- button gedrückt wird
def buttonStartClick():
if bereit_flag == 1:
print ("Taste gedrückt")
i=0;
while i<50:
print("Taste:", i,btn)
i = i+1;
clicked_button = event.GetEventObject()
print ("Name des Buttons:", clicked_button.GetName())
#----------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------
# Fenster wird geöffnet
#print (".")
tkFenster = Tk()
tkFenster.title('Life 0.0') # Überschrift des Fensters
tkFenster.wm_geometry("500x700") # Grösse des Fensters
#-------------------------------------------------------------------------
# Label für die Ausgabe Datum und Uhrzeit
labelZahl1 = Label(master=tkFenster, bg='#FFCFC9', text='Datum und Uhrzeit ') # wird überschrieben!
labelZahl1.grid(row=0, column=0, padx='5', pady='5', sticky='ew')
#-------------------------------------------------------------------------
# Label mit der Beschriftung Datum und Uhrzeit
labelZahl2 = Label(master=tkFenster, bg='#f1f1f1', text=' Datum Uhrzeit ')
labelZahl2.config(font=('Arial', 6))
labelZahl2.grid(row=1, column=0, padx='5', pady='3', sticky='ew')
#-------------------------------------------------------------------------
# Ein/Ausgabefeld (weiss)
entryZahl2 = Entry(master=tkFenster, bg='white', width='14')
entryZahl2.grid(row=0, column=10, padx='15', pady='10', sticky='ew')
#-------------------------------------------------------------------------
# Label Ein-Ausgabefeld
labelErgebnis = Label(master=tkFenster, bg='#f1f1f1', width='14', text='Anzahl aktiv')
labelErgebnis.grid(row=1, column=10, padx='15', pady='5', sticky='ew')
#-------------------------------------------------------------------------
# Starttaste
buttonStart = Button(master=tkFenster, text='START', width='5', bg='#FBD975', command=buttonStartClick)
buttonStart.grid(row=5, column=14, padx='5', pady='5')
#-------------------------------------------------------------------------
#Button als Anzeige, dass Programm bereit
bereit = Button(master=tkFenster, text='Warte...', width='10', bg='#FBD975', command="")
bereit.grid(row=0, column=14, padx='5', pady='5')
#-------------------------------------------------------------------------
# Starten des Tickers 1 Sekunde
counter_label(labelZahl1)
#-------------------------------------------------------------------------
# Tastenfeld
while i<50:
btn.append(Button(master=tkFenster, text='',width ='2',bg='#FBD975') )
btn=Button(master=tkFenster, text='', width='2', bg='#FBD975', command=buttonStartClick)
btn.config(font=("Arial",4))
btn.place(x=0+i*10, y=300)
i = i+1
#-------------------------------------------------------------------------
# Aktivierung des Fensters
tkFenster.mainloop()