/** * 判斷蛇是否吃到了本身的身體 * @return 若是蛇吃到了本身的身體則返回true,不然返回false */ public boolean isEatBody(){ Body head = snakeBody.getFirst(); for(int i = 1; i < snakeBody.size(); i++){ Body body = snakeBody.get(i); if(head.x == body.x && head.y == body.y){ return true; } } return false; }有了這個方法以後,咱們在蛇的move()方法中添加進對這個情況的判斷,以下:
//判斷蛇是否吃到了石頭或者是本身的身體 if(isEatStone() || isEatBody()){ die(); }那麼至此,咱們的遊戲大致上就算完成了,最後呢,我修改了Snake.Body類中的drawMe的實現,使得咱們的Snake有了一個紅色的頭,這個呢我就不貼代碼了,你們看源代碼吧,下面仍是給一張咱們最後完成的效果圖:
這個項目呢,第一階段呢咱們就到這裏結束了,上圖呢就是最後一個項目運行後的截圖了,呵呵,是否是頗有愛呢。
小小的總結一下吧。貪吃蛇這個項目呢,個人用意只是幫助咱們初學Java編程的同窗熟悉一下咱們Java中的基本語法以及基本的數據結構的使用方法。那麼,若是你可以學習完這個項目,我想你會對Java中的鏈表(List),雙向有序鏈表(LinkedList)等數據結構有一個比較直觀的認識。同時,對於Java中的三種最基本的結構(順序結構、選擇結構和循環)有一個直觀的理解。同時,我也想透過這個項目告訴咱們初學Java編程的少年們,其實編程就是如此的簡單愉快,不是像你們想象的那麼難如下手的。千里之行,始於足下,我想作完這個項目,你會有這樣的感覺。
固然,話又說回來,既然我說了這只是個人引入,那麼接下來,咱們將會討論一些更深層次的東西和更深遠的東西。所以,在下一個系列中,我會就這個項目進行更深層次的挖掘。咱們會討論一些關於項目架構和軟件設計之類的東西。我一直以爲,能寫程序和會寫程序是兩碼事,寫程序其實也能夠頗有藝術感。在接下來的時間裏,我就將和你們討論一些關於軟件和代碼之中的藝術的問題,但願你們能喜歡。
最後,是咱們全部關於Snake項目的源代碼的合集:http://kuai.xunlei.com/d/Ae2cA9B2QhnfUAQA63b java