Python - 如何制作边界线和非侵入线

问题描述

import turtle


t=turtle.Turtle()
t.speed(0)

x=-300
y=300

def disegna_quadrato():
    t.left(90)
    t.fd(300)
    t.right(90)
    t.fd(600)
    t.right(90)
    t.fd(600)
    t.right(90)
    t.fd(600)
    t.right(90)
    t.fd(300)

def partenza_fine():
    t.fd(250)
    t.color("white")
    t.fd(50)
    t.goto(300,-300)
    t.fd(50)
    t.color("black")
    t.penup()
    t.goto(-300,250)
    t.rt(90)

def riga_1():
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(150)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(-300,200)

 def riga_2():
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(-300,150)

def riga_3():
    t.goto(x+50,y-150)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+200,y-150)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+350,y-150)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x,y-200)

def riga_4():
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+100,y-200)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+300,y-200)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+400,y-200)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+450,y-200)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+100,y-250)

def riga_5():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+50,y-300)

def riga_6():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(200)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+50,y-350)

def riga_7():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x,y-400)

def riga_8():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(200)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+100,y-450)

def riga_9():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x,y-500)

def riga_10():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(150)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+200,y-550)

def riga_11():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(250)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+50,y-600)

def verticale_1():
    t.left(90)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+100,y-550)

def verticale_2():
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(150)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+150,y-600)

def verticale_3():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(200)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(150)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+200,y-550)

def verticale_4():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+250,y-500)

def verticale_5():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(150)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+300,y-600)

def verticale_6():
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(150)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+350,y-550)

def verticale_7():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(150)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+400,y-600)

def verticale_8():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(150)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+450,y-600)

def verticale_9():
    t.pendown()
    t.fd(150)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x+500,y-550)

def verticale_10():
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(200)
    t.pendown()
    t.fd(100)
    t.penup()
    t.goto(x+550,y-500)

def verticale_11():
    t.pendown()
    t.fd(100)
    t.penup()
    t.fd(50)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.fd(100)
    t.pendown()
    t.fd(50)
    t.penup()
    t.goto(x,y-25)
    t.rt(90)

def labirinto():
    disegna_quadrato()
    partenza_fine()
    riga_1()
    riga_2()
    riga_3()
    riga_4()
    riga_5()
    riga_6()
    riga_7()
    riga_8()
    riga_9()
    riga_10()
    riga_11()
    verticale_1()
    verticale_2()
    verticale_3()
    verticale_4()
    verticale_5()
    verticale_6()
    verticale_7()
    verticale_8()
    verticale_9()
    verticale_10()
    verticale_11()


t.penup()
t.backward(300)
t.pendown()
labirinto()

def up():
    t.setheading(90)
    t.fd(25)
def down():
    t.setheading(270)
    t.fd(25)
def left():
    t.setheading(180)
    t.fd(25)
def right():
    t.setheading(0)
    t.fd(25)

turtle.listen()


t.penup()
while turtle.onkeypress(up,"Up"):
    t.pos()
while turtle.onkeypress(down,"Down"):
    t.pos()
while turtle.onkeypress(left,"Left"):
    t.pos()
while turtle.onkeypress(right,"Right"):
    t.pos()

turtle.mainloop()


if t.pos()==(300,-275):
    turtle.bye()
    print("Hai vinto!")
    
else:
    print("Hai perso...")

这是我一直在努力制作自己设计的迷宫的代码。虽然,我想不出一种方法来制作边界线,这样玩家就不能侵入某些坐标(即正方形的线)。我的另一个问题是:我怎样才能不让玩家踩到里面迷宫的黑墙(线)? 谁能帮我?提前致谢。

解决方法

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

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

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