Seite 1 von 1

tkinter canvas...

Verfasst: Freitag 10. November 2017, 18:32
von jan.b

Code: Alles auswählen

liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
variabel = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
vari = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
varis = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

liste1 =[]
liste2 =[]
liste3 =[]
liste4 =[]
liste5 =[]
liste6 =[]


from tkinter import*
tk = Tk()
import turtle
#t = turtle.Pen()
import time
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
import random


for i in range(30):
    while True:
        random.shuffle(liste)
        random.shuffle(variabel)
        random.shuffle(vari)
        random.shuffle(varis)
        random.choice(liste)
        random.choice(variabel)
        random.choice(vari)
        random.choice(varis)
        liste1.append(liste[5])
        liste2.append(variabel[5])
        liste3.append(vari[5])
        liste4.append(varis[5])
        print(liste1)
        print(liste2)
        print(liste3)
        print(liste4)
        canvas.create_rectangle(liste1, liste2, liste3, liste4)
        liste1 =[]
        liste2 =[]
        liste3 =[]
        liste4 =[]
        liste5 =[]
        liste6 =[]
        break
wie können die Quadrate an verschiedenen Koordinaten auf der Leinwand spornen?

Re: tkinter canvas...

Verfasst: Samstag 11. November 2017, 22:09
von Sirius3
@jan.b: `liste`, `variabel`, `vari` und `varis` sind Namen, die schlechter nicht sein könnten. liste1 bis 4 wird an einer Stelle definiert, wo sie gar nicht gebraucht werden, liste5 und 6 werden gar nicht benutzt.
Daher gilt die Regel, Variablen erst dann einzuführen wenn sie auch wirklich gebraucht werden.
Importe sollten immer ganz oben stehen, *-Importe vermeiden. `turtle` und `time` werden nicht verwendet. Eine while-Schleife, die immer exakt einmal durchlaufen wird, ist überflüssig, eine ganze Liste zu mischen, um dann ein Element draus zu entnehmen, ist Verschwendung. Das Ergebnis von choice wird nicht verwendet. Deine Art und Weise, Listen mit einem Element zu erzeugen ist sehr unübersichtlich. `create_rectangle` arbeitet eigentlich mit Zahlen und nicht mit Listen.

Aufgeräumt sähe das so aus:

Code: Alles auswählen

import random
import tkinter as tk

x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
y1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
x2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
y2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()

for i in range(30):
    canvas.create_rectangle(random.choice(x1), random.choice(y1),
        random.choice(x2), random.choice(y2))
Zur Frage: ich versteh sie nicht.

Re: tkinter canvas...

Verfasst: Samstag 11. November 2017, 23:22
von jan.b
wenn ich soviel zeit hätte wie du, dann würde ich das auch machen. :D

Re: tkinter canvas...

Verfasst: Sonntag 12. November 2017, 01:44
von __deets__
Deinen miesen Code hinzuschreiben hat garantiert mehr Zeit gekostet....

Re: tkinter canvas...

Verfasst: Montag 13. November 2017, 19:24
von jan.b
aber ich weiß es nicht besser. und er geilt sich daran auf.

Re: tkinter canvas...

Verfasst: Montag 13. November 2017, 21:22
von noisefloor
Hallo,
aber ich weiß es nicht besser
Also das deine Variablennamen schlecht sind, ist dir hier schon oft gesagt worden. Zumindest das hättest du ändern können...
und er geilt sich daran auf
Das du ein mieses Sozialverhalten gegenüber denen hast, die dir in ihrer Freizeit freiwillig helfen, hast du ja leider auch schon des öfteren eindrucksvoll demonstriert. Hier schon wieder. Also wenn dir mal hier im Forum keiner mehr Antworten sollte -> der Griff an die eigene Nase ist der Grund...

Gruß, noisefloor

Re: tkinter canvas...

Verfasst: Montag 13. November 2017, 22:06
von jan.b
:roll: er will mir ja gar nicht helfen. und er kennt den zusammenhang auch nicht. deswegen sehen manche dinge falsch aus, obwohl sie richtig sind.

Re: tkinter canvas...

Verfasst: Dienstag 14. November 2017, 00:44
von __deets__
Die Dinge die du gezeigt hast sind zusammenhanglos falsch. Weswegen man dich darauf hinweist. Das du dann pissig wirst wie ein verzogener 12jähriger ist dein Problem. Und reduziert die Hilfsbereitschaft.