猫史档案馆


【我要上首页】超级2的推箱子

用户:哦卖糕哦卖糕查看:0 回复:4 评论:0 创建时间:2019-05-19T20:32:56



回复

上一页1 页 / 共 1下一页
哦卖糕哦卖糕

WASD操作,EF有惊喜。

点赞0


评论


Genius_pengGenius_peng

上首页有点悬

 

点赞0


评论


哦卖糕哦卖糕

上下左右键操作,NM有惊喜

点赞0


评论


我需要复制粘贴我需要复制粘贴

#导入模块
from pygame import *
from sys import *
#初始化
init()
font.init()
#显示窗口
screen=display.set_mode((400,400))
#显示标题
display.set_caption("推箱子")
#设置地图坐标
x=0
y=0
#背景颜色
screen.fill((255,255,255))
#设置地图
map1=[]
#循环变量
i=0
#调整地图
for a in range(8):
    for a in range(8):
        map1.append(0)
for a in range(8):
    map1[i]=10
    i+=1
i=len(map1)-1
for a in range(8):
    map1[i]=10
    i-=1
i=8
for a in range(6):
    map1[i]=10
    i+=8
i=15
for a in range(6):
    map1[i]=10
    i+=8
map1[0]=0
map1[1]=0
map1[9]=10
map1[10]=10
map1[63]=0
map1[62]=0
map1[54]=10
map1[53]=10
map1[13]=4
map1[44]=5
map1[12]=6
map1[43]=7
map1[49]=1
i=0
k=49#人的编号
d=44#箱子1的编号
o=13#箱子2的编号
while True:#喵循环
    for a in event.get():
        if a.type==QUIT:
            #退出窗口
            quit()
            exit()
        #移动人,箱子
        elif a.type == KEYDOWN: #键被按下
                if a.key == K_LEFT:
                    if map1[k-1]==5 and map1[d-1]!=10 and map1[d-8]!=4:
                         map1[k]=0
                         k-=1
                         map1[d]=1
                         d-=1
                         map1[d]=5
                    if map1[k-1]==4 and map1[o-1]!=10 and map1[d-8]!=5:
                         map1[k]=0
                         k-=1
                         map1[o]=1
                         o-=1
                         map1[o]=4
                    if map1[k-1]!=10 and map1[k-1]!=5 and map1[k-1]!=4:
                        map1[k]=0
                        k-=1
                        map1[k]=1
                elif a.key == K_RIGHT:
                    if map1[k+1]==5 and map1[d+1]!=10 and map1[d-8]!=4:
                         map1[k]=0
                         k+=1
                         map1[d]=1
                         d+=1
                         map1[d]=5
                    if map1[k+1]==4 and map1[o+1]!=10 and map1[d-8]!=5:
                         map1[k]=0
                         k+=1
                         map1[o]=1
                         o+=1
                         map1[o]=4
                    if map1[k+1]!=10 and map1[k+1]!=5 and map1[k-8]!=5:
                        map1[k]=0
                        k+=1
                        map1[k]=1
                elif a.key == K_UP:
                    #判断上面是否有箱子,箱子上面是否是墙
                    #因为图层问题,界面上多显示出一个箱子
                    if map1[k-8]==5 and map1[d-8]!=10 and map1[d-8]!=4:
                         map1[k]=0
                         k-=8
                         map1[d]=1
                         d-=8
                         map1[d]=5
                    if map1[k-8]==4 and map1[o-8]!=10 and map1[d-8]!=5:
                         map1[k]=0
                         k-=8
                         map1[o]=1
                         o-=8
                         map1[o]=4
                    if map1[k-8]!=10 and map1[k-8]!=5 and map1[k-8]!=4 :
                         map1[k]=0
                         k-=8
                         map1[k]=1
                         
                         
                elif a.key == K_DOWN:
                    if map1[k+8]==5 and map1[d+8]!=10 and map1[d-8]!=4:
                         map1[k]=0
                         k+=8
                         map1[d]=1
                         d+=8
                         map1[d]=5
                    if map1[k+8]==4 and map1[o+8]!=10 and map1[d-8]!=5:
                         map1[k]=0
                         k+=8
                         map1[o]=1
                         o+=8
                         map1[o]=4
                    if map1[k+8]!=10 and map1[k+8]!=5 and map1[k-8]!=5:
                        map1[k]=0
                        k+=8
                        map1[k]=1
    #显示地图
    for a in range(8):
        for a in range(8):
            if map1[i]==10:
                draw.rect(screen,(196,74,86),(x,y,50,50),0)
                draw.rect(screen,(0,0,0),(x,y,50,50),5)
            if map1[i]==5:
                draw.rect(screen,(219,182,125),(x,y,50,50),0)
                draw.rect(screen,(0,0,0),(x,y,50,50),5)
            if map1[i]==4:
                draw.rect(screen,(219,182,125),(x,y,50,50),0)
                draw.rect(screen,(0,0,0),(x,y,50,50),5)
            if map1[i]==1:
                draw.circle(screen,(55,162,212),(x+20,y+20),20,0)
                draw.circle(screen,(0,0,0),(x+20,y+20),20,5)
            if map1[i]==6:
                draw.rect(screen,(0,212,101),(x,y,30,30),0)
                draw.rect(screen,(0,0,0),(x,y,30,30),5)
            if map1[i]==7:
                draw.rect(screen,(0,212,101),(x,y,30,30),0)
                draw.rect(screen,(0,0,0),(x,y,30,30),5)
            if map1[i]==0:
                draw.rect(screen,(255,255,255),(x,y,50,50),0)
            if map1[12]==0:
                draw.rect(screen,(0,212,101),(200,60,30,30),0)
                draw.rect(screen,(0,0,0),(200,60,30,30),5)
            if map1[43]==0:
                draw.rect(screen,(0,212,101),(200-30,300-30,30,30),0)
                draw.rect(screen,(0,0,0),(200-30,300-30,30,30),5)
            i+=1
            x+=50
        x=0
        y+=50
    if (map1[12]==4 and map1[43]==4) or (map1[12]==5 and map1[43]==5) or (map1[12]==5 and map1[43]==4) or (map1[12]==4 and map1[43]==5):
        font1=font.SysFont('方正喵宋简体',50)
        font2=font1.render('恭喜你,闯关成功!',1,(0,0,0))
        screen.blit(font2,(0,200))
    i=0
    x=0
    y=0
    #刷新
    display.flip()

点赞0


评论