猫史档案馆


【Python作品分享】走迷宫【作品秀】

用户:闻香识人gaq6闻香识人gaq6查看:0 回复:0 评论:0 创建时间:2020-10-30T21:19:10


【作品展示】

center_image

 

【作品介绍】

走迷宫的小游戏,超好玩!

 

【作品源代码】

import turtle
import random
import easygui

__Pen = turtle.Pen()


turtle.bgcolor("#000000")
a = turtle.Pen()
b = turtle.Pen()
c = turtle.Pen()
d = turtle.Pen()
__Pen.pencolor("#ff0000")
__Pen.fillcolor("#ff0000")
a.hideturtle()
b.hideturtle()
c.hideturtle()
d.hideturtle()
a.pencolor("#ffffff")
b.pencolor("#ffffff")
c.pencolor("#ffffff")
d.pencolor("#ffffff")
__Pen.speed(0)
a.speed(0)
b.speed(0)
c.speed(0)
d.speed(0)
角度 = [90, 180, 270, 540]
长度 = [50, 100, 150]
t = 20
for __count in range(t):
    a.forward(random.choice(长度))
    a.right(random.choice(角度))
    b.forward(random.choice(长度))
    b.right(random.choice(角度))
    c.forward(random.choice(长度))
    c.right(random.choice(角度))
    d.forward(random.choice(长度))
    d.right(random.choice(角度))
d.showturtle()
d.fillcolor("#ffff00")
if easygui.ynbox('是否开始游戏?', 'Codemao', ('是', '否')):
    easygui.msgbox('好的,请沿白线走到黄色箭头')
    if easygui.ynbox('往前走多少', 'Codemao', ('50', '100')):
        __Pen.forward(50)
    else:
        __Pen.forward(100)
    while (round(__Pen.xcor()) != round(d.xcor()) or round(__Pen.ycor()) != round(d.ycor())):
        if easygui.ynbox('是否转向?', 'Codemao', ('是', '否')):
            if easygui.ynbox('左还是右?', 'Codemao', ('左', '右')):
                __Pen.left(90)
            else:
                __Pen.right(90)
        else:
            if easygui.ynbox('继续往前多少', 'Codemao', ('50', '100')):
                __Pen.forward(50)
            else:
                __Pen.forward(100)
    easygui.msgbox('你赢了')
    t += 10
    __Pen.clear()
    a.clear()
    b.clear()
    c.clear()
    d.clear()
    __Pen.penup()
    a.penup()
    b.penup()
    c.penup()
    d.penup()
    __Pen.goto(0, 0)
    a.goto(0, 0)
    b.goto(0, 0)
    c.goto(0, 0)
    d.goto(0, 0)
    __Pen.pendown()
    a.pendown()
    b.pendown()
    c.pendown()
    d.pendown()
    if easygui.ynbox('是否开始下一关?'):
        for __count in range(t):
            a.forward(random.choice(长度))
            a.right(random.choice(角度))
            b.forward(random.choice(长度))
            b.right(random.choice(角度))
            c.forward(random.choice(长度))
            c.right(random.choice(角度))
            d.forward(random.choice(长度))
            d.right(random.choice(角度))
        while (round(__Pen.xcor()) != round(d.xcor()) or round(__Pen.ycor()) != round(d.ycor())):
            if easygui.ynbox('是否转向?', 'Codemao', ('是', '否')):
                if easygui.ynbox('左还是右?', 'Codemao', ('左', '右')):
                    __Pen.left(90)
                else:
                    __Pen.right(90)
            else:
                if easygui.ynbox('继续往前多少', 'Codemao', ('50', '100')):
                    __Pen.forward(50)
                else:
                    __Pen.forward(100)
        easygui.msgbox('你赢了')
        t += 10
        __Pen.clear()
        a.clear()
        b.clear()
        c.clear()
        d.clear()
        __Pen.penup()
        a.penup()
        b.penup()
        c.penup()
        d.penup()
        __Pen.goto(0, 0)
        a.goto(0, 0)
        b.goto(0, 0)
        c.goto(0, 0)
        d.goto(0, 0)
        __Pen.pendown()
        a.pendown()
        b.pendown()
        c.pendown()
        d.pendown()
        if easygui.ynbox('是否开始下一关?'):
            for __count in range(t):
                a.forward(random.choice(长度))
                a.right(random.choice(角度))
                b.forward(random.choice(长度))
                b.right(random.choice(角度))
                c.forward(random.choice(长度))
                c.right(random.choice(角度))
                d.forward(random.choice(长度))
                d.right(random.choice(角度))
            while (round(__Pen.xcor()) != round(d.xcor()) or round(__Pen.ycor()) != round(d.ycor())):
                if easygui.ynbox('是否转向?', 'Codemao', ('是', '否')):
                    if easygui.ynbox('左还是右?', 'Codemao', ('左', '右')):
                        __Pen.left(90)
                    else:
                        __Pen.right(90)
                else:
                    if easygui.ynbox('继续往前多少', 'Codemao', ('50', '100')):
                        __Pen.forward(50)
                    else:
                        __Pen.forward(100)
            easygui.msgbox('你赢了')
            t += 10
        else:
            easygui.msgbox('游戏已退出')
    else:
        easygui.msgbox('游戏已退出')
else:
    easygui.msgbox('退出游戏')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页