2016-12-05 1 views
-4

사용자가 생성 할 거북이 수를 결정한 후 프로그램을 설정하려고합니다. 내 현재 솔루션은 사용자로부터 int 입력을 받고 아래 코드를 실행하는 것입니다 (코드는 계속 큰 숫자로 반복됩니다). 나는 루프를 가두려고 시도했지만, 결국 모두 무작위 움직임을 수행해야하기 때문에 문제가 발생합니다. 어떤 도움이 필요합니까?Python에서 사용자 입력이 거북이를 생성합니다.

if turtNum >= 1: 
    turt1 = Turtle() 
    turt1.color(turtColour[0]) 
    turt1.shape('turtle') 

    turt1.penup() 
    turt1.goto(0, -10) 
    turt1.pendown() 

    if turtNum >= 2: 

    turt2Name = input('Enter a name for the second turtle: ') 

    turt2 = Turtle() 
    turt2.color(turtColour[1]) 
    turt2.shape('turtle') 

    turt2.penup() 
    turt2.goto(0, -25) 
    turt2.pendown() 

이 내가 시도했지만이 오류가있어 코드 우리를 기대하지 않고

turtName = [] 
maxLengthList = turtNum 
while len(turtName) < maxLengthList: 
    name = input('Enter the names for the turtles: ') 
    turtName.append(name) 

for i in turtName: 
    turtName[i] = Turtle() 
    turtName[i].color(turtColour[0]) 
    turtName[i].shape('turtle') 

    turtName[i].penup() 
    turtName[i].goto(0, -10) 
    turtName[i].pendown() 
+3

문제는 무엇인가 : 다음은 모든 임의의 움직임을 저장, 개인 거북이 정보를 입력, 거북이의 번호를 입력에 대해 가지고 있던 문제를 해결 거친 구현은? –

+1

임의의 위치 (좌표로 이동)를 사용하려면 random.random (cordinate_min, cordinate_max)를 사용하여 랜덤 코디안을 얻을 수 있습니다. – harshil9968

+0

@ChrisMueller 잘 하나의 루프에서 모든 거북이를 생성하려고합니다. 현재 코드가 쓰여지는 대신 정수를 입력하고 거북이를 그려야합니다 – user7252321

답변

0

당신은 거북이 경주의 개념을 매달려 수 없습니다 "목록 지수는 정수 또는 조각해야가 STR,하지" 그것이 일어나는 것을보고 흥분해.

from turtle import Turtle, Screen 
from itertools import cycle 
from random import randrange 

MAX_TURTLES = 20 
LANE_WIDTH = 25 
FONT_SIZE = 18 
FONT = ("Arial", FONT_SIZE, "normal") 
COLORS = cycle(['red', 'green', 'blue', 'cyan', 'black', 'yellow']) 
FINISH_LINE = 350 
START_LINE = -200 
NAME_LINE = START_LINE - 150 
DELAY = 100 # milliseconds 
MAX_STEP = 10 

turtles = dict() 

def race(): 
    for name, turtle in turtles.items(): # should shuffle turtles 
     turtle.forward(randrange(MAX_STEP + 1)) 

     if turtle.xcor() > FINISH_LINE: 
      return # the race is over 

    screen.ontimer(race, DELAY) 

magic_marker = Turtle(visible=False) 
magic_marker.penup() 

turtNum = 0 

while not 1 <= turtNum <= MAX_TURTLES: 
    turtNum = int(input('Enter the number of turtles: ')) 

for i in range(turtNum): 

    name = input('Enter a name for the turtle #{}: '.format(i + 1)) 

    turtle = Turtle(shape="turtle") 
    turtle.color(next(COLORS)) 

    y_offset = LANE_WIDTH * i - LANE_WIDTH * turtNum // 2 

    magic_marker.color(turtle.pencolor()) 
    magic_marker.goto(NAME_LINE, y_offset - FONT_SIZE/2) 
    magic_marker.write(name, font=FONT) 

    turtle.penup() 
    turtle.goto(START_LINE, y_offset) 
    turtle.pendown() 

    turtles[name] = turtle 

magic_marker.color('red') 
magic_marker.goto(FINISH_LINE, -FINISH_LINE) 
magic_marker.pendown() 
magic_marker.goto(FINISH_LINE, FINISH_LINE) 
magic_marker.penup() 

screen = Screen() 

screen.ontimer(race, DELAY) 

screen.exitonclick() 

enter image description here

관련 문제