猫史档案馆


【Python作品分享】推箱子

用户:徐竟成徐竟成查看:0 回复:0 评论:0 创建时间:2023-07-15T09:55:06


【作品展示】

center_image

 

【作品介绍】

垃圾

 

【作品源代码】

import turtle as t
l=0
o=1
v=3

# -----------------------------------------------------------------
# 1.基本信息区,放置游戏相关的一些信息
import turtle as t
c=t.Pen()
t.tracer(False)
g = [[3, 0, 0, 0, 0, 0],
     [3, 0, 1, 1, 1, 0],
     [0, 0, 1, 2, 4, 0],
     [0, 1, 1, 1, 0, 0],
     [0, 4, 2, 1, 1, 0],
     [0, 0, 0, 0, 0, 0]]
f = ['墙壁.gif', '通道.gif', '箱子.gif', '空.gif', '目标.gif', '传送门.gif', '陷阱.gif']
x = 6
y = 6
size = 70
x_ = -(x-1)/2*size
y_ = (y-1)/2*size
# ------------------------------------------------------------
# 2.功能模块区,主要放置函数
def draw(pen,img,x,y):
    pen.shape(img)
    global x_ , y_ ,size
    pen.goto(x_+x*size,y_-y*size)
    pen.stamp()
le=1


def ww():
    global o, v, g
    v -= 1
    if g[v][o] == 0:
        v += 1
    if g[v][o] == 2:
        if g[v-1][o] == 0 or g[v-1][o] == 2:
            v += 1
        else:
            g[v][o] = 1
            g[v-1][o] = 2
            print('好')

    return

def s():
    global o, v, g
    v += 1
    if g[v][o] == 0 :
        v -= 1
    if g[v][o] == 2:
        if g[v+1][o] == 0 or g[v+1][o] == 2:
            v -= 1
        else:
            g[v][o] = 1
            g[v+1][o] = 2
    return

def aa():
    global o,v,g
    o -= 1
    if g[v][o] == 0 :
        o += 1
    if g[v][o] == 2:
        if g[v][o-1] == 0 or g[v][o-2] == 2:
            o += 1
        else:
            g[v][o] = 1
            g[v][o-1] = 2
    return

def d():
    global o,v
    o+=1
    if g[v][o] == 0:
        o -= 1
    if g[v][o] == 2:
        if g[v][o+1] == 0 or g[v][o+1] == 2 :
            o -= 1
        else:
            g[v][o]=1
            g[v][o+1]=2
    return
def wd():
    c.shape('胜利.gif')
def no():
    c.shape('失败.gif')


        
# ------------------------------------------------------------
# 3.操作事件区,放置键鼠操作相关的内容


# ------------------------------------------------------------
# 4.场景素材区,添加游戏画面相关的素材
p=t.Pen()
p.penup()
for i in f:
    t.addshape(i)
t.addshape('编程猫.gif')
t.addshape('胜利.gif')
t.addshape('失败.gif')
c.shape('空.gif')
# ------------------------------------------------------------
# 5.画面绘制区,绘制场景用的画笔,绘制场景的代码
while True:
    t.tracer(False)
    for a in range(x):
        for b in range(y):
            draw(p,f[g[b][a]],a,b)
            draw(p,'编程猫.gif',o,v)
            p.stamp()
    t.onkey(ww,'Up')
    t.onkey(s, 'Down')
    t.onkey(aa,'Left')
    t.onkey(d, 'Right')
    t.listen()
    if g[4][1] == 2 and g[2][4] == 2:
        le += 1
        break
    t.update()
t.clearscreen
v = 3
o = 4
g = [[0, 0, 0, 0, 0, 0],
     [0, 1, 1, 1, 4, 0],
     [0, 1, 2, 1, 1, 0],
     [0, 0, 1, 1, 1, 0],
     [0, 4, 1, 2, 1, 0],
     [0, 0, 0, 0, 0, 0]]
while True:
    for a in range(x):
        for b in range(y):
            draw(p, f[g[b][a]], a, b)
            draw(p, '编程猫.gif', o, v)
            p.stamp()
    t.onkey(ww, 'Up')
    t.onkey(s, 'Down')
    t.onkey(aa, 'Left')
    t.onkey(d, 'Right')
    t.listen()
    if g[4][1] == 2 and g[1][4] == 2:
        le += 1
        break
    t.update()
t.clearscreen
v = 4
o = 3
g = [[0, 0, 0, 0, 0, 0],
     [0, 4, 2, 1, 1, 6],
     [0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0],
     [0, 4, 2, 1, 1, 0],
     [0, 0, 0, 0, 5, 0]]
t.tracer(False)
while True:
    for a in range(x):
        for b in range(y):
            draw(p, f[g[b][a]], a, b)
            draw(p, '编程猫.gif', o, v)
            p.stamp()
    t.onkey(ww, 'Up')
    t.onkey(s, 'Down')
    t.onkey(aa, 'Left')
    t.onkey(d, 'Right')
    if g[v][o]==5:
        v=1
        o=4
    if g[v][o] == 6:
        draw(c, '失败.gif', 0, 0)
        t.done()
    t.listen()
    if g[1][1] == 2 and g[4][1] == 2:
        le += 1
        break
    t.update()

t.clearscreen
v = 1
o = 1
g = [[0, 0, 0, 0, 0, 0],
     [0, 4, 1, 1 ,1, 0],
     [0, 1, 6, 2, 1, 0],
     [0, 1, 1, 1 ,1, 0],
     [0, 0, 0, 0, 6, 0],
     [6, 6, 6, 6, 6, 0]]
t.tracer(False)
while True:
    for a in range(x):
        for b in range(y):
            draw(p, f[g[b][a]], a, b)
            draw(p, '编程猫.gif', o, v)
            p.stamp()
    t.onkey(ww, 'Up')
    t.onkey(s, 'Down')
    t.onkey(aa, 'Left')
    t.onkey(d, 'Right')
    if g[v][o]==6:
        draw(c, '失败.gif', 0, 0)
        t.done()
    t.listen()
    if g[1][1] == 2:
        le += 1
        draw(c,'胜利.gif',0,0)
        break
    t.update()


t.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页