這是一款只要有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 ...