Hallo ,
wir haben in der Schule heute ein TicTactoe spiel programmiert
bei der Aufgabe die Linien für das Feld zu bestimmen bin ich gescheitert.
Mir wurde dann geholfen,aber nicht erklärt was das für Werte in den Klammern sind.
Könnte mir jmd beschreiben was diese Werte für eine Bedeutung haben?
self.spielfeld.create_line(100,0,100,300,fill="black")
self.spielfeld.create_line(200,0,200,300,fill="black")
self.spielfeld.create_line(0,100,300,100,fill="black")
self.spielfeld.create_line(0,200,300,200,fill="black")
self.spielfeld.create_line(0,300,300,300,fill="black")
Bedeutug
Hi DavidS
Willkommen in unserem Forum. Das sind Linien die mit den zugehörigen Koordinatenpunkt auf eine Canvas gezeichnet werden.
Hier das ausführbare Skript:
Gruss wuf
Willkommen in unserem Forum. Das sind Linien die mit den zugehörigen Koordinatenpunkt auf eine Canvas gezeichnet werden.
Hier das ausführbare Skript:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
#~~ For Python 2.x
import Tkinter as tk
except ImportError:
#~~ For Python 3.x
import tkinter as tk
class Spielfeld:
def __init__(self, app_win):
self.spielfeld = tk.Canvas(app_win)
self.spielfeld.pack(fill='both', expand=True)
# Zeichne Linien mit den zugehörigen Koordinatenpunkte x0, y0, x1, y1
# Zeichne Line = create_line(x0, y0, x1, y1, fill="Farbe")
self.spielfeld.create_line(100,0,100,300,fill="black")
self.spielfeld.create_line(200,0,200,300,fill="black")
self.spielfeld.create_line(0,100,300,100,fill="black")
self.spielfeld.create_line(0,200,300,200,fill="black")
self.spielfeld.create_line(0,300,300,300,fill="black")
app_win = tk.Tk()
app_win.title('Tic Tac Toe')
app_win.geometry('300x300')
spielfeld = Spielfeld(app_win)
app_win.mainloop()
Take it easy Mates!
@wuf: die Klasse `Spielfeld` ist jetzt nicht wirklich nötig. Entweder ist ein Spielfeld ein Canvas, dann brauchst Du Vererbung, oder Du hast einfach nur eine Funktion, um ein Spielfeld zu erzeugen. Statt die Größe des Fensters vorzugeben und zu hoffen, dass das Canvas dieses ausfüllt und dann die richtige Größe hat, solltest Du die Größe des Canvas vorgeben und die Fenstergröße automatisch entsprechend des Inhaltes bestimmen lassen. Das Packen findet immer auf der übergeordneten Ebene statt.
@DavidS: der letzte Strich scheint mir überflüssig.
Code: Alles auswählen
#!/usr/bin/env python3
import tkinter as tk
def create_game_board(frame):
board = tk.Canvas(frame, width=300, height=300)
# Zeichne Linien mit den zugehörigen Koordinatenpunkte x0, y0, x1, y1
# Zeichne Line = create_line(x0, y0, x1, y1, fill="Farbe")
board.create_line(100,0,100,300,fill="black")
board.create_line(200,0,200,300,fill="black")
board.create_line(0,100,300,100,fill="black")
board.create_line(0,200,300,200,fill="black")
return board
def main():
app_win = tk.Tk()
app_win.title('Tic Tac Toe')
board = create_game_board(app_win)
board.pack()
app_win.mainloop()
if __name__ == '__main__':
main()
Hi Sirius3
Danke für deinen Hinweis. Wusste schon dass es noch einfacher zu lösen wäre. Da die von DavidS gezeigten Zeilen mit einem self. beginnen nahm ich an er verendet für seine Aufgabe ein Klasse.
Gruss wuf
Danke für deinen Hinweis. Wusste schon dass es noch einfacher zu lösen wäre. Da die von DavidS gezeigten Zeilen mit einem self. beginnen nahm ich an er verendet für seine Aufgabe ein Klasse.
Gruss wuf
Take it easy Mates!