貪吃蛇,大家應該都玩過。當初第一次接觸貪吃蛇的時候 ,還是能砸核桃的諾基亞上,當時玩的不亦樂乎。今天,我們用python程式設計乙個貪吃蛇遊戲,下面我們先看看效果:
好了,先介紹乙個思路
所有的遊戲最主要的內容都是程式的內迴圈,這才是保證乙個遊戲能夠正常執行的前提。
以下是編寫貪吃蛇小遊戲的主要思路。
廢話不多說,我們直接來講解如何利用python進行貪吃蛇的編寫吧
一、呼叫庫以及初始設定
呼叫第三方庫
這就是編寫貪吃蛇時我們需要呼叫的庫。
2 .初始設定
我們通過這幾行**來初始化pygame,定義視窗(邊界)的大小,視窗的標題和圖示。
3. 定義顏色變數
由於我們需要用到一些顏色,而python是不自帶的。所以我們需要定義幾個顏色。
二、gameover
之前提到,所有遊戲最重要的部分是迴圈。而gameover函式就是跳出這個迴圈的條件。這裡給出當蛇吃到自己身體或者碰到邊界時顯示的介面(判斷死亡的**會在之後展示)
三、貪吃蛇與樹莓
接下來介紹遊戲的主題部分,即貪吃蛇與蛇莓的顯示以及運動。
定義初始位置
我們將整個介面看成許多20*20的小方塊,每個方塊代表乙個單位,蛇的長度就可以用幾個單位表示啦。這裡蛇的身體用列表的形式儲存,方便之後的刪減。
2 .鍵盤輸入判斷蛇的運動
我們需要通過鍵盤輸入的上下左右鍵或wasd來控制蛇類運動,同時加入按下esc就退出遊戲的功能。
貪吃蛇運動有乙個特點:不能反方向運動。所以我們需要加入限制條件。
接下來就是將蛇頭按照鍵盤的輸入進行轉彎操作,並將蛇頭當前的位置加入到蛇身的列表中。
3 .判斷是否吃到樹莓
如果蛇頭與樹莓的方塊重合,則判定吃到樹莓,將樹莓數量清零;而沒吃到樹莓的話,蛇身就會跟著蛇頭運動,蛇身的最後一節將被踢出列表。
4 .重新生成樹莓
當樹莓數量為0時,重新生成樹莓,同時分數增加。
5. 重新整理顯示層
每次蛇與樹莓的運動,都會進行重新整理顯示層的操作來顯示。有點類似於動畫的"幀"。
6. 判斷是否死亡
當蛇頭超出邊界或者蛇頭與自己的蛇身重合時,蛇類死亡,呼叫gameover。
7. 控制遊戲速度
為了增加難度,我們設定蛇身越長速度越快,直到達到乙個上限。
到這裡,貪吃蛇小遊戲就寫完了。怎樣,簡單不?
10分鐘教你用Python打造乙個AI貪吃蛇
最近在修一門叫python基礎的課,然後匆忙之中做了這個ai貪吃蛇想交個大作業,結果老師的結課作業是給定了題目,我真是 首先說明一點哈,此ai非彼ai。今天要講的ai貪吃蛇還是傳統意義上遍歷圖的找路演算法編寫的,並不是利用機器學習進行學習控制的哈。傳送門 10分鐘教你用python打造貪吃蛇超詳細教...
10分鐘用Python製作戀愛日誌!
前期準備 1.python的wxpy庫,wxpy在itchat的基礎上,通過大量介面優化提公升了模組的易用性,並進行豐富的功能擴充套件。2.python的爬蟲基礎知識。比如,我之前寫到的requests庫的使用。3.python對於日期的操作。對於wxpy庫和requests庫的安裝,都可以用pip...
dhtmlxTree 10分鐘做乙個樹
專案中要做個分類樹和部門樹。架構師讓用dhtmlxtree 做個樹出來。以前也沒寫過樹。也不知道怎麼做。媽的那些文件不解決實際問題。真他媽的蛋疼。自己動手豐衣足食。自己動手寫。寫好了忘了沒寫文件。寫個文件已被後患。希望對能用到的朋友有所幫助 10分鐘絕對能學會 下面有文件。後面附上的是原始碼。完全拷...