日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

经典坦克大战的python实现

發(fā)布時(shí)間:2023/12/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典坦克大战的python实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

歡迎加入我們臥虎藏龍的python討論qq群:729683466

導(dǎo)語

看到封面

大家一定覺得很熟悉

這不就是小時(shí)候經(jīng)常玩的坦克大戰(zhàn)嗎

現(xiàn)在有沒有想過用python實(shí)現(xiàn)一下

了解一下游戲的內(nèi)部結(jié)構(gòu)是什么樣的

直接開始吧!!

相關(guān)資源 代碼獲取

1:關(guān)注“python趣味愛好者”公眾號,回復(fù)“經(jīng)典坦克大戰(zhàn)2 ”獲取源代碼。

?#?效果展示?

# 開發(fā)工具

編譯器:python3.6.4

主要的第三方庫:pygame

#往期推薦

#??python小游戲之《躲避太空垃圾》

#??用python做一個(gè)“船新”的貪吃蛇

# 講解部分

一:游戲介紹

其實(shí)這個(gè)游戲根本就不用介紹,大家都懂

二:主體構(gòu)成(地圖講解為主)

關(guān)于如何用python寫游戲,公眾號其實(shí)已經(jīng)講過很多次了。一些基礎(chǔ)的內(nèi)容可以看公眾號以前發(fā)的推文。

《推箱子》python小游戲(第一期)

《推箱子》python小游戲(第二期)

這里只講一講這個(gè)游戲的特別之處,我之所以推薦了兩個(gè)《推箱子》推文的鏈接,是因?yàn)檫@個(gè)坦克大戰(zhàn)與推箱子游戲有異曲同工之妙。游戲都是一個(gè)又一個(gè)方塊構(gòu)成的。

只是這里面的游戲元素更多,有己方坦克,對方坦克,墻壁,草地,老鷹之類的。

如何構(gòu)成這樣的有界面呢?用最簡單的話來說,就是在適當(dāng)?shù)臅r(shí)刻,在適當(dāng)?shù)淖鴺?biāo)點(diǎn)上畫適當(dāng)?shù)膱D像。

那么如何將圖像畫在界面上呢?

......

此處省略1000字

......

這些內(nèi)容在之前的游戲推文中講的很詳細(xì)了。

之前每次講游戲的時(shí)候,都會重點(diǎn)講一講按鍵操作,在這次的游戲講解中,我決定不講按鍵操作了,講一個(gè)大家普遍不注意的問題。那就是游戲地圖。

說到游戲地圖,大家首先想到的肯定是那種精美的3D游戲的圖,但是在普通的小游戲中,游戲地圖可以非常簡單。這個(gè)游戲的地圖就是用一個(gè)非常簡單的矩陣表示的。

# 地圖MAP_ONE = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],[0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, ],[0, 1, 0, 0, 1, 3, 3, 1, 1, 2, 1, 1, 3, 3, 1, 0, 0, 1, 0, ],[0, 1, 0, 0, 1, 3, 3, 1, 1, 2, 1, 1, 3, 3, 1, 0, 0, 1, 0, ],[0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, ],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],[1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, ],[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, ],[0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, ],[0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, ],[0, 1, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 1, 0, ],[0, 1, 3, 3, 3, 1, 0, 0, 1, 1, 1, 0, 0, 1, 3, 3, 3, 1, 0, ],[0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, ],]

這段代碼放在這里,內(nèi)行看到的根本就不是一個(gè)矩陣,而是這個(gè)

大家看到的矩陣?yán)锩娲蠖鄶?shù)地方都是0,這很正常,如果這個(gè)矩陣的這個(gè)位置是0,代表的意思是這個(gè)矩陣的這個(gè)位置是空白的,什么也沒有。如果是1,代表這個(gè)地方是一個(gè)紅色的磚墻,2代表的是炮彈也打不穿的鐵墻,3代表的是可以藏身的草地,5代表的就是老鷹。

如果你需要讓這個(gè)游戲豐富起來,想設(shè)置更多的游戲地圖,有個(gè)很簡單的方法,直接在代碼里面修改這個(gè)矩陣即可。

不行你可以嘗試一下,把這個(gè)矩陣?yán)锩娴臄?shù)字打亂,那么出現(xiàn)在你面前的絕對是一個(gè)亂七八糟的圖。

三:游戲的進(jìn)階

玩這個(gè)游戲的時(shí)候,大家也許會注意到。敵方坦克發(fā)射炮彈和移動都是隨機(jī)的,這導(dǎo)致地方戰(zhàn)斗力過差。很容易被我方坦克擊破。如果感興趣的朋友,可以想個(gè)辦法,讓地方的坦克能夠?qū)ふ夷繕?biāo),然后定向開炮。

另外就是,敵方坦克被擊破以后無法復(fù)活,這顯然是沒法長時(shí)間玩的,所以可以加一個(gè)復(fù)活的功能。

如果是聯(lián)機(jī)對戰(zhàn),還可以加一個(gè)埋地雷的功能。

如果以后有時(shí)間,我們會一一實(shí)現(xiàn)這些功能。

作者|齊

編輯|齊

PYTHON

掃二維碼|關(guān)注我們

QQ群:729683466

# 參考來源

代碼來源:github

總結(jié)

以上是生活随笔為你收集整理的经典坦克大战的python实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。