猫史档案馆


python报错,怎么解决?在线等!

用户:苹果真好吃苹果真好吃查看:12 回复:3 评论:12 创建时间:2024-01-28T21:50:55


from turtle import *
import copy
# -----------------------------------------------------------------
# 1.基本信息区,放置游戏相关的一些信息
# 0:游戏结束    1:过关    2:游戏进行中
bgcolor('lightblue')
mousexy = [0,0]
re = 2
size = 70
le = 1
le1 = [[0,1,1,1,1,0],
        [0,1,2,2,1,0],
        [1,1,2,2,1,1],
        [1,3,2,2,2,1],
        [1,1,2,2,2,1],
        [0,1,1,1,1,1]]

le2 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]

le3 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,6,1,6,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]

le4 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le5 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le6 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le7 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le8 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le9 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le10 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le11 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le12 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le13 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le14 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le15 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le16 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
le17 = [[1,1,1,1,1,1,1,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,1,2,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,2,2,2,1,2,2,1],
       [1,2,2,2,2,2,2,1],
       [1,3,2,2,2,2,2,1],
       [1,1,1,1,1,1,1,1]]
les = [le1,le2,le3,le4,le5,le6,le7,le8,le9,le10,le11,le12,le13,le14,le15,le16,le17]
grid = copy.deepcopy(les[le-1])
width = len(grid[0])
height = len(grid)
ox = -(width-1)/2*size
oy = (height-1)/2*size
pu()
#角色初始位置
ps = [[1,3],[1,6],[1,6],[1,3],[1,6],[1,6],[1,3],[1,6],[1,6],[1,3],[1,6],[1,6],[1,3],[1,6],[1,6],[1,3],[1,6]]
px = ps[le-1][0]
py = ps[le-1][1]
# ------------------------------------------------------------
# 2.功能模块区,主要放置函数
def shre():
    global re,grid,px,py
    if grid[py][px] == 4:
        re = 0
    else:
        for i in grid:
            if 2 in i:
                re = 2
                break
        else:
            re = 1
def draw(img,x,y):
    global ox, oy, size
    addshape('千万要点.gif')
    goto(280, -290)
    shape('千万要点.gif')
    stamp()
    goto(ox+x*size,oy-y*size)
    shape(img)
    stamp()

def up():
    global py
    if re != 2:
        return
    py -= 1
    #移动范围
    if py < 0:
        py += 1
        return
    elif grid[py][px] == 1:
        py += 1
        return
    cg()

def down():
    global py
    if re != 2:
        return
    py += 1
    #移动范围
    if py < 0:
        py -= 1
        return
    elif grid[py][px] == 1:
        py -= 1
        return
    #改变地形
    cg()

def left():
    global px
    if re != 2:
        return
    px -= 1
    #移动范围
    if px < 0:
        px += 1
        return
    elif grid[py][px] == 1:
        px += 1
        return
    cg()

def right():
    global px
    if re != 2:
        return
    px += 1
    #移动范围
    if px < 0:
        px -= 1
        return
    elif grid[py][px] == 1:
        px -= 1
        return
    cg()

def cg():
    global grid,px,py
    if grid[py][px] == 2:
        grid[py][px] = 3
    elif grid[py][px] == 3:
        grid[py][px] = 4
    shre()

def nle():
    global re,le,grid,px,py,width,height,ox,oy,size
    if re == 1:
        le += 1
    elif re == 0:
        clear()
        draw(res[re], (width-1)/2, (height - 1)/2)
    re = 2
    grid = copy.deepcopy(les[le-1])
    width = len(grid[0])
    height = len(grid)
    ox = 0-size*(width-1)/2
    oy = 0+size*(height-1)/2
    px = ps[le-1][0]
    py = ps[le-1][1]

def get_mouse_click(x,y):
    global mousexy
    mousexy = [x,y]
    print(mousexy)
onscreenclick(get_mouse_click)

def blink3():
    global grid, player_x, player_y
    if player_x == 3 and player_y == 5:  # 只要位于(3,1),就去到(2,4)
        if level_n == 3:  # 只在第一关生效(通过这个数字自己调整在第几关生效)
            player_x = 1
            player_y = 5
    elif player_x == 1 and player_y == 5:  # 只要位于(2,4),就去到(3,1)
        if level_n == 3:  # 只在第一关生效(通过这个数字自己调整在第几关生效)
            player_x = 3
            player_y = 5
# 3.操作事件区,放置键鼠操作相关的内容
onkey(up,'Up')
onkey(down,'Down')
onkey(left,'Left')
onkey(right,'Right')
onkey(nle,'Return')
listen()

# ------------------------------------------------------------
# 4.场景素材区,添加游戏画面相关的素材
tile_shapes = ['空.gif', '墙壁.gif', '通道.gif', '通道2.gif', '窟窿.gif','传送门.gif']
for i in tile_shapes:
    addshape(i)
addshape('角色8.gif')
addshape('遮罩.gif')
res = ['失败.gif', '成功.gif', '空.gif']
for i in res:
    addshape(i)
# ------------------------------------------------------------
# 5.画面绘制区,绘制场景用的画笔,绘制场景的代码
penup()
hideturtle()

tracer(False)
while True:
        clear()
        for i in range(width):
            for j in range(height):
                draw(tile_shapes[grid[j][i]],i,j)
        if mousexy[0] < 324 and mousexy[0] > 235 and mousexy[1] < -284 and mousexy[1] > -308:
            draw('遮罩.gif',px,py)
        draw('角色8.gif',px,py)
        draw(res[re],(width-1)/2,(height -1)/2)
        update()

done()

center_imagecenter_imagecenter_image

center_image

上方有图片(空.gif)center_imagecenter_image

center_imagecenter_image

上方图片(千万要点.gif)

center_imagecenter_imagecenter_image

这是冬令营的作品,有素材的直接复制代码就好,报错信息是“我”在访问列表索引外的内容(IndexError: list index out of range)

 


回复

上一页1 页 / 共 1下一页
飞熊jsrt飞熊jsrt

沙发

点赞1


评论


苹果真好吃苹果真好吃

老师输液去了,我也没办法

点赞0


评论


飞熊jSrt飞熊jSrt

沙发

点赞0


评论