亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

60行Python PyGame代碼實(shí)現(xiàn)簡(jiǎn)單的迷宮游戲

 更新時(shí)間:2023年12月30日 08:42:48   作者:微小冷  
這篇文章主要為大家詳細(xì)介紹如何通過(guò)了60行Python PyGame代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的迷宮游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

迷宮

迷宮的邏輯很簡(jiǎn)單,就是用上下左右鍵控制方塊運(yùn)動(dòng),然后定義一下墻壁,指明方塊不能穿過(guò)墻壁即可。

當(dāng)然,還是老規(guī)矩,在具體實(shí)現(xiàn)之前,先設(shè)置一些常量

import pygame
import sys

# 定義顏色
GRAY = (205, 205, 205)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
SIZE = 40

接下來(lái)設(shè)置一個(gè)按鍵字典,用于控制方塊運(yùn)動(dòng)

KEY_DCT = {
    pygame.K_LEFT : [-1, 0],
    pygame.K_RIGHT : [1, 0],
    pygame.K_UP : [0, -1],
    pygame.K_DOWN : [0, 1]
}

以左鍵為例,當(dāng)左鍵按左時(shí),方塊的縱坐標(biāo)不變,而橫坐標(biāo)減去1,顧對(duì)應(yīng)( − 1 , 0 ) (-1,0)(−1,0)。

迷宮表示以及初始化

考慮到更好的自定義迷宮的支持,采用字符列表作為迷宮的映射,以#, I, O分別表示墻壁、玩家位置以及出口位置。從而上面的迷宮可表示如下

maze = [
    "############",
    "#I    #    #",
    "#  ## ###  #",
    "#  #       #",
    "#  #  #### #",
    "#   ##     #",
    "# ###  # # #",
    "# ##   #   #",
    "#   #  # # #",
    "## #  ##   #",
    "# # #O#  ###",
    "############"
]

???????maze = [list(m) for m in maze]

之所以采用嵌套的字符列表,乃因字符串不支持類(lèi)似s[1]=2這種操作。

接下來(lái)要做的,就是定義一個(gè)繪圖函數(shù),可以將迷宮和玩家統(tǒng)一繪制出來(lái),實(shí)現(xiàn)如下。如果后續(xù)有升級(jí)的需求,在迷宮中放置一些不明物體,從而需要的字符種類(lèi)更多,那么可以考慮將繪圖邏輯封裝成字典。

# 繪制迷宮地圖
def init(strLst = maze):
    # 第i行,第j列
    for i,s in enumerate(strLst):
        for j,ch in enumerate(s):
            if ch not in "#IO":
                continue
            rect = (j*SIZE, i*SIZE, SIZE, SIZE)
            if ch == "#":
                pygame.draw.rect(win, GRAY, rect,5)
            elif ch == "I":
                player = [j, i]
                pygame.draw.rect(win, RED, rect)
            elif ch == "O":
                pExit = [j, i]
                pygame.draw.rect(win, GREEN, rect)
    return player, pExit

游戲主循環(huán)

在實(shí)現(xiàn)主循環(huán)之前,需要對(duì)pygame進(jìn)行初始化,包括初始化窗口等

# 初始化pygame
pygame.init()
win = pygame.display.set_mode(
    (len(maze[0]) * SIZE, len(maze) * SIZE))
pygame.display.set_caption("迷宮游戲")
running = True

其中,running為游戲結(jié)束的判定變量,其主循環(huán)內(nèi)容如下

到此這篇關(guān)于60行Python PyGame代碼實(shí)現(xiàn)簡(jiǎn)單的迷宮游戲的文章就介紹到這了,更多相關(guān)Python PyGame迷宮內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python如何對(duì)圖片或文件的操作

    python如何對(duì)圖片或文件的操作

    在日常編程中,我們經(jīng)常會(huì)遇到文件處理的需求,如base64與圖片的相互轉(zhuǎn)換、圖片與像素點(diǎn)的操作、本地文件與二進(jìn)制的互相轉(zhuǎn)換、計(jì)算文件的md5以及下載網(wǎng)絡(luò)文件等,這些操作對(duì)于處理多媒體數(shù)據(jù)、實(shí)現(xiàn)數(shù)據(jù)的持久化存儲(chǔ)、保證數(shù)據(jù)的完整性和安全性等方面都至關(guān)重要
    2024-09-09
  • python使用PIL剪切和拼接圖片

    python使用PIL剪切和拼接圖片

    這篇文章主要為大家詳細(xì)介紹了python使用PIL剪切和拼接圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python 利用pyttsx3文字轉(zhuǎn)語(yǔ)音過(guò)程詳解

    python 利用pyttsx3文字轉(zhuǎn)語(yǔ)音過(guò)程詳解

    這篇文章主要介紹了python 利用pyttsx3文字轉(zhuǎn)語(yǔ)音過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python 讀取更新中的log 或其它文本方式

    python 讀取更新中的log 或其它文本方式

    今天就為大家分享一篇python 讀取更新中的log 或其它文本方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python3訪(fǎng)問(wèn)并下載網(wǎng)頁(yè)內(nèi)容的方法

    Python3訪(fǎng)問(wèn)并下載網(wǎng)頁(yè)內(nèi)容的方法

    這篇文章主要介紹了Python3訪(fǎng)問(wèn)并下載網(wǎng)頁(yè)內(nèi)容的方法,實(shí)例分析了Python頁(yè)面抓取及寫(xiě)入文件的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 基于Python實(shí)現(xiàn)文件處理程序

    基于Python實(shí)現(xiàn)文件處理程序

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文件處理程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 基于MTCNN/TensorFlow實(shí)現(xiàn)人臉檢測(cè)

    基于MTCNN/TensorFlow實(shí)現(xiàn)人臉檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了基于MTCNN/TensorFlow實(shí)現(xiàn)人臉檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 深入講解Python編程中的字符串

    深入講解Python編程中的字符串

    這篇文章主要介紹了Python編程中的字符串,包括字符串的格式化與三引號(hào)的使用等,需要的朋友可以參考下
    2015-10-10
  • pycharm終端無(wú)法激活conda環(huán)境的解決辦法

    pycharm終端無(wú)法激活conda環(huán)境的解決辦法

    如果您在PyCharm終端中無(wú)法激活conda環(huán)境,可能是由于PyCharm沒(méi)有正確配置conda解釋器,這篇文章主要給大家介紹了關(guān)于pycharm終端無(wú)法激活conda環(huán)境的解決辦法,需要的朋友可以參考下
    2023-09-09
  • 基于Python編寫(xiě)一個(gè)簡(jiǎn)單的服務(wù)注冊(cè)發(fā)現(xiàn)服務(wù)器

    基于Python編寫(xiě)一個(gè)簡(jiǎn)單的服務(wù)注冊(cè)發(fā)現(xiàn)服務(wù)器

    我們都知道有很多的非常著名的注冊(cè)服務(wù)器,例如:?Consul、ZooKeeper、etcd,甚至借助于redis完成服務(wù)注冊(cè)發(fā)現(xiàn)。但是本篇文章我們將使用python?socket寫(xiě)一個(gè)非常簡(jiǎn)單的服務(wù)注冊(cè)發(fā)現(xiàn)服務(wù)器,感興趣的可以了解一下
    2023-04-04

最新評(píng)論