導航:首頁 > 編程語言 > python簡單入門小游戲

python簡單入門小游戲

發布時間:2023-02-14 03:00:11

㈠ 用python2.7編的小游戲

幫你搜到了相關教程。

自己用google搜:
用Python和Pygame寫游戲-從入門到精通(目錄)
就可以找到了。
其是一系列的帖子:
系統學習部分用Python和Pygame寫游戲-從入門到精通(1)
Pygame的歷史,安裝Pygame,第一個Pygame腳本
用Python和Pygame寫游戲-從入門到精通(2)
理解游戲中的事件
用Python和Pygame寫游戲-從入門到精通(3)
Pygmae的屏幕顯示
用Python和Pygame寫游戲-從入門到精通(4)
使用字體模塊,Pygame 的錯誤處理
用Python和Pygame寫游戲-從入門到精通(5)
像素和顏色
用Python和Pygame寫游戲-從入門到精通(6)
使用圖像,理解Surface
用Python和Pygame寫游戲-從入門到精通(7)
繪制圖形
用Python和Pygame寫游戲-從入門到精通(8)
產生動畫和控制幀率
用Python和Pygame寫游戲-從入門到精通(9)
向量基礎
用Python和Pygame寫游戲-從入門到精通(10)
用戶輸入
用Python和Pygame寫游戲-從入門到精通(11)
使用滑鼠控制精靈。一個在滑鼠旁不斷游動的小魚的常式。
用Python和Pygame寫游戲-從入門到精通(12)
手柄操作,暫無
用Python和Pygame寫游戲-從入門到精通(13)
AI初探
用Python和Pygame寫游戲-從入門到精通(14)
狀態機
用Python和Pygame寫游戲-從入門到精通(15)
開始AI編程
用Python和Pygame寫游戲-從入門到精通(16)
AI編程總結。一個螞蟻採集食物,攻擊蜘蛛的系統模擬常式。
用Python和Pygame寫游戲-從入門到精通(17)
3D基礎
用Python和Pygame寫游戲-從入門到精通(18)
3D中的概念
用Python和Pygame寫游戲-從入門到精通(19)
第一個 3D 程序(偽)。一個空間中的3D立方體的常式。
用Python和Pygame寫游戲-從入門到精通(20)
聲音原理
用Python和Pygame寫游戲-從入門到精通(21)
使用聲音,播放音效。一個重力模擬金屬球碰撞的常式。
用Python和Pygame寫游戲-從入門到精通(22)
播放長時間的背景音樂。一個建議播放器的常式。
額外提高部分用Python和Pygame寫游戲-從入門到精通(py2exe編)
使用py2exe將pygame腳本轉換為exe可執行文件
用Python和Pygame寫游戲-從入門到精通(Sprite篇)
介紹Pygame中不是必須但又很重要的Sprite模塊,游戲中的角色實現,大多都要靠它。
實踐部分用Python和Pygame寫游戲-從入門到精通(實戰一:塗鴉畫板1)
一個類似於Windows畫圖板的小玩意兒,精簡了很多功能但是有更帥的筆刷。這一次主要是將筆刷的實現。
用Python和Pygame寫游戲-從入門到精通(實戰一:塗鴉畫板2)
加上了按鈕,我們的塗鴉畫板可以用了!
用Python和Pygame寫游戲-從入門到精通(實戰二:惡搞俄羅斯方塊1)
俄羅斯方塊,卻有不是普通的俄羅斯方塊。
用Python和Pygame寫游戲-從入門到精通(實戰二:惡搞俄羅斯方塊2)
代碼構架
用Python和Pygame寫游戲-從入門到精通(實戰二:惡搞俄羅斯方塊3)
實現說明
用Python和Pygame寫游戲-從入門到精通(實戰二:惡搞俄羅斯方塊4)
完成,提供下載
用Python和Pygame寫游戲-從入門到精通(實戰三:植物大戰僵屍1)

自己去一點點學習吧。

㈡ Python游戲開發,Python實現貪吃蛇小游戲與吃豆豆 附帶源碼

Python版本: 3.6.4

相關模塊:

pygame模塊;

以及一些Python自帶的模塊。

安裝Python並添加到環境變數,pip安裝需要的相關模塊即可。

貪吃蛇的 游戲 規則應該不需要我多做介紹了吧T_T。寫個貪吃蛇 游戲 其實還是很簡單的。首先,我們進行一下 游戲 初始化:

然後定義一個貪吃蛇類:

其中head_coord用來記錄蛇頭所在位置,而tail_coords是一個二維數組,用來記錄所有蛇身的位置。一開始,貪吃蛇長為3,並且位置是隨機生成的。用戶通過 鍵來控制貪吃蛇的行動:

需要注意的是,貪吃蛇不能180 大拐彎,只能90 地拐彎。例如正在向左行動的貪吃蛇不能瞬間變成向右行動。具體而言,代碼實現如下:

然後,我們需要隨機生成一個食物,且需要保證該食物的位置不與貪吃蛇的位置相同:

在更新貪吃蛇的時候,如果它吃到了食物,則蛇身長加一,否則只是簡單的按照給定的方向行動而不改變蛇身長度:

同時,當貪吃蛇吃到食物時,需要重新生成一個新的食物:

最後,當貪吃蛇碰到牆壁或者蛇頭碰到蛇身時, 游戲 結束:

並顯示一下 游戲 結束界面:

玩家通過 鍵控制 游戲 的主角吃豆人吃掉藏在迷宮內的所有豆子,並且不能被鬼魂抓到。

若能順利吃完迷宮內的所有豆子並且不被鬼魂抓到,則 游戲 勝利,否則 游戲 失敗。

逐步實現:

Step1:定義 游戲 精靈類

首先,讓我們先來明確一下該 游戲 需要哪些 游戲 精靈類。

① 牆類

② 食物類(即豆豆)

③ 角色類

角色類包括吃豆人和鬼魂,鬼魂由電腦控制其運動軌跡,吃豆人由玩家控制其運動軌跡。

顯然,其均需具備更新角色位置和改變角色運動方向的能力,其源代碼如下:

Step2:設計 游戲 地圖

利用Step1中定義的 游戲 精靈類,我們就可以開始設計 游戲 地圖了。由於時間有限,我只寫了一個關卡的 游戲 地圖,有興趣的小夥伴可以在此基礎上進行擴展(在我的源代碼基礎上進行擴展是很方便滴~)。 游戲 地圖的設計包括以下四方面內容:

① 創建牆

② 創建門(一開始關幽靈用的)

image.gif

③ 創建角色

④ 創建食物

因為食物不能和牆、門以及角色的位置重疊,所以為了方便設計 游戲 地圖,要先創建完牆、門以及角色後再創建食物:

Step3:設計 游戲 主循環

接下來開始設計 游戲 主循環。首先是初始化:

然後定義主函數:

其中startLevelGame函數用於開始某一關 游戲 ,其源代碼如下:

showText函數用於在 游戲 結束或關卡切換時在 游戲 界面中顯示提示性文字,其源代碼如下:


㈢ 求個Python小游戲

Python3X\Lib\turtledemo\nim.py自帶的尼姆游戲

㈣ python做的游戲有哪些

比較大型的,使用Python的游戲有兩個,一個是《EVE》,還有一個是《文明》。另外GitHub上有很多開源的小游戲,下面給大家介紹一下:
1. Github上面有個項目Free Python Games,裡面集合了不少的Python開發的小游戲,能玩,也適合新手用來練練手,另外 PyGame 這個網站裡面裡面集合了很多Python開發的小游戲。
2. Python版本的 Flapy Bird 簡化版,但是感覺更加難玩了。當然你也可以嘗試用Python開發原版的 Flapy Bird,涵蓋了顏色圖像等:Flappy Block - 1.0。
相關推薦:《Python教程》
3. 小時候經常在手機上玩的一個游戲,也是一款經典的街機游戲,這款游戲進化之後其實就是一個打乒乓的小游戲,這里同樣有一個進化版本,圖形設計的更加好看:Ping Pong。
4. 以前初高中在學校很無聊的時候跟同桌或者前後桌玩的游戲,你還記得么?
5. 同樣一款小時候在小霸王上玩的游戲:Junk Jungle。
6. 除此之外,一款比較有名基於Pyhton的戰爭的游戲:Home - TaleWorlds Entertainment。
7. 一款看起來非常有趣的3D游戲:Galcon。

㈤ Python實現消消樂小游戲

pre{overflow-x: auto} 實現 消消樂的構成主要包括三部分:游戲主體、計分器、計時器,下面來看一下具體實現。

先來看一下游戲所需 Python 庫。
import os import sys import time import pygame import random
定義一些常量,比如:窗口寬高、網格行列數等,代碼如下:
WIDTH = 400 HEIGHT = 400 NUMGRID = 8 GRIDSIZE = 36 XMARGIN = (WIDTH - GRIDSIZE * NUMGRID) // 2 YMARGIN = (HEIGHT - GRIDSIZE * NUMGRID) // 2 ROOTDIR = os.getcwd() FPS = 30
接著創建一個主窗口,代碼如下:
pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('消消樂')
看一下效果:

再接著在窗口中畫一個 8 x 8 的網格,代碼如下:
screen.fill((255, 255, 220)) # 游戲界面的網格繪制 def drawGrids(self): for x in range(NUMGRID): for y in range(NUMGRID): rect = pygame.Rect((XMARGIN+x*GRIDSIZE, YMARGIN+y*GRIDSIZE, GRIDSIZE, GRIDSIZE)) self.drawBlock(rect, color=(255, 165, 0), size=1 # 畫矩形 block 框 def drawBlock(self, block, color=(255, 0, 0), size=2): pygame.draw.rect(self.screen, color, block, size)
看一下效果:

再接著在網格中隨機放入各種拼圖塊,代碼如下:
while True: self.all_gems = [] self.gems_group = pygame.sprite.Group() for x in range(NUMGRID): self.all_gems.append([]) for y in range(NUMGRID): gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+x*GRIDSIZE, YMARGIN+y*GRIDSIZE-NUMGRID*GRIDSIZE], downlen=NUMGRID*GRIDSIZE) self.all_gems[x].append(gem) self.gems_group.add(gem) if self.isMatch()[0] == 0: break
看一下效果:

再接著加入計分器和計時器,代碼如下:
# 顯示得分 def drawScore(self): score_render = self.font.render('分數:'+str(self.score), 1, (85, 65, 0)) rect = score_render.get_rect() rect.left, rect.top = (55, 15) self.screen.blit(score_render, rect) # 顯示加分 def drawAddScore(self, add_score): score_render = self.font.render('+'+str(add_score), 1, (255, 100, 100)) rect = score_render.get_rect() rect.left, rect.top = (250, 250) self.screen.blit(score_render, rect) # 顯示剩餘時間 def showRemainingTime(self): remaining_time_render = self.font.render('倒計時: %ss' % str(self.remaining_time), 1, (85, 65, 0)) rect = remaining_time_render.get_rect() rect.left, rect.top = (WIDTH-190, 15) self.screen.blit(remaining_time_render, rect)
看一下效果:

當設置的游戲時間用盡時,我們可以生成一些提示信息,代碼如下:
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYUP and event.key == pygame.K_r: flag = True if flag: break screen.fill((255, 255, 220)) text0 = '最終得分: %s' % score text1 = '按 R 鍵重新開始' y = 140 for idx, text in enumerate([text0, text1]): text_render = font.render(text, 1, (85, 65, 0)) rect = text_render.get_rect() if idx == 0: rect.left, rect.top = (100, y) elif idx == 1: rect.left, rect.top = (100, y) y += 60 screen.blit(text_render, rect) pygame.display.update()
看一下效果:

說完了游戲圖形化界面相關的部分,我們再看一下游戲的主要處理邏輯。

我們通過滑鼠來操縱拼圖塊,因此程序需要檢查有無拼圖塊被選中,代碼實現如下:
def checkSelected(self, position): for x in range(NUMGRID): for y in range(NUMGRID): if self.getGemByPos(x, y).rect.collidepoint(*position): return [x, y] return None
我們需要將滑鼠連續選擇的拼圖塊進行位置交換,代碼實現如下:
def swapGem(self, gem1_pos, gem2_pos): margin = gem1_pos[0] - gem2_pos[0] + gem1_pos[1] - gem2_pos[1] if abs(margin) != 1: return False gem1 = self.getGemByPos(*gem1_pos) gem2 = self.getGemByPos(*gem2_pos) if gem1_pos[0] - gem2_pos[0] == 1: gem1.direction = 'left' gem2.direction = 'right' elif gem1_pos[0] - gem2_pos[0] == -1: gem2.direction = 'left' gem1.direction = 'right' elif gem1_pos[1] - gem2_pos[1] == 1: gem1.direction = 'up' gem2.direction = 'down' elif gem1_pos[1] - gem2_pos[1] == -1: gem2.direction = 'up' gem1.direction = 'down' gem1.target_x = gem2.rect.left gem1.target_y = gem2.rect.top gem1.fixed = False gem2.target_x = gem1.rect.left gem2.target_y = gem1.rect.top gem2.fixed = False self.all_gems[gem2_pos[0]][gem2_pos[1]] = gem1 self.all_gems[gem1_pos[0]][gem1_pos[1]] = gem2 return True
每一次交換拼圖塊時,我們需要判斷是否有連續一樣的三個及以上拼圖塊,代碼實現如下:
def isMatch(self): for x in range(NUMGRID): for y in range(NUMGRID): if x + 2  -2: for each in [res_match[1], res_match[1]+1, res_match[1]+2]: gem = self.getGemByPos(*[each, start]) if start == res_match[2]: self.gems_group.remove(gem) self.all_gems[each][start] = None elif start >= 0: gem.target_y += GRIDSIZE gem.fixed = False gem.direction = 'down' self.all_gems[each][start+1] = gem else: gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+each*GRIDSIZE, YMARGIN-GRIDSIZE], downlen=GRIDSIZE) self.gems_group.add(gem) self.all_gems[each][start+1] = gem start -= 1 elif res_match[0] == 2: start = res_match[2] while start > -4: if start == res_match[2]: for each in range(0, 3): gem = self.getGemByPos(*[res_match[1], start+each]) self.gems_group.remove(gem) self.all_gems[res_match[1]][start+each] = None elif start >= 0: gem = self.getGemByPos(*[res_match[1], start]) gem.target_y += GRIDSIZE * 3 gem.fixed = False gem.direction = 'down' self.all_gems[res_match[1]][start+3] = gem else: gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+res_match[1]*GRIDSIZE, YMARGIN+start*GRIDSIZE], downlen=GRIDSIZE*3) self.gems_group.add(gem) self.all_gems[res_match[1]][start+3] = gem start -= 1
之後反復執行這個過程,直至耗盡游戲時間,游戲結束。

最後,我們動態看一下游戲效果。

總結
本文我們使用 Python 實現了一個簡單的消消樂游戲,有興趣的可以對游戲做進一步擴展,比如增加關卡等。

到此這篇關於Python實現消消樂小游戲的文章就介紹到這了,希望大家以後多多支持!

㈥ 用Python寫一個簡單的小游戲

相信大家都玩過俄羅斯方塊吧,應該是小時候的回憶吧,但是想不想了解一下這個程序是怎麼寫出來的呢,自己寫出來的應該玩起來更有感覺吧!

感覺還是蠻好玩吧!

接下來,我就分享一下這個游戲的源碼過程啊!

先用python創建一個py文件

定義這次程序所需要的類

然後寫出它所需要的模塊

畫背景圖

畫網格線

# 畫已經落下的方塊

# 畫單個方塊

# 畫得分等信息

這樣就可以寫出來一個十分簡單的俄羅斯方塊啦,是不是覺得還不錯呢!

㈦ 15個Python入門小程序,你都知道哪些

有不少同學學完 Python 後仍然很難將其靈活運用。我整理15個 Python 入門的小程序。在實踐中應用 Python 會有事半功倍的效果。

實現數學里的二元二次函數: f(x, y) = 2x^2 + 3y^2 + 4xy ,需要用到指數運算符 **

將一個正整數的個位數,以及除個位數外的部分分離。需要用到 模(取余數) 運算符 % ,和 整除 運算符 //

實現一個簡單的累加器,可以接受用戶輸入3個數字,並將其累加。需要用到 復合賦值運算符:+=

輸入年份,判斷是否是閏年。閏年判斷方法:能被4整除,但不能被100整除;或者能被 400 整除。需要用到 算術運算符 和 邏輯運算符

輸入一個數字,判斷基數還是偶數,需要 模 運算和 if ... else 結構

之前做過華氏度轉攝氏度,現在通過 分支結構 實現二者互轉。

輸入三個邊長度,判斷是否構成三角形。 構成三角形的條件:兩邊之和大於第三邊 。

輸入成績分數,輸出分數對應的等級。

某企業的獎金根據銷售利潤按照如下規則計算提成。輸入銷售利潤,計算獎金。

程序隨機生成一個正整數,用戶來猜,程序根據猜的大小給出相應的提示。最後,輸出用戶猜了多少次才猜中。

輸入一個正整數,判斷是否是素數。 素數定義:大於1的自然數中,只能被1和它本身整除的自然數。如:3、5、7

用程序實現石頭剪刀布 游戲 。

字典的key是姓名,value是身高,現在需要按照身高對字典重新排序。

將二元二次函數封裝在函數中,方便調用

初學python的小夥伴注意哦~不要只依賴於教程,而忽視實操的能力。不然,是很難有進步的。可以多動動手,嘗試一下,積累經驗。

㈧ python可以玩哪些小游戲

ant 螞蟻2. bagels 百吉餅另外貪吃蛇,吃豆子都是可以的,直接代碼就可以玩。

Python包括隨您的安裝一起分發的大量標准庫。標准庫有一個稱為Turtle的模塊,這是一種向普通人介紹python編程的流行方法。今天介紹的所有游戲都是使用Python及其Turtle模塊實現的。

每個游戲都完全獨立於其他游戲,不試一試 您永遠都不知道最喜歡哪種游戲。

安裝完之後我們可以使用"python -m freegames list"來查看所有的游戲

貪吃蛇

貪吃蛇 -經典街機游戲。使用箭頭鍵導航並吃綠色食品。每次食用食物,蛇就會長出一段。避免自己進食或出界!

吃豆子

吃豆子 –經典街機游戲。使用箭頭鍵導航並吃掉所有白色食物。提防漫遊迷宮的紅色幽靈。

Flappy

Flappy-bird啟發游戲。單擊屏幕拍打翅膀。當您飛越屏幕時,請當心黑烏鴉。

加農炮

大炮-射擊運動。單擊屏幕發射您的炮彈。炮彈在其路徑中彈出藍色氣球。彈出所有氣球,然後才能越過屏幕。



閱讀全文

與python簡單入門小游戲相關的資料

熱點內容
python代碼精簡 瀏覽:455
文件加密了怎麼找到了 瀏覽:193
jellyfin插件怎麼選擇主伺服器 瀏覽:836
asp用戶注冊源碼 瀏覽:48
什麼是照片壓縮文件 瀏覽:392
java調用js代碼 瀏覽:979
崑山市民app怎麼修改身份信息 瀏覽:779
php登陸次數 瀏覽:744
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:376
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:517
源碼論壇打包 瀏覽:558
php怎麼做成word 瀏覽:692
python批量生成密鑰 瀏覽:492
程序員要不要考社區人員 瀏覽:150
app的錢怎麼充q幣 瀏覽:814
android銀行卡識別 瀏覽:756
怎麼在app投放廣告 瀏覽:11
手機文件管理怎麼看app名稱 瀏覽:192