前言
嗨,大家好我是阿嬤,今天的主題是「貪吃蛇(骨頭僵硬版)」,最近我不知道為什麼會歡打書裡面最長的一本,最長的就是這個啦,所以今天就來和大家講講這個遊戲吧!
很多人玩過經典的遊戲貪吃蛇 這裡跟大家分享貪吃蛇的由來(取自維基百科)
貪食蛇(Snake)是一個起源於1976年的街機遊戲 Blockade。此類遊戲在1990年代由於一些具有小型螢幕的行動電話的引入而再度流行起來,在現在的手機上基本都可安裝此小遊戲。版本亦有所不同。
在遊戲中,玩家操控一條細長的直線(俗稱蛇或蟲),它會不停前進,玩家只能操控蛇的頭部朝向(上下左右),一路拾起觸碰到之物(或稱作「豆」),並要避免觸碰到自身或者其他障礙物。每次貪食蛇吃掉一件食物,它的身體便增長一些。吃掉一些食物後會使蛇的移動速度逐漸加快,讓遊戲的難度漸漸變大。遊戲設計大致分為四面都有牆(都不可穿越)以及某部分的牆可以穿越,以及四面牆都可以穿越的模式。
根據這個遊戲規則,我們開始列出PYTHON需要的功能,那我們就…..開始!
flow chart
功能地圖
講解程式
邊界確認
第一行的貨我前幾篇有解釋過我就先跳過喔,那我們先從第四行開始,一樣一定要有前面的設定,系統的設定、形狀、顏色、速度…..等,這前置作業設定好之後就可以開始惹~。
因為outside_window()函式return的變數outside只會有true和false兩個答案
這一篇是設定關於他的邊界,但是我們有一個重點就是如果蛇碰到邊界怎麼
首先我們要先確認蛇是否有超過邊界
阿如果沒有,就繼續進行下去
如果超過,就必須告知遊戲,超過了。
沒錯就是這一行!
outside_window()函式
變數outside
return的只會有true和false兩個答案
總整理一下,如果outside_window()函式確認如果蛇沒超過邊界,他會將變數outside設為false 那沒什麼話好說,就遊戲繼續,話說如果有超過邊界的話,那他會告訴遊戲有超過(他會將變數outside設為true),那遊戲會做後續game_over的處理(上文字之類的)。
GAME OVER
接下來如果遊戲有做到game_over後續的處理,那首先一定要先給他另一個顏色(看你要不要),讓玩家能清楚知道「啊,角色死了」的那種感覺,那除了角色以外,葉子也一樣,改個顏色,那penup是什麼,如果我要一隻蛇那一定要有一個機器話那個蛇,阿遊戲都結束了,那就不用讓蛇繼續長下去,影藏本尊(因為畫筆一下,就是類似很多分身),然後在螢幕前面寫,遊戲結束,然後要設定大小、顏色……等。
大概長這樣子
分數顯示
因為我們要顯示數字,但是又不是直接給他一個數字的外觀,所以唯一的辦法就是有點矛盾。
首先我們先創一個角色
然後我們把它的外觀變一下(霹靂卡拉貝貝乳多~~)
最後就給它上面加個數字
然後再改他的大小、顏色、字體。
然後就完成了,棒。
遊戲開始(ㄍㄢˋ這會讓我很想死)
好所以遊戲開始,要告訴所有的程式說「遊戲開始!」(golbal:告訴整個程式)然後return的意思就是回報,但其實應該是沒有什麼意思,整個遊戲就開始。
但我們要先把分數歸零,然後文字說明清空確保程式初始執行時不會有文字在畫面上
初始設定貪食蛇速度 長度 大小 並將其顯示在畫面上
呼叫display_score函式執行(這個時候分數會顯示出來)
呼叫place_leaf函式執行(這個時候葉子會顯示出來)
當遊戲開始,我們要先設定毛毛蟲的方向、速度、長度、與葉子的距離,途中也是要有一些設定啦,例如:葉子要擺哪、如果碰到葉子分數➕10,好全部的設定稿完之後,剛剛有講過了,就是game over的設定,這我就不說了。