国产精品国产三级国产试看,香蕉人精品视频多人免费永久视频,宅男噜噜噜66一区二区,天天插天天射,女人体(1963)菠萝蜜视频,97在线视频人妻无码一区,精品久久久久精品色婷婷综合

貪吃蛇c++代碼詳解(貪吃蛇c 代碼詳解大全)

更新時間:2023-08-25 18:07:53作者:佚名

貪吃蛇c++代碼詳解(貪吃蛇c 代碼詳解大全)

最近有很多的同學(xué)問,能不能用Python做出一個小游戲來,而且最好要講清楚每一段干嘛是用來干嘛的

那行,今天將來講解一下用Python pygame做一個貪吃蛇的小游戲

據(jù)說是貪吃蛇游戲是1976年,Gremlin公司推出的經(jīng)典街機游戲,那我們今天用Python制作的這個貪吃蛇小游戲是一個像素版的,雖然簡陋,但還是可以玩起來的

私信小編01即可獲取大量Python學(xué)習(xí)資源

我們主要要做的內(nèi)容

創(chuàng)建游戲窗口繪制貪吃蛇與食物蛇吃食物

貪吃蛇的棋盤模型


現(xiàn)在就開始我們的代碼,首先,還是導(dǎo)入模塊

import pygame import random import copy

1. 創(chuàng)建游戲窗口

1.1 游戲初始化

pygame.init() clock = pygame.time.Clock() # 設(shè)置游戲時鐘 pygame.display.set_caption("貪吃蛇-解答、源碼、相關(guān)資料可私信我") # 初始化標(biāo)題 screen = pygame.display.set_mode((500, 500)) # 初始化窗口 窗體的大小為 500 500

1.2 初始化蛇的位置 蛇的長度 10 10 也就是蛇的 X Y 坐標(biāo)

snake_list = [[10, 10]]

首先設(shè)置蛇的一個運行方向 接下來判斷鍵盤事件在決定蛇的運行方向

蛇可以運行起來了,那么接下來就是,吃食物增加自己的長度和不吃食物在不同的位置顯示

初始小蛇方向

move_up = False move_down = False move_left = False move_right = True

1.3 初始化食物的位置

x = random.randint(10, 490) y = random.randint(10, 490) food_point = [x, y]

1.4 開啟游戲循環(huán)

running = True while running: # 游戲時鐘 刷新頻率 clock.tick(20)

1.5 填充背景為白色

screen.fill([255, 255, 255])

1.6 繪制背景

for x in range(0, 501, 10): pygame.draw.line(screen, (195, 197, 199), (x, 0), (x, 500), 1) pygame.draw.line(screen, (195, 197, 199), (0, x), (500, x), 1) food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)

1.7繪制蛇

snake_rect = [] for pos in snake_list: # 1.7.1 繪制蛇的身子 snake_rect.append(pygame.draw.circle(screen, [255, 0, 0], pos, 5, 0))

2. 繪制貪吃蛇與食物

2.1 獲取蛇的長度,移動蛇的身子

pos = len(snake_list) - 1 while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1

2.2 更改蛇頭位置

if move_up: snake_list[pos][1] -= 10 if snake_list[pos][1] < 0: snake_list[pos][1] = 500 if move_down: snake_list[pos][1] += 10 if snake_list[pos][1] > 500: snake_list[pos][1] = 0 if move_left: snake_list[pos][0] -= 10 if snake_list[pos][0] < 0: snake_list[pos][0] = 500 if move_right: snake_list[pos][0] += 10 if snake_list[pos][0] > 500: snake_list[pos][0] = 0

2.3 鍵盤控制移動職位

for event in pygame.event.get(): # print(event) # 判斷按下的按鍵 if event.type == pygame.KEYDOWN: # 上鍵 if event.key == pygame.K_UP: move_up = True move_down = False move_left = False move_right = False # 下鍵 if event.key == pygame.K_DOWN: move_up = False move_down = True move_left = False move_right = False # 左鍵 if event.key == pygame.K_LEFT: move_up = False move_down = False move_left = True move_right = False # 右鍵 if event.key == pygame.K_RIGHT: move_up = False move_down = False move_left = False move_right = True

2.4 獲取蛇的長度,移動蛇的身子

pos = len(snake_list) - 1 while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1

3. 蛇吃食物

3.1 碰撞檢測 如果蛇吃掉食物

if food_rect.collidepoint(pos): # 貪吃蛇吃掉食物 snake_list.append(food_point) # 重置食物位置 food_point = [random.randint(10, 490), random.randint(10, 490)] food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0) break

3.2 如果蛇吃掉了自己

head_rect = snake_rect[0] count = len(snake_rect) while count > 1: if head_rect.colliderect(snake_rect[count - 1]): running = False count -= 1 pygame.display.update()

本文標(biāo)簽: [db:關(guān)鍵詞]  

為您推薦

百度關(guān)鍵詞分析工具(百度關(guān)鍵詞分析怎么寫)

在網(wǎng)絡(luò)推廣團隊的網(wǎng)站優(yōu)化中,選對關(guān)鍵詞確實能幫助網(wǎng)站排名有更好的提升和幫助,但在選擇好主關(guān)鍵詞后,并取得一定的成績后,就需要考慮長尾詞來幫助網(wǎng)站夯實實力,拓展帶來更多的流量,但有些優(yōu)化新手們還不太了解

2023-08-25 18:07

手機屏幕錄屏軟件 手機錄屏幕的軟件

在我們?nèi)粘9ぷ骱腿粘W(xué)習(xí)中,很多朋友都有錄制電腦正在播放的視頻或者錄制電腦屏幕操作的需求。使用錄像軟件可以更方便地錄制一些電腦電視劇、課程、精彩的直播等。好用的錄屏軟件可以達到很好的錄制效果,今天小編

2023-08-25 18:07

貪吃蛇c++代碼詳解(貪吃蛇c 代碼詳解大全)

最近有很多的同學(xué)問,能不能用Python做出一個小游戲來,而且最好要講清楚每一段干嘛是用來干嘛的那行,今天將來講解一下用Python pygame做一個貪吃蛇的小游戲 據(jù)說是貪吃蛇游戲是1976年,

2023-08-25 18:07

qgis二次開發(fā)環(huán)境搭建 qgc二次開發(fā)教程

1. 概述QGIS(原稱Quantum GIS)是一個用戶界面友好的開源桌面端軟件,支持?jǐn)?shù)據(jù)的可視化、管理、編輯、分析以及印刷地圖的制作,并支持多種矢量、柵格與數(shù)據(jù)庫格式及功能。QGIS可運行在Lin

2023-08-25 18:06

雙11直播帶貨不合規(guī)李佳琦被點名

11月20日,中消協(xié)發(fā)布《“雙11”消費維權(quán)輿情分析報告》。報告稱,在10月20日至11月15日共計27天監(jiān)測期內(nèi),系統(tǒng)共收集“雙11”相關(guān)“消費維權(quán)”類信息14296274條,日均信息量約53萬條。

2023-08-25 18:06

比較有權(quán)威的翻譯網(wǎng)站推薦(最權(quán)威的翻譯網(wǎng)站)

眾所周知,外語的種類有很多,當(dāng)我們接觸到不熟悉的外語時,很多小伙伴可能會一時不知所措,沒關(guān)系,今天要給大家分享的是簡單翻譯外語內(nèi)容的方法。 下面先來給大家演示一下翻譯操作: 上圖翻譯外語時使用的是

2023-08-25 18:06