tutle迷宫寻宝游戏 python maze game

 

turtle maze game迷宫寻宝游戏 by lixingqiu

turtle maze game迷宫寻宝游戏 by lixingqiu

"""
   迷宫寻宝游戏,本程序演示了一个迷宫游戏。迷宫的地图是一个列表,
   这个列表的每一行字符代表迷宫中的不同物体。在本例中,X代表墙,
   空格代表可通行的地方,T代表财宝。每个字符在列表中的位置可以
   映射为坐标。
"""
from turtle import *
from winsound import *

def main():
    """主要的执行函数"""
    PlaySound("music/SoundTest.wav",SND_LOOP|SND_ASYNC)
    # 下面这个表就是迷宫的地图,其中X代表墙,T代表财宝
    # 空格代表可以通行的地方。
    level_1 = [
    "XXXXXXXXXXXXXXXXXXXXXXXXX",
    "X XXXXXXXTTTTTTTX   XXXXX",
    "X  XXXXXXX  XTXXXX  XXXXX",
    "X           XXXXXX  XXXXX",
    "X       XX  XXX XXX    XX",
    "XX XXXXXXX  XXX    XX  XX",
    "XX XXX  XX  XXTXXX    XXX",
    "XX      XX    TXXX  XXXXX",
    "XXXXXX  XX    XXXX  XXXXX",
    "XX      XXX  XXXXXXXXXXXX",
    "X  XXXXXXXXXX X      XXXX",
    "X                XXXXXXXX",
    "XXXXXX  XXXX   TXXX     X",
    "XXXXXXTTXXXXXXX  XXXXX  X",
    "XXX  XXXXXXXXXX         X",
    "XXX                     X",
    "XXX         XXXXXXXXXTXXX",
    "XXXXTTTTXX  XXXXXXXXXXXXX",
    "XXXXXXXXXX             TX",
    "XX T XXXXX              X",
    "XX   XXXXXXXXXXXXX  XXXXX",
    "XX    YXXXTXXXXXXX  XXXXX",
    "XX          XXXX        X",
    "XXXX                    X",
    "XXXXXXXXXXXXXXXXXXXXXXXXX"
    ]
    screen = Screen()
    screen.delay(0)
    screen.title("迷宫寻宝游戏 by lixingqiu")
    screen.bgpic("images/bg.png")
    p = level_1,'images/block5.gif','images/treasure.gif'
    walls,treasures = make_maze(*p) 
    player1 = Player('images/girl.gif',(0,0),walls,treasures)
    screen.mainloop()

def make_maze(level_map,block_image,prop_image):
    """
       产生迷宫,level_map是一个列表,block_image:方块gif图,prop_image:道具图
       本函数根据地图把迷宫给印出来,原理就是扫描level_map中的每一行,
       然后扫描每一行中的每一个字符,根据字符来决定印什么,同时生成墙列表和
       财宝列表。墙列表实际上记录的是所有墙的坐标,而财宝列表记录的是一个个
       的海龟对象,这是为了方便当角色碰到它时能方便地删除它们。
    """
   
    walls = []                   # 墙列表
    treasures = []               # 财宝列表
    t = Turtle(visible=False)    # 用来画墙的海龟对象
    t.penup()                    # 抬笔
    screen = t.getscreen()       # 获取所在的屏幕对象   
    screen.addshape(block_image) # 增加方块造型(墙)
    screen.addshape(prop_image)  # 增加道具,这里是财宝
    t.shape(block_image)         # 设造型为方块 
    start_x = -288               # 左上角起始x坐标
    start_y = 288                # 左上角起始y坐标   
    i = 0                        # i代表的其实是行的索引号
    

You must log in to read the rest of this article. Please log in or register as a user.