Python用户输入棋盘

时间:2017-10-16 22:28:44

标签: python input turtle-graphics

对于我的任务,我正在尝试制作一个5 x 5的棋盘格,用户可以选择颜色和方形尺寸。我得到了如何根据用户输入制作方形尺寸和颜色,并且在如何启动循环或如何创建5 x 5棋盘方面遇到了一些麻烦。我只是不确定我能做些什么来移动乌龟制作5x5板。到目前为止我已经完成了很多工作,如果有人能帮助我开始,我会非常感激!

import turtle

def main():
    length = int(input("Enter a desired length (from 1-150.)"))
    keepGoing = 'y'

    while keepGoing == 'y':
        print("What color would you like to draw?")
        print("    Enter 1 for Black")
        print("          2 for Blue")
        print("          3 for Red")
        print("          4 for Green")
        choice = int(input("          Your choice?"))

        if choice == 1:
            square(0,0,length,'black')
        elif choice == 2:
            square(0,0,length,'blue')
        elif choice == 3:
            square(0,0,length,'red')
        elif choice == 4:
            square(0,0,length,'green')
        else:
            print("ERROR: only enter 1-4.")

def square(x, y, width, color):
    turtle.clear()
    turtle.penup()            # Raise the pen
    turtle.goto(x, y)         # Move to (X,Y)
    turtle.fillcolor(color)   # Set the fill color
    turtle.pendown()          # Lower the pen
    turtle.begin_fill()       # Start filling
    for count in range(4):    # Draw a square
        turtle.forward(width)
        turtle.left(90)
    turtle.end_fill()
#calling main function
main()

1 个答案:

答案 0 :(得分:0)

首先,您开发了用户界面而没有任何接口 - 您可能会在下次开始相反的方式。其次,不要重新发明布尔值(例如while keepGoing == 'y')。第三,对于用于 绘制 一个方格的代码量,我们可以 标记 整个网格:

from turtle import Turtle, Screen

COLORS = ["Black", "Blue", "Red", "Green"]
GRID = 5
STAMP_UNIT = 20

def main():
    length = int(input("Enter a desired length (from 1-150): "))
    keepGoing = True

    while keepGoing:
        print("What color would you like to draw?")
        for i, color in enumerate(COLORS, start=1):
            print("    Enter {} for {}".format(i, color))
        choice = int(input("          Your choice? "))

        if 1 <= choice <= len(COLORS):
            grid(-length * GRID // 2, -length * GRID // 2, length, COLORS[choice - 1])
            keepGoing = False
        else:
            print("ERROR: only enter 1-{}.".format(len(COLORS)))

def grid(x, y, width, color):
    tortoise = Turtle('square', visible=False)
    tortoise.shapesize(width / STAMP_UNIT)
    tortoise.color(color)
    tortoise.penup()

    for dy in range(0, GRID):
        tortoise.goto(x, y + width * dy)

        for dx in range(dy % 2, GRID, 2):
            tortoise.setx(x + width * dx)

            tortoise.stamp()

screen = Screen()

main()

screen.exitonclick()

<强> USAGE

> python3 test.py
Enter a desired length (from 1-150): 30
What color would you like to draw?
    Enter 1 for Black
    Enter 2 for Blue
    Enter 3 for Red
    Enter 4 for Green
          Your choice? 2

<强>输出

enter image description here

这是一个完美的例子,表明冲压可以使绘图更简单,更快速。