瘋狂貪吃蛇(python版)

2021-10-07 15:27:35 字數 4572 閱讀 8229

這是一款只要有pygame就可以執行的小遊戲。(含**)你可以直接 複製黏貼 至你的python編譯器。然後就可以玩啦!

工具/原料

pygame

python3

pycharm(選用)

**複製:

import pygame

from sys import exit

import random

class

point()

: row =

0 clo =

0def

__init__

(self, row, clo)

: self.row = row

self.clo = clo

defcopy

(self)

:return point(row=self.row, clo=self.clo)

# 初始化

pygame.init(

)width =

1500

hight =

700row =

30clo =

35direct =

'left'

window = pygame.display.set_mode(

(width, hight)

)pygame.display.set_caption(

'貪吃蛇遊戲'

)# 蛇頭座標定在中間

head = point(row=

int(row /2)

, clo=

int(clo /2)

)# 初始化蛇身的元素數量

snake =

[ point(row=head.row, clo=head.clo +1)

, point(row=head.row, clo=head.clo +2)

, point(row=head.row, clo=head.clo +3)

]# 生成食物並且不讓食物生成在蛇的身體裡面

defgen_food()

:while1:

position = point(row=random.randint(

0, row -1)

, clo=random.randint(

0, clo -1)

) is_coll =

false

if head.row == position.row and head.clo == position.clo:

is_coll =

true

for body in snake:

if body.row == position.row and body.clo == position.clo:

is_coll =

true

break

ifnot is_coll:

break

return position

# 定義座標

# 蛇頭顏色可以自定義

head_color =(0

,158

,128

)# 食物座標

snakefood = gen_food(

)# 食物顏色

snakefood_color =

(255

,255,0

)snake_color =

(200

,147

,158

)# 需要執行很多步畫圖操作 所以定義乙個函式

defrect

(point, color)

:# 定位 畫圖需要left和top

left = point.clo * width / clo

top = point.row * hight / row

# 將方塊塗色

pygame.draw.rect(window, color,

(left, top, width / clo, hight / row)

)quit =

true

# 設定幀頻率

clock = pygame.time.clock(

)while quit:

# 處理幀頻 鎖幀

clock.tick(15)

# pygame.event.get()獲取當前事件的佇列 可以同時發生很多事件

for event in pygame.event.get():

if event.

type

== pygame.quit:

quit =

false

elif event.

type

== pygame.keydown:

# 這裡小細節蛇不可以直接左右上下 要判斷當前是在什麼狀態下前行

if event.key ==

273or event.key ==

119:

if direct ==

'left'

or direct ==

'right'

: direct =

'top'

if event.key ==

274or event.key ==

115:

if direct ==

'left'

or direct ==

'right'

: direct =

'bottom'

if event.key ==

276or event.key ==97:

if direct ==

'top'

or direct ==

'bottom'

: direct =

'left'

if event.key ==

275or event.key ==

100:

if direct ==

'top'

or direct ==

'bottom'

: direct =

'right'

# 吃東西

eat =

(head.row == snakefood.row and head.clo == snakefood.clo)

# 處理蛇的身子

# 1.把原來的頭插入到snake的頭上

# 2.把最後乙個snake刪掉

if eat:

snakefood = point(row=random.randint(

0, row -20)

, clo=random.randint(

0, clo -20)

) snake.insert(

0, head.copy())

ifnot eat:

snake.pop(

)# 移動一下

if direct ==

'left'

: head.clo -=

1if direct ==

'right'

: head.clo +=

1if direct ==

'top'

: head.row -=

1if direct ==

'bottom'

: head.row +=

1 dead =

false

if head.clo <

0or head.row <

0or head.clo >= clo or head.row >= row:

dead =

true

for body in snake:

if head.clo == body.clo and head.row == body.row:

dead =

true

break

if dead:

for i in

range

(100):

print(""

)print

('你只有一滴血了!'

)for i in

range(50

):print(''

) quit =

false

# 背景畫圖

pygame.draw.rect(window,

(245

,135

,155),

(0,0

, width, hight)

)# 蛇頭

rect(head, head_color)

# 繪製食物

rect(snakefood, snakefood_color)

# 繪製蛇的身子

for body in snake:

rect(body, snake_color)

# 交還控制權

pygame.display.flip(

)

python簡單版貪吃蛇

編寫內容 簡單版貪吃蛇 遊戲介紹 遊戲開始執行,按上下左右鍵蛇則會移動,每當蛇吃吃介面中隨機產生的食物時,設都會隨之增長一節。同時在遊戲介面的左下方會有分數顯示。當蛇碰到自己身體 或撞牆壁遊戲結束。如果想要再來一次,只需要點空格鍵,遊戲將重新開始。遊戲原始碼 import pygame import...

VC版貪吃蛇

此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。具體的關於snake的設計,請參見我的部落格 c 版貪吃蛇遊戲 下面是vc下的遊戲介面截圖 在這裡說一下vc下與c 不同的及新家的東西。cpp view plain copy 引入庫 ...

pygame Python 版貪吃蛇

貪吃蛇是個非常簡單的遊戲,適合練手。先來看一下我的遊戲截圖 玩法介紹 回車鍵 開始遊戲 空格鍵 暫停 繼續 方向鍵 或 wsad 鍵 控制移動方向。食物分紅 綠 藍三種,分別對應 10 分 20 分 30 分,每吃乙個食物增加對應分值,每增加 100 分速度加快一級,沒有設定關卡,我玩到 1100 ...