操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    發現大家最近都迷上了搞小游戲,于是我馬不停蹄的給大家安排!!!

    說起游戲萬年經典就是迷宮,也是小朋友的最愛,為此小編特地查了一下,玩兒迷宮不僅能鍛煉孩子的邏輯思維能力,還能引導孩子方位的感知,就沖這,程序員爸爸們還不快來給孩子搞一個提升他們的興趣

    游戲規則:顧名思義,玩家出現在迷宮的外面,進入之后要在很多不同的路中間找到一條可以抵達終點的路,可以發反復的嘗試,能走到終點就是勝利,當人你如果在迷宮中迷路了,就走不出來會失敗。迷宮游戲則傾向于吸引那些更有興趣解決謎題和迎接挑戰的人群。

    *前言

    1)需要做哪些準備呢?

    本文的游戲迷宮是2個單獨的迷宮組合而成的,一個簡單的迷宮,一個難的迷宮。

    環境安裝的話:Python3、Pycharm、Pygame模塊。

    模塊安裝:pip install pygame

    *干貨

    2)代碼(僅部分)

    簡易版主程序:

     
    import pygame
    import sys
    import random
    import time
    from pygame.locals import *
    from random import randint, choice
    import mapp
    import color
     
     
    # 設置屏幕寬度和高度為全局變量
    global screen_width
    screen_width=800
    global screen_height
    screen_height=800
    room_size=15 # 每個房間的大小
    steps=0
     
     
    # 輸出文本信息
    def print_text(font, x, y, text, color, shadow=True):
        if shadow:
            imgText=font.render(text, True, (0, 0, 0))
            screen.blit(imgText, (x-2,y-2))
        imgText=font.render(text, True, color)
        screen.blit(imgText, (x,y))
     
     
    # 存儲迷宮
    r_list=mapp.map_list
     
     
    # 游戲開始
    if __name__=='__main__':
        # 初始化 Pygame
        pygame.init()
        screen=pygame.display.set_mode([screen_width, screen_height])
        pygame.display.set_caption('Maze_AI——by Wonz')
        global font1, font2, font3
     
        clock=pygame.time.Clock()
        fps=20
        screen.fill(color.White)
     
     
        # 加載角色照片
        user=pygame.image.load("user.png").convert_alpha()
        width, height=user.get_size()
        user=pygame.transform.smoothscale(user, (8, 8))
        # draw the user
        width, height=user.get_size()
        x=25 + 42 * room_size
        y=25 + 9 * room_size
        roomx=42
        roomy=9
        screen.blit(user, (x, y))
     
     
        # 畫迷宮
        for i in range(43):
            for j in range(42):
                if (r_list[j][i]==3):
                    pygame.draw.circle(screen, color.Red, [30 + i * room_size, 30 + j * room_size], 5, 0)
                    pygame.display.flip()
                    r_list[j][i]=0
                elif (r_list[j][i]==1):
                    # 畫10*10的矩形,線寬為1,這里不能是0,因為10*10無空白區域
                    pygame.draw.rect(screen, color.Black, [25 + i * room_size, 25 + j * room_size, 10, 10], 0)
                    pygame.display.flip()
                elif (r_list[j][i]==0):
                    pygame.draw.rect(screen, color.White, [25 + i * room_size, 25 + j * room_size, 10, 10], 1)
                    pygame.display.flip()
     
     
        while True:
            for event in pygame.event.get():
                if event.type==pygame.QUIT:
                    sys.exit()
                # 走到終點
                elif(roomx==0 and roomy==9):
                    font3=pygame.font.Font(None, 32)
                    print_text(font3, 350, 350, "Win", color.Red)
                    break
                elif event.type==pygame.KEYDOWN:
                    if event.key==pygame.K_RIGHT:
                        # 右邊無墻
                        if(0 <=roomx < 42 and 0 <=roomy <=41 and r_list[roomy][roomx+1]==0):
                            x +=room_size
                            roomx +=1 # 計房間數
                            steps +=1 # 計步
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25)) # x:25 y:0 width:200 height:25
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x-room_size, y, 10, 10))
                            screen.blit(user, (x, y))
                        # 右邊有墻
                        elif (0 <=roomx < 42 and 0 <=roomy <=41 and r_list[roomy][roomx+1]==1):
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
                    elif event.key==pygame.K_LEFT:
                        # 左邊無墻
                        if (0 < roomx <=42 and 0 <=roomy <=41 and r_list[roomy][roomx-1]==0):
                            x -=room_size
                            roomx -=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x+room_size, y, 10, 10))
                            screen.blit(user, (x, y))
                        # 左邊有墻
                        elif (0 < roomx <=42 and 0 <=roomy <=41 and r_list[roomy][roomx-1]==1):
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
                    elif event.key==pygame.K_UP:
                        # 上邊無墻
                        if (0 <=roomx <=42 and 0 < roomy <=41 and r_list[roomy-1][roomx]==0):
                            y -=room_size
                            roomy -=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x, y+room_size, 10, 10))
                            screen.blit(user, (x, y))
                        # 上邊有墻
                        elif (0 <=roomx <=42 and 0 < roomy <=41 and r_list[roomy-1][roomx]==1):
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
                    elif event.key==pygame.K_DOWN:
                        # 下邊無墻
                        if (0 <=roomx <=42 and 0 <=roomy < 41 and r_list[roomy+1][roomx]==0):
                            y +=room_size
                            roomy +=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x, y-room_size, 10, 10))
                            screen.blit(user, (x, y))
                        # 下邊無墻
                        elif (0 <=roomx <=42 and 0 <=roomy < 41 and r_list[roomy+1][roomx]==1):
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
     
            # 更新屏幕
            pygame.display.update()

    難版迷宮主程序:

     
    import pygame
    import sys
    import random
    import time
    from pygame.locals import *
    from random import randint, choice
    import maze
    import color
     
     
    # 設置屏幕寬度和高度為全局變量
    global screen_width
    screen_width=800
    global screen_height
    screen_height=600
     
     
    # 輸出文本信息
    def print_text(font, x, y, text, color, shadow=True):
        if shadow:
            imgText=font.render(text, True, (0, 0, 0))
            screen.blit(imgText, (x-2,y-2))
        imgText=font.render(text, True, color)
        screen.blit(imgText, (x,y))
     
     
    # 游戲開始
    if __name__=='__main__':
        pygame.init()
     
        screen=pygame.display.set_mode([screen_width, screen_height])
        pygame.display.set_caption('Maze_AI——by Wonz') # 游戲標題
        global font1, font2, font3, font4 # 文字
     
     
        clock=pygame.time.Clock()
        fps=20
        screen.fill(color.White)
     
     
        r_list=maze.room.creat_map(maze.room_m, maze.room_n)
        begin_point=[0, 0]
        begin_room=r_list[0][0]
        maze.room.creat_migong(r_list, begin_room)
        # 畫出去起點和終點的其他點
        for i in range(maze.room_m):
            for j in range(maze.room_n):
                begin_point[0]=25 + i * maze.room_size
                begin_point[1]=25 + j * maze.room_size
                r_color=color.Black
                maze.room.draw_room(screen, begin_point, r_list[i][j].walls, maze.room_size, r_color)
        # 畫起點
        maze.room.draw_room(screen, [25, 25], [0, 0, 0, 1], maze.room_size, color.White)
        # 畫終點
        maze.room.draw_room(screen, [25 + (maze.room_m - 1) * maze.room_size, 25 + (maze.room_n - 1) * maze.room_size],
                            [0, 1, 0, 0], maze.room_size, color.White)
     
     
        # 加載角色照片
        user=pygame.image.load("user.png").convert_alpha()
        width,height=user.get_size()
        user=pygame.transform.smoothscale(user, (8,8))
        # 畫角色
        width, height=user.get_size()
        x=27
        y=30
        roomx=0
        roomy=0
        screen.blit(user, (x, y))
     
     
        # 鍵盤控制角色移動
        while True:
            for event in pygame.event.get():
                if event.type==pygame.QUIT:
                    sys.exit()
                # 走到終點
                elif(roomx==maze.room_m-1 and roomy==maze.room_n-1):
                    font4=pygame.font.Font(None, 32)
                    print_text(font4, 350, 350, "Win" , color.Red)
                    break
                # 鍵盤響應,只取按“→”鍵作為例子,“↑”、“↓”、“←”類似,只要改改參數即可
                elif event.type==pygame.KEYDOWN:
                    if event.key==pygame.K_RIGHT:
                        # 右邊無墻
                        if(r_list[roomx][roomy].walls[1]==False):
                            x +=maze.room_size
                            roomx +=1 # 計房間數
                            maze.steps +=1 # 計步
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25)) # x:25 y:0 width:200 height:25
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x-15,y,10,10))
                            screen.blit(user, (x, y))
                        # 右邊有墻
                        elif (r_list[roomx][roomy].walls[1]==True):
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))  # x:25 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
                    elif event.key==pygame.K_LEFT:
                        # 左邊無墻
                        if (r_list[roomx][roomy].walls[3]==False):
                            x -=maze.room_size
                            roomx -=1
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x+15,y,10,10))
                            screen.blit(user, (x, y))
                        # 左邊有墻
                        elif (r_list[roomx][roomy].walls[3]==True):
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
                    elif event.key==pygame.K_UP:
                        # 上邊無墻
                        if (r_list[roomx][roomy].walls[0]==False):
                            y -=maze.room_size
                            roomy -=1
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x,y+15,10,10))
                            screen.blit(user, (x, y))
                        # 上邊有墻
                        elif (r_list[roomx][roomy].walls[0]==True):
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
                    elif event.key==pygame.K_DOWN:
                        # 下邊無墻
                        if (r_list[roomx][roomy].walls[2]==False):
                            y +=maze.room_size
                            roomy +=1
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            pygame.display.flip()
                            screen.fill(color.White, (x,y-15,10,10))
                            screen.blit(user, (x, y))
                        # 下邊無墻
                        elif (r_list[roomx][roomy].walls[2]==True):
                            maze.steps +=1
                            font1=pygame.font.Font(None, 32)
                            font2=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(maze.steps), color.Black)
                            print_text(font2, 350, 0, "This is a wall!", color.Black)
                            pygame.display.flip()
                            screen.blit(user, (x, y))
     
     
                # 鼠標響應,執行 AI 程序
                elif event.type==pygame.MOUSEBUTTONUP:
                    font3=pygame.font.Font(None, 32)
                    print_text(font3, 750, 0, "AI", color.Red)
                    pygame.display.flip()
                    start_x=0
                    start_y=0
                    steps=0
                    for i in range(1000000000):
                        if (start_x==maze.room_m-1 and start_y==maze.room_n-1):
                            font4=pygame.font.Font(None, 32)
                            print_text(font4, 350, 350, "Win", color.Red)
                            break
                        d=random.randint(1,4)
                        # 上邊無墻
                        if (d==1 and 0 <=start_x <=maze.room_m - 1 and 0 <=start_y <=maze.room_n - 1 and
                                r_list[start_x][start_y].walls[0]==False): # 在迷宮地圖范圍內且上邊無墻
                            start_y -=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))  # x:25 y:0 width:200 height:25
                            screen.fill(color.White, (300, 0, 200, 25))  # x:300 y:0 width:200 height:25
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black) # 步數統計
                            pygame.display.flip()
                            screen.blit(user, ((start_x+2) * maze.room_size, (start_y+2) * maze.room_size))
                        # 右邊無墻
                        if (d==2 and 0 <=start_x <=maze.room_m - 1 and 0 <=start_y <=maze.room_n - 1 and
                                r_list[start_x][start_y].walls[1]==False):
                            start_x +=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.blit(user, ((start_x+2) * maze.room_size, (start_y+2) * maze.room_size))
                        # 下邊無墻
                        if (d==3 and 0 <=start_x <=maze.room_m - 1 and 0 <=start_y <=maze.room_n - 1 and
                                r_list[start_x][start_y].walls[2]==False):
                            start_y +=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.blit(user, ((start_x+2) * maze.room_size, (start_y+2) * maze.room_size))
                        # 左邊無墻
                        if (d==4 and 0 <=start_x <=maze.room_m - 1 and 0 <=start_y <=maze.room_n - 1 and
                                r_list[start_x][start_y].walls[3]==False):
                            start_x -=1
                            steps +=1
                            font1=pygame.font.Font(None, 32)
                            screen.fill(color.White, (25, 0, 200, 25))
                            screen.fill(color.White, (300, 0, 200, 25))
                            print_text(font1, 25, 0, "Steps:" + str(steps), color.Black)
                            pygame.display.flip()
                            screen.blit(user, ((start_x+2) * maze.room_size, (start_y+2) * maze.room_size))
     
     
            # 更新屏幕
            pygame.display.update()

    3)效果展示

    簡易版-----

    難版--------


    Pygame的歷史

    Pygame是一個利用SDL庫的寫就的游戲庫,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛寫的,據說他為了讓Loki(致力于向Linux上移植Windows的游戲的一家大好人公司,可惜已經倒閉,唉好人不長命啊……)更有效的工作,創造了這個東東。

    SDL是用C寫的,不過它也可以使用C++進行開發,當然還有很多其它的語言,Pygame就是Python中使用它的一個庫。Pygame已經存在很多時間了,許多優秀的程序員加入其中,把Pygame做得越來越好。

    安裝Pygame

    可以從www.pygame.org下載pygame,選擇合適你的操作系統和合適的版本,當然你也可以使用pip安裝。安裝成功后可用下面方法確認有沒有安裝成功:

    >>>import pygame
    pygame 1.9.4
    Hello from the pygame community. https://www.pygame.org/contribute.html
    >>>

    另外說一下,就產品而言,Pygame更致力于2D游戲的開發,也就是說,你可以用Pygame寫一個植物大戰僵尸,但是寫一個魔獸世界則相當困難……請不要做出鄙夷的目光,底層的東西永遠是相通的,而且對于新手而言,從簡單的2D入手才是正途。

    使用Pygame

    更多精彩文章關注微信公眾號【python社區營】

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有