python貪吃蛇畢業設計_【干貨|python項目實例——貪吃蛇】- 環球網校

【摘要】當今世界充滿了各種數據,而python是其中一種的重要組成部分。然而,若想其有所應用,我們需要對這些python理論進行實踐。其中包含很多有趣的的過程,然后將其用于某些方面。其中一種應用就是python項目實例。今天環球網校的小編就來和大家講講python項目實例。

用戶通過操控貪吃蛇,去吃到盡可能多的食物。其中貪吃蛇不能碰到墻壁,也不能咬到自身。

本教程借助 pygame實現游戲界面,所以下面稍稍介紹一下 pygame的安裝,用法就在下面連同函數一起講了:

安裝:

pip install -U pygame

接下來讓我們介紹下實現貪吃蛇的python項目實例

貪吃蛇的身體是由list構成的,list中每一個元組代表貪吃蛇在棋盤上的坐標,我們只需在這些位置畫上圖案,就能制作出一條圓滾滾的貪吃蛇來。但是如果想讓貪吃蛇活蹦亂跳,我們就要寫一個move函數。

那么貪吃蛇怎么移動呢?

如果貪吃蛇沒吃到食物,那么我們就刪除list中最后一個坐標,再在蛇頭部分插入新的位置。如何確定新的位置呢,我們就要設定貪吃蛇移動的方向(x,y),將原蛇頭位置的坐標在移動方向上進行加減操作。這樣貪吃蛇就實現了向前移動的目標。如果貪吃蛇恰好吃到了食物,唯一的不同就是不需要刪除貪吃蛇尾部的元素。其中需要注意的是,貪吃蛇不能朝著當前移動方向的反方向移動。體現在代碼中,就是當前方向與改變方向的乘積不能為負值。

那么如何知道貪吃蛇吃到了食物呢?

如果貪吃蛇蛇頭的坐標與食物的坐標重合的話,貪吃蛇就吃到了食物。如果貪吃蛇吃到了食物,就在棋盤上隨機更新食物。如果隨機生成的食物的坐標,恰好與貪吃蛇的位置重合的話,就繼續隨機產生坐標,直到確保與貪吃蛇的坐標不同的時候。

那么如何知道游戲失敗了呢?

如果貪吃蛇蛇頭的坐標與邊框的坐標重合的話,蛇卒。如果貪吃蛇各個部分的坐標有重合的話,就說明貪吃蛇咬到了自己,游戲結束。

接下來是各個部分的具體代碼實現:

下圖為主要需要的幾個函數:

20191023093942213.jpg

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539305.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PWA即將推向所有Chrome平臺

\看新聞很累?看技術新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!\\\大多數人應該都聽說了微軟已經著手在Windows商店中增加PWA,這是一個重磅消息!\\\\漸進增強式Web應用…

c++代碼轉為go_Go語言學習筆記六--string編碼

分解探索string編碼轉為byte數組func main() {s : "Hi小智加油!"fmt.Println("len(s):",len(s)) //len(s): 15 為什么是15呢?for _, v : range []byte(s) {fmt.Printf("%X ",v) //%X 轉為16進制//48 69 E5 B0 8F E6 99 BA E5 8A A0 E6 B2 B9 21…

Linux機器件拷貝文件

常用命令有:sftp,scp sftp [rootzengmg develop_soft]# sftp 192.168.255.132Connecting to 192.168.255.132... The authenticity of host 192.168.255.132 (192.168.255.132) cant be established. RSA key fingerprint is bd:09:eb:22:2f:ed:95:57:ab…

steam游戲時長計算機,我加入steam五年了,盤點下我買過的22款正版單機游戲

我加入steam五年了,盤點下我買過的22款正版單機游戲2020-02-17 10:50:07104點贊72收藏37評論大家好吖,在2015年的時候朋友就推薦了我入坑steam,不過那個時候更多的知道這是個dota啟動器,慢慢的steam也越來越出名啦,中國…

AdPlayBanner:功能豐富、一鍵式使用的圖片輪播插件

概述 AdPlayBanner:功能豐富、一鍵式使用的圖片輪播插件詳細 代碼下載:http://www.demodashi.com/demo/11312.html AdPlayBanner是一個Android平臺基于ViewPager實現的輪播圖插件,主要用以自動或者手動地播放輪播圖,提供了Fresco、…

pycharm運行模型時怎么設置權重?_使用AMP和Tensor Cores得到更快速,更節省內存的PyTorch模型...

點擊上方“AI派”,關注公眾號,選擇加“星標“或“置頂”導讀只需要添加幾行代碼,就可以得到更快速,更省顯存的PyTorch模型。你知道嗎,在1986年Geoffrey Hinton就在Nature論文中給出了反向傳播算法?此外&…

引入靜態變量_Common Lisp變量的一些事情

Lisp-1 vs Lisp-2[1]Scheme的求值模型非常簡單:只是用一個名字空間,所有表達式中相應位置的值應該是明確的。Common Lisp和Scheme最大的不同是,函數名字空間和數據的名字空間是分離的。操作函數名字空間的語句包括,defun&#xff…

JobTracker和TaskTracker

轉載:http://blog.csdn.net/keda8997110/article/details/8348705 ----------------------------------------------------------------------------------------- JobTracker和TaskTracker JobTracker 對應于 NameNode TaskTracker 對應于 DataNode DataNode 和Na…

c理c利用計算機怎么彈,通過匯編一個簡單的C程序,分析匯編代碼理解計算機是如何工作的...

通過匯編一個簡單的C程序,分析匯編代碼理解計算機是如何工作的計算機的工作方式:現代計算機的基本體系結構都是采用馮諾依曼結構,馮諾依曼的設計思想最重要之處是"存儲程序"的這個概念。計算機的工作過程,就是執行程序的…

Linux安裝MySQL的兩種方法

原文鏈接:http://blog.csdn.net/superchanon/article/details/8546254 --------------------------------------------------------------------------------------- 1. 運行平臺:CentOS 6.3 x86_64,基本等同于RHEL 6.3 2. 安裝…

jenkins 手動執行_想知道如何用Jenkins自動執行Python腳本輸出測試報告?

前言在用python做自動化測試時,我們寫好代碼,然后需要執行才能得到測試報告,這時我們可以通過 Jenkins 來進一步完成自動化工作。借助Jenkins,我們可以結合 Git/SVN 自動拉取代碼,可以設置定時構建,接著就可…

VR 影院,約嗎?

世界第一家 VR 影院已經開張,朋友,去不? 世界第一家 VR 影院正式開張 (無大屏的 VR 電影院) 在被稱為 VR 元年的 2016 年,越來越多的人加入了這個新興的領域,各種傳統應用也在被 VR 包裝之后以…

redis cluster 分布式鎖_關于分布式鎖原理的一些學習與思考redis分布式鎖,zookeeper分布式鎖...

首先分布式鎖和我們平常講到的鎖原理基本一樣,目的就是確保,在多個線程并發時,只有一個線程在同一刻操作這個業務或者說方法、變量。在一個進程中,也就是一個jvm 或者說應用中,我們很容易去處理控制,在jdk …

會計行業被計算機取代馬云,會計人:為什么我神煩“人工智能取代說”?

原標題:會計人:為什么我神煩“人工智能取代說”?原創來源:學會計有方法從財會機器人誕生到馬云的無人商店,全行業掀起了一股“人工智能取代說”的熱潮。有些財會朋友在一輪又一輪的信息轟炸下,倍感壓力&…

mysql5.6允許遠程服務器訪問數據庫

創建一個mysql用戶,并設置可以遠程訪問 grant usage on *.* to fredlocalhost identified by fred;//創建用戶fred密碼ferdselect host,user,password from mysql.user where userfred;//查看記錄 grant all privileges on *.* to fred%identified by fred;//設置可以遠程訪問…

sp烘焙流程_小手雷-PBR材質流程(一)——(基本材質)

小手雷-PBR材質流程(一)Substance Painter生存手冊經過了12個章節的講解后,已經完結了(。・ω・。)相信大家經過了生存手冊這一基礎教程過后,對Substance Painter這款軟件已經有了比較堅實的基礎了,…

MyBatis-進階2

typeHandler typeHandler有什么用? 你可以重寫類型處理器或創建你自己的類型處理器來處理不支持的或非標準的類型。 具體做法為:實現 org.apache.ibatis.type.TypeHandler 接口, 或繼承一個很便利的類 org.apache.ibatis.type.BaseTypeHandle…

python中 r是什么意思_python中rb含義理解

Python文件讀寫的幾種模式: r,rb,w,wb 那么在讀寫文件時,有無b標識的的主要區別在哪里呢? 文件使用方式標識 r:默認值,表示從文件讀取數據 w:表示要向文件寫入數據,并截斷以前的內容 a:表示要向文件寫入數據&#xff0…

哈佛大學計算機生物科學,生命科學專業

【出國留學網】昨日,泰晤士報公布了最新版2018年世界大學生命科學排名,哈佛大學位列第一。本文是關于世界各國大學在本次生命科學排名中的具體表現,供你選校參考。The 2018 Times Higher Education World University Rankings’ table for li…

怎樣呵護友誼_呵護真正的友情,助力漫長的人生

友情,即友誼,是指朋友和朋友之間的感情。它是一種很美妙的東西,可以讓你在失落的時候變得高興起來,可以讓你走出苦海,去迎接新的人生。它就像一種你無法說出又可以感到快樂無比的東西。只有擁有真正朋友的人&#xff0…