簡單的貪食蛇

2021-08-13 17:09:48 字數 3316 閱讀 1364

先分析有哪些物件:

蛇: 屬性:節點,長度,顏色,運動的方向,生長的標記。

方法:構造一條蛇,移動,改變方向。

食物:

屬性:顏色,位置(橫縱座標)

方法: 初始化乙個食物,繪製

網格:

屬性: 行,列,格仔大小,背景的顏色。

方法:初始化網格

遊戲 屬性:蛇,食物,網格,蛇的移動速度,視窗,畫布,繪畫物件。

方法:初始化乙個遊戲;判斷是否吃到食物,判斷是否吃到自己,判斷是否撞牆,畫蛇,畫食物,畫網格

節點:行,列

蛇初始化: 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...