如何从列表坐标绘制函数?

问题描述

我有一个列表,该列表存储我想在其上绘制标志的位置的值,但是该位置存储为A OR G而不是数字值,这意味着我在绘制它时遇到麻烦(无法绘制字母) ...)。我认为解决此问题的方法是为每个字母分配一个数值,然后在绘图标志函数中将其绘制为X,Y线。

for competitor,direction in random_moves():

if competitor == 'Competitor A':
    turtle.penup()
    if direction == 'Left':
        if positions[0][2] != 'A':
            positions[0][0] -= HORIZONTAL
            positions[0][2] = chr(ord(positions[0][2]) - 1)
    elif direction == 'Right':
        if positions[0][2] != 'G':
            positions[0][0] += HORIZONTAL
            positions[0][2] = chr(ord(positions[0][2]) + 1)
    elif direction == 'Up':
        if positions[0][3] != 7:
            positions[0][1] += VERTICAL
            positions[0][3] += 1
    elif direction == 'Down':
        if positions[0][3] != 1:
            positions[0][1] -= VERTICAL
            positions[0][3] -= 1

    turtle.setpos(positions[0][:2]) #MAKE A = 1 
    turtle.write('ABC',align='left',font=20)
    turtle.dot(20,"blue")
    occupied[0].append((positions[0][2],positions[0][3]))

我还想知道为什么turtle.write('ABC',align ='left',font = 20)和turtle.dot(20,“ blue”)命令在正确的位置可以正常工作,但是如果我尝试调用我的flag_germany函数,它将在0,0处绘制标志(不确定原因),如下所示。存储的列表值可以视为:并且必须基于另一个随机位置函数进行添加

positions = [
[-3*HORIZONTAL,3*VERTICAL,'A',7],[3*HORIZONTAL,'G',[-3*HORIZONTAL,-3*VERTICAL,1],1]
]

    occupied = [  # To store the grid occupied
        [('A',7)],[('G',[('A',1)],1)]
    ]

绘制标志功能

def flag_germany():
    penup()
    color("black")
    fillcolor("white")
    seth(90)

    # origin_x = 0
    # origin_y = 0

   # goto(x,y)
    fillcolor("red")
    seth(90)
    begin_fill()
    forward(90 - 4)
    right(90)
    forward(120 - 4)
    right(90)
    forward(90 - 4)
    right(90)
    forward(120 - 4)
    right(90)
    end_fill()
    showturtle()
        #goto(origin_x,origin_y)

    # Orange Rectangle
    # goto(origin_x,origin_y+86)
    color("black")
    begin_fill()
    right(90)
    forward(120 - 4)
    right(-90)
    forward(32 - 4)
    left(90)
    forward(120 - 4)
    end_fill()
    # goto(origin_x,origin_y)

    # goto(origin_x,origin_y-4)
    color("yellow")
    begin_fill()
    penup()
    right(90)
    forward(58)
    pendown()
    right(90)
    forward(120-4)
    right(90)
    forward(32)
    right(90)
    forward(120-4)
    right(90)
    forward(30)
    end_fill()

我一直在在我的draw flag函数中使用x和y输入,但是我目前正在尝试让它像只turtle.write('ABC',align =' left',font = 20)和turtle.dot(20,“ blue”)以前用于测试的命令。任何有关如何将国旗绘制到正确位置的想法或建议,将不胜感激:)感谢您的提前时间。抱歉,如果我发的不好的帖子也很新。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)