2016-09-02 9 views
-2

Also versuche ich diese Frage auf meinem Programmierkurs zu vervollständigen, und es beinhaltet das Zeichnen von Sachen mit der Schildkröte. Grundsätzlich versuche ich, eine Skyline der Stadt zu zeichnen, also muss das Programm mehrere Eingaben vom Benutzer auf einer Linie (die Höhen der Gebäude) lesen. Ich kann es bekommen, um ein Gebäude zu zeichnen, aber es verwendet nur den letzten y-Wert.Wie man die Schildkröte bewegt, wohin ich gehen möchte

from turtle import * 
h = input("Heights: ") 
y = h.split() 
nxc = -200 

#Code for the background 

fillcolor("darkslategray") 
for i in y: 
    for i in y: 
    nyc = i 
    pencolor("black") 
    pendown() 
    begin_fill() 
    goto(nxc, nyc) 
    right(90) 
    forward(20) 
    right(90) 
    forward(nyc) 
    right(90) 
    forward(20) 
    right(90) 
    forward(nyc) 
    end_fill() 
    nxc = nxc + 20 

Hilfe bitte!

Hier ist ein Bild: Description of the question Some of the specifics

+0

Warum hast du zweimal "für i in y:"? Muss man zweimal "y" durchlaufen? – Harrison

+0

Warum wiederholst du 'für i in y' zweimal hintereinander? – RPGillespie

Antwort

0

Nehmen Sie Ihre zweite for Schleife aus:

from turtle import * 
h = input("Heights: ") 
y = h.split() 
nxc = -200 

#Code for the background 

fillcolor("darkslategray") 
for i in y: 
    nyc = i 
    pencolor("black") 
    pendown() 
    begin_fill() 
    goto(nxc, nyc) 
    right(90) 
    forward(20) 
    right(90) 
    forward(nyc) 
    right(90) 
    forward(20) 
    right(90) 
    forward(nyc) 
    end_fill() 
    nxc = nxc + 20 

Diese zweite Schleife wird immer das Ende erreichen, die Aktualisierung nyc jedes Mal, bevor es austritt. Daher wird nyc für jede Iteration auf den endgültigen Wert vorgehen, bevor Python zu Ihrem Zeichnungscode gelangt.

Verwandte Themen