国产人伦视频在线观看_欧美福利视频午夜福利_日本免费三级黄色网址_re99热在线观看精品_在线观看水蜜桃小心视频网站_亚洲国产欧美一区二区麻豆_久久精品国产69精品亚洲_农村女人一级毛片农村妇女_日韩不卡免费av_毛片无码高潮喷液视频

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

用Python設(shè)計小游戲(python設(shè)計小游戲誰先走到17誰就贏)

軟件開放2年前 (2023-01-09)2393

本篇文章給大家談?wù)動肞ython設(shè)計小游戲,以及python設(shè)計小游戲誰先走到17誰就贏對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

Python實現(xiàn)消消樂小游戲

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

先來看一下游戲所需 Python 庫。

import?os import?sys import?time import?pygame import?random

定義一些常量,比如:窗口寬高、網(wǎng)格行列數(shù)等,代碼如下:

WIDTH?=?400 HEIGHT?=?400 NUMGRID?=?8 GRIDSIZE?=?36 XMARGIN?=?(WIDTH?-?GRIDSIZE?*?NUMGRID)?//?2 YMARGIN?=?(HEIGHT?-?GRIDSIZE?*?NUMGRID)?//?2 ROOTDIR?=?os.getcwd() FPS?=?30

接著創(chuàng)建一個主窗口,代碼如下:

pygame.init() screen?=?pygame.display.set_mode((WIDTH,?HEIGHT)) pygame.display.set_caption('消消樂')

看一下效果:

再接著在窗口中畫一個 8 x 8 的網(wǎng)格,代碼如下:

screen.fill((255,?255,?220)) #?游戲界面的網(wǎng)格繪制 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)

看一下效果:

再接著在網(wǎng)格中隨機放入各種拼圖塊,代碼如下:

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('分數(shù):'+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)

看一下效果:

當(dāng)設(shè)置的游戲時間用盡時,我們可以生成一些提示信息,代碼如下:

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()

看一下效果:

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

我們通過鼠標(biāo)來操縱拼圖塊,因此程序需要檢查有無拼圖塊被選中,代碼實現(xiàn)如下:

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

我們需要將鼠標(biāo)連續(xù)選擇的拼圖塊進行位置交換,代碼實現(xiàn)如下:

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

每一次交換拼圖塊時,我們需要判斷是否有連續(xù)一樣的三個及以上拼圖塊,代碼實現(xiàn)如下:

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]

本篇文章給大家談?wù)動肞ython設(shè)計小游戲,以及python設(shè)計小游戲誰先走到17誰就贏對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。

?=?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

之后反復(fù)執(zhí)行這個過程,直至耗盡游戲時間,游戲結(jié)束。

最后,我們動態(tài)看一下游戲效果。

總結(jié)

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

到此這篇關(guān)于Python實現(xiàn)消消樂小游戲的文章就介紹到這了,希望大家以后多多支持!

用Python寫一個簡單的小游戲

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

感覺還是蠻好玩吧!

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

先用python創(chuàng)建一個py文件

定義這次程序所需要的類

然后寫出它所需要的模塊

畫背景圖

畫網(wǎng)格線

# 畫已經(jīng)落下的方塊

# 畫單個方塊

# 畫得分等信息

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

python簡單小游戲代碼 怎么用Python制作簡單小游戲

1、Python猜拳小游戲代碼:

2、import random #導(dǎo)入隨機模塊

3、

4、num = 1

5、yin_num = 0

6、shu_num = 0

7、while num 2:

12、 print('不能出大于2的值')

13、 else:

14、 data = ['石頭', '剪刀', '布']

15、 com = random.randint(0, 2)

16、 print(您出的是{},電腦出的是{}.format(data[user], data[com]))

17、 if user == com:

18、 print('平局')

19、 continue

20、 elif (user == 0 and com == 1) or (user == 1 and com == 2) or (user == 2 and com == 0):

21、 print('你贏了')

22、 yin_num += 1

23、 else:

24、 print('你輸了')

25、 shu_num += 1

26、 num += 1

27、Python數(shù)字炸彈小游戲代碼:

28、import random

29、import time

30、

31、bomb = random.randint(1, 99)

32、print(bomb)

33、start = 0

34、end = 99

35、while 1 == 1:

36、

37、 people = int(input('請輸入{}到{}之間的數(shù):'.format(start, end)))

38、 if people bomb:

39、 print('大了')

40、 end = people

41、 elif people bomb:

42、 print('小了')

43、 start = people

44、 else:

45、 print('BOOM!!!')

46、 break

47、 print('等待電腦了輸入{}到{}之間的數(shù):'.format(start, end))

48、 time.sleep(1)

49、 com = random.randint(start + 1, end - 1)

50、 print('電腦輸入:{}'.format(com))

51、 if com bomb:

52、 print('大了')

53、 end = com

54、 elif com bomb:

55、 print('小了')

56、 start = com

57、 else:

58、 print('BOOM!!!')

59、 break

用Python設(shè)計小游戲的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于python設(shè)計小游戲誰先走到17誰就贏、用Python設(shè)計小游戲的信息別忘了在本站進行查找喔。

掃描二維碼推送至手機訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://mbtw.com.cn/post/3142.html

“用Python設(shè)計小游戲(python設(shè)計小游戲誰先走到17誰就贏)” 的相關(guān)文章

gm仙俠手游破解版(gm游戲盒子破解版)

gm仙俠手游破解版(gm游戲盒子破解版)

今天給各位分享gm仙俠手游破解版的知識,其中也會對gm游戲盒子破解版進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、永恒仙域(GM破解刷充)兌換碼哪里免費領(lǐng)取? 2、永恒仙域(GM破解刷充)新服開區(qū)攻略 3、赤壁之戰(zhàn)(GM破解充值)激活碼有哪些?...

同花順免費炒股軟件下載(同花順炒股軟件下載網(wǎng)址)

同花順免費炒股軟件下載(同花順炒股軟件下載網(wǎng)址)

本篇文章給大家談?wù)勍樏赓M炒股軟件下載,以及同花順炒股軟件下載網(wǎng)址對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、想請問,同花順炒股軟件去哪里下? 2、買股票應(yīng)該下載什么軟件最好? 3、炒股軟件app排名 4、同花順手機炒股軟件怎么樣? 5、同花順股票分...

送真充手游(送真充手游哪個最好玩)

送真充手游(送真充手游哪個最好玩)

今天給各位分享送真充手游的知識,其中也會對送真充手游哪個最好玩進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、和凡人飛仙傳(無限送真充)類似手游有嗎? 2、魂斗三國(策劃送真充)手游充值有打折嗎? 3、和摸金校尉之天字卷(無限送真充)類似手游有嗎?...

怎么查看自己申請過的郵箱(怎么查郵箱申請時間)

怎么查看自己申請過的郵箱(怎么查郵箱申請時間)

今天給各位分享怎么查看自己申請過的郵箱的知識,其中也會對怎么查郵箱申請時間進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、我注冊了自己的郵箱.在哪去看我的郵箱? 2、我申請了郵箱,怎么能看到啊我想查看我的郵箱應(yīng)該怎么查 3、如何知道自己的郵箱 注冊過...

益盟操盤手操盤線指標(biāo)源碼(益盟操盤手超級資金指標(biāo)源碼)

益盟操盤手操盤線指標(biāo)源碼(益盟操盤手超級資金指標(biāo)源碼)

本篇文章給大家談?wù)勔婷瞬俦P手操盤線指標(biāo)源碼,以及益盟操盤手超級資金指標(biāo)源碼對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、求益盟操盤手軟件里的“資金流變”指標(biāo)源碼 (只要益盟操盤手的本軟件源碼) 2、求益盟操盤手操盤線工作原理? 3、益盟操盤手編輯保存的公式,如何...

哈薩克直播平臺App下載(哈薩克直播軟件下載)

哈薩克直播平臺App下載(哈薩克直播軟件下載)

今天給各位分享哈薩克直播平臺App下載的知識,其中也會對哈薩克直播軟件下載進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、女王直播蘋果怎么下載 2、有沒有在線觀看的直播 3、看直播的軟件有哪些 4、直播app哪個好用? 5、哈薩克語電影應(yīng)用軟...