引言
作為python 小白,總是覺得自己要做好百分之二百的準備,才能開始寫程序。以至于常常整天在那看各種語法教程,學了幾個月還是只會print('hello world')。
這樣做效率太低,正確的做法,是到身邊找問題,然后編程實現。比如說,我學了高等數學,我是不是應該考慮下如何去用編程實現求導或者積分操作,如果想不出怎么辦,是不是應該 baidu 一下,別人是如何實現數值積分或是符號積分的。我們每天買東西都要用到加減甚至乘除,那么我是否能編寫個簡單的計算器,如果命令行太丑的話,我是否能夠快速地學一學 pyqt5或是其他 gui來實現精致些的應用程序。凡事用編程思維考慮一下,對于從編程小白進階為編程入門是大有裨益的。
小時候,我們或多或少會沉迷于一款經久不衰的游戲------貪吃蛇。或許我們玩過各式各樣的貪吃蛇游戲,卻沒有自己動手編寫屬于自己的貪吃蛇游戲。今天就讓我們走進貪吃蛇的世界,用 python 實現簡易版的貪吃蛇游戲。
游戲簡介
首先是游戲效果圖:

用戶通過操控貪吃蛇,去吃到盡可能多的食物。其中貪吃蛇不能碰到墻壁,也不能咬到自身。
本教程借助 pygame實現游戲界面,所以下面稍稍介紹一下 pygame的安裝,用法就在下面連同函數一起講了:
安裝:
pip install -U pygame
接下來讓我們介紹下實現貪吃蛇的關鍵邏輯:
貪吃蛇的身體是由list構成的,list中每一個元組代表貪吃蛇在棋盤上的坐標,我們只需在這些位置畫上圖案,就能制作出一條圓滾滾的貪吃蛇來。但是如果想讓貪吃蛇活蹦亂跳,我們就要寫一個move函數。
那么貪吃蛇怎么移動呢?
如果貪吃蛇沒吃到食物,那么我們就刪除list中最后一個坐標,再在蛇頭部分插入新的位置。如何確定新的位置呢,我們就要設定貪吃蛇移動的方向(x,y),將原蛇頭位置的坐標在移動方向上進行加減操作。這樣貪吃蛇就實現了向前移動的目標。如果貪吃蛇恰好吃到了食物,唯一的不同就是不需要刪除貪吃蛇尾部的元素。其中需要注意的是,貪吃蛇不能朝著當前移動方向的反方向移動。體現在代碼中,就是當前方向與改變方向的乘積不能為負值。
新聞熱點
疑難解答