在颜色选择中调用用户输入 - Python 乌龟
Calling User Input in Color Selection - Python Turtle
我不太确定我是否正确地表述了问题 - 目前我的代码如下:
import turtle
t = turtle.Turtle()
colors = {'red', 'blue', 'green', 'black'}
def drawSquare(t,x,y,size,fill_color):
t.penup() # Pickup turtle
t.goto(x,y) # Move Turtle
t.pendown() # Drop turtle
t.fillcolor(fill_color)
t.begin_fill() # Shape Fill begin
for square in range(0,4):
t.forward(size) # move forward
t.right(90) # turn 90 degrees
t.end_fill() # Shape Fill End
def drawBoard():
square_color = turtle.textinput("Color Selection", "Enter a color:") # Set color to be user defined
pos_x = turtle.numinput("Position Selection", "Enter a Position for X") # Set position x to be user defined
pos_y = turtle.numinput("Position Selection", "Enter a Position for Y") # Set position y to be user defined
box_size = turtle.numinput("Box Size Selection", "Enter a Box Size (1-50)") # Set box size to be user defined
for squareOne in range(0,8): # Create a chess board dimension
for squareTwo in range(0,8):
drawSquare(t,pos_x+squareTwo*box_size,pos_y+squareOne*box_size,box_size,square_color)
square_color = 'Black' if square_color == 'white' else 'white'
square_color = 'Black' if square_color == 'white' else 'white'
drawBoard() # Call drawBoard Function
turtle.done()
drawBoard 函数中的 square_color = 'Black' 行出现问题。我的目标是根据分配给变量 "square_color" 的用户输入来指定方块的颜色。不幸的是,我真的不太确定该怎么做——或者这是否是最有效的方法。
如果用户选择一种颜色,只有第一个方块是那个颜色,板的其余部分后面是编码的内容。不知道如何命名这个问题,否则我很乐意去打猎我。
谢谢!
这对我有用:
t = turtle.Turtle()
colors = {'red', 'blue', 'green', 'black'}
def drawSquare(t,x,y,size,fill_color):
t.penup() # Pickup turtle
t.goto(x,y) # Move Turtle
t.pendown() # Drop turtle
t.fillcolor(fill_color)
t.begin_fill() # Shape Fill begin
for square in range(0,4):
t.forward(size) # move forward
t.right(90) # turn 90 degrees
t.end_fill() # Shape Fill End
def drawBoard():
square_color = turtle.textinput("Color Selection", "Enter a color:") # Set color to be user defined
square_color = 'white' if square_color == 'black' else square_color # Changed here
pos_x = turtle.numinput("Position Selection", "Enter a Position for X") # Set position x to be user defined
pos_y = turtle.numinput("Position Selection", "Enter a Position for Y") # Set position y to be user defined
box_size = turtle.numinput("Box Size Selection", "Enter a Box Size (1-50)") # Set box size to be user defined
for squareOne in range(0,8): # Create a chess board dimension
for squareTwo in range(0,8):
drawSquare(t,pos_x+squareTwo*box_size,pos_y+squareOne*box_size,box_size,square_color if (squareTwo+squareOne)%2 == 0 else 'black') # Changed Here
drawBoard() # Call drawBoard Function
turtle.done()
因此,我只更改了两行:
我已将 square_color = 'white' if square_color == 'black' else square_color
移动到您代码的较早部分,这样如果用户输入白色,它会将颜色更改为黑色,这样您就可以拥有不同的颜色,而不是一大块。
我还更改了调用 drawSquare()
函数的位置,这样当您调用它时,它会决定是添加黑色方块,还是添加您选择的颜色之一。我这样做是通过使用模数来查看 squareOne
和 squareTwo
的组合是否均匀,然后使用它来更改颜色。
我不太确定我是否正确地表述了问题 - 目前我的代码如下:
import turtle
t = turtle.Turtle()
colors = {'red', 'blue', 'green', 'black'}
def drawSquare(t,x,y,size,fill_color):
t.penup() # Pickup turtle
t.goto(x,y) # Move Turtle
t.pendown() # Drop turtle
t.fillcolor(fill_color)
t.begin_fill() # Shape Fill begin
for square in range(0,4):
t.forward(size) # move forward
t.right(90) # turn 90 degrees
t.end_fill() # Shape Fill End
def drawBoard():
square_color = turtle.textinput("Color Selection", "Enter a color:") # Set color to be user defined
pos_x = turtle.numinput("Position Selection", "Enter a Position for X") # Set position x to be user defined
pos_y = turtle.numinput("Position Selection", "Enter a Position for Y") # Set position y to be user defined
box_size = turtle.numinput("Box Size Selection", "Enter a Box Size (1-50)") # Set box size to be user defined
for squareOne in range(0,8): # Create a chess board dimension
for squareTwo in range(0,8):
drawSquare(t,pos_x+squareTwo*box_size,pos_y+squareOne*box_size,box_size,square_color)
square_color = 'Black' if square_color == 'white' else 'white'
square_color = 'Black' if square_color == 'white' else 'white'
drawBoard() # Call drawBoard Function
turtle.done()
drawBoard 函数中的 square_color = 'Black' 行出现问题。我的目标是根据分配给变量 "square_color" 的用户输入来指定方块的颜色。不幸的是,我真的不太确定该怎么做——或者这是否是最有效的方法。
如果用户选择一种颜色,只有第一个方块是那个颜色,板的其余部分后面是编码的内容。不知道如何命名这个问题,否则我很乐意去打猎我。
谢谢!
这对我有用:
t = turtle.Turtle()
colors = {'red', 'blue', 'green', 'black'}
def drawSquare(t,x,y,size,fill_color):
t.penup() # Pickup turtle
t.goto(x,y) # Move Turtle
t.pendown() # Drop turtle
t.fillcolor(fill_color)
t.begin_fill() # Shape Fill begin
for square in range(0,4):
t.forward(size) # move forward
t.right(90) # turn 90 degrees
t.end_fill() # Shape Fill End
def drawBoard():
square_color = turtle.textinput("Color Selection", "Enter a color:") # Set color to be user defined
square_color = 'white' if square_color == 'black' else square_color # Changed here
pos_x = turtle.numinput("Position Selection", "Enter a Position for X") # Set position x to be user defined
pos_y = turtle.numinput("Position Selection", "Enter a Position for Y") # Set position y to be user defined
box_size = turtle.numinput("Box Size Selection", "Enter a Box Size (1-50)") # Set box size to be user defined
for squareOne in range(0,8): # Create a chess board dimension
for squareTwo in range(0,8):
drawSquare(t,pos_x+squareTwo*box_size,pos_y+squareOne*box_size,box_size,square_color if (squareTwo+squareOne)%2 == 0 else 'black') # Changed Here
drawBoard() # Call drawBoard Function
turtle.done()
因此,我只更改了两行:
我已将 square_color = 'white' if square_color == 'black' else square_color
移动到您代码的较早部分,这样如果用户输入白色,它会将颜色更改为黑色,这样您就可以拥有不同的颜色,而不是一大块。
我还更改了调用 drawSquare()
函数的位置,这样当您调用它时,它会决定是添加黑色方块,还是添加您选择的颜色之一。我这样做是通过使用模数来查看 squareOne
和 squareTwo
的组合是否均匀,然后使用它来更改颜色。