先分析有哪些物件:
蛇: 屬性:節點,長度,顏色,運動的方向,生長的標記。
方法:構造一條蛇,移動,改變方向。
食物:
屬性:顏色,位置(橫縱座標)
方法: 初始化乙個食物,繪製
網格:
屬性: 行,列,格仔大小,背景的顏色。
方法:初始化網格
遊戲 屬性:蛇,食物,網格,蛇的移動速度,視窗,畫布,繪畫物件。
方法:初始化乙個遊戲;判斷是否吃到食物,判斷是否吃到自己,判斷是否撞牆,畫蛇,畫食物,畫網格
節點:行,列
蛇初始化: direction = down;color = green;
[,,]
蛇的移動,改變方向,生長,
網格初始化:rows = 25;cols = 25;color = black;
遊戲初始化:
初始化蛇,初始化食物,初始化網格,繪製蛇、食物、網格,開始遊戲
定義網格:
public
class grid
}
定義食物:
public
class
food
}
定義蛇:
public
class
snake //初始化蛇身,即填寫鍊錶
}/**
* 改變蛇的方向同時不讓他180度轉向
*@param direction 新的方向
*/public
void
changedirection(byte direction)
}/**
* 蛇的移動
*/public
void
move()
body.addfirst(n);
if (grow_flag)
else
}/**
* 蛇的生長
*/public
void
grow()
/*** 判斷是否吃到自己
*@return false 沒有 true 吃到了
*/public
boolean
eatslif()
}return
false;
}/**
* 判斷撞牆
*@return true 撞了false沒撞
*/public
boolean
meetwall()else
}/**
* 判斷是否死亡
*@return true=死亡 false=沒死
*/public
boolean
die()
else
}public linkedlistgetbody()
}
定義遊戲:
public class game
});}
/*** 監聽按鍵
*@param e
*/public
void
handlekeypress(int e )
}/**
* 畫背景
*/public
void
drawgrid()
/*** 畫線
*/public
void
drawlines()
for (int i=0;i<=grid.cols;i++)
}/**
* 畫蛇
*/public
void
drawsnake()
node last = snake.getbody().getlast();
int i = snake.getbody().size();
node second = snake.getbody().get(i-2);
drawhead(last,second);
}/**
* 畫食物
*/public
void
drawfood()
/*** 畫三角形蛇尾
*@param n 輸入蛇尾節點和倒數第二個節點
*/public
void
drawhead(node n ,node n1 );
int y=;
graphics.fillpolygon(x,y,3);
}else
if(n.col == n1.col&&n1.row-n.row == 1);
int y=;
graphics.fillpolygon(x,y,3);
}else
if(n1.col-n.col ==1&&n1.row == n.row);
int y=;
graphics.fillpolygon(x,y,3);
}else ;
int y=;
graphics.fillpolygon(x,y,3);}}
/*** 畫得分
*/public
void
drawscout()
if(snake.cout >= 10&&snake.cout<20)
if(snake.cout >= 20)
}/**
* 重新生成食物並且判斷食物是否在蛇上
*/private
void
resetfood()
}if (flag)}}
/*** 判斷是否吃到食物
*@return false 沒吃到 true 吃到
*/public
boolean
meetfood()
/*** 乙個讓蛇隨時間運動的執行緒
*/public
void
start()
if(snake.cout == 10)
if(snake.cout == 20)
}try
catch(interruptedexception e)
}joptionpane.showmessagedialog(null, "game over", "警告", joptionpane.error_message);
}}.start();
}public
static
void
main(string args)
}實現截圖:
貪食蛇程式
define n 200 include include include define left 0x4b00 define right 0x4d00 define down 0x5000 define up 0x4800 define esc 0x011b int i,key int score ...
貪食蛇設計
為什麼叫能走蛇 當我剛知道自己要寫一條這樣的蛇時,我的心情是十分複雜的,之所以叫這個名字,是因為這條蛇只有乙個功能,即聽從玩家的命令,在迷宮內四處走動。怎麼寫出能走蛇 那這條靈活 其實很笨拙 的蛇是如何誕生出世的呢?先寫乙個總控偽 出來,採用自頂向下的思想,一步一步解決具體檔案。頭部如下 一點小總結...
貪食蛇的程式
無聊,分析了乙個用c語言寫的貪食蛇的程式。寫的非常簡練,就是函式的名字起得不是很好。include include define kuan 20 地圖的大小 int iz kuan kuan 地圖 struct jiedian 蛇的結點位置,使用鍊錶結構來儲存蛇身上各結點的位置 point ptsh...