之前已經寫出了牆,現在要要把小蛇寫出來,這裡的小蛇是那種長度不變的,僅會隨著鍵盤敲轉變方向。
在根據鍵盤敲下的按鍵轉變方向時,如果是直接掉頭的方式,比如小蛇在向前走,但直接向後方轉,這顯然是無法做到的,所以對於這樣的命令,我們認為它是無效的。
後乙個點獲得前乙個點的座標,蛇頭根據按鍵轉變方向
@toward.setter
def toward(self, t): # "t"為傳入的字元("w","s","a","d")
s = self.__toward + t # 這裡這樣設定是為了防止出現能直接掉頭的尷尬場面
if not (s == "ws"or s == "sw"or s == "ad"or s == "da"):
self.__toward = t
# 移動
def step(self):
# 只有頭需要按照方向移動,其它「骨節」只需獲取前乙個骨節的座標就可以了
# 獲取順序為從尾到頭
for i in range(len(self.__position)-1, 0, -1):
self.__position[i] = self.__position[i-1]
go =
# 蛇頭的移動
# 因為不能直接對x, y 兩個屬性進行修改(這裡牽扯到記憶體的問題,如果直接修改
# 兩個屬性值的話self.__position[1]的x, y屬性值同樣會被修改,因為此時兩個物件
# 指向的是同一塊記憶體位址)所以這裡實際應該是重新生成乙個新的物件來替換
self.__position[0] = point(self.__position[0].x+go[self.__toward].x, self.__position[0].y+go[self.__toward].y)
def get_position(self):
return self.__position # 返回位置資訊,之後同樣傳給display用於列印
用c語言寫的貪吃蛇
用c編寫的貪吃蛇程式 需求分析 貪吃蛇是一款經典的小遊戲,在遊戲中,玩家操作一條小蛇不斷的吃豆,同時要避免蛇頭與身體部分接觸。蛇每吃乙個豆,身體就會長大一節。源程式 include include system cls 用到 include include include sleep函式 inclu...
用C語言寫貪吃蛇遊戲
輸入標頭檔案,設定函式,其中snakemove 是實現蛇運動的函式,put food 是隨機放置金幣的函式,printmap 是輸出影象的函式,x y記錄蛇尾的座標,snakex和snakey記錄蛇的初始座標。include include include include define snake ...
用python pygame寫貪吃蛇小遊戲
因為python語法簡單好上手,前兩天在想能不能用python寫個小遊戲出來,就上網搜了一下發現了pygame這個寫2d遊戲的庫。了解了兩天再參考了一些資料就開始寫貪吃蛇這個小遊戲。畢竟最開始的練手專案好像都是這個emmmmpython推薦廖雪峰的python3教程,pygame推薦目光部落格的py...