java編寫貪吃蛇簡(jiǎn)單版 java編程貪吃蛇游戲的原理和用到了哪些內(nèi)容知識(shí),能講解一下嗎?
java編程貪吃蛇游戲的原理和用到了哪些內(nèi)容知識(shí),能講解一下嗎?將蛇身體的每個(gè)塊視為一個(gè)對(duì)象(對(duì)象存儲(chǔ)塊的坐標(biāo)和相關(guān)信息),作為一個(gè)節(jié)點(diǎn)存儲(chǔ)在線性列表中,然后設(shè)置一個(gè)變量來標(biāo)記蛇的方向(可以通過按鍵進(jìn)
java編程貪吃蛇游戲的原理和用到了哪些內(nèi)容知識(shí),能講解一下嗎?
將蛇身體的每個(gè)塊視為一個(gè)對(duì)象(對(duì)象存儲(chǔ)塊的坐標(biāo)和相關(guān)信息),作為一個(gè)節(jié)點(diǎn)存儲(chǔ)在線性列表中,然后設(shè)置一個(gè)變量來標(biāo)記蛇的方向(可以通過按鍵進(jìn)行更改)。大多數(shù)人將每個(gè)節(jié)點(diǎn)與所指向的下一個(gè)節(jié)點(diǎn)相等,讓頭部節(jié)點(diǎn)改變位置,實(shí)現(xiàn)轉(zhuǎn)彎和移動(dòng)。該算法的復(fù)雜度太高(O(n))。實(shí)際上,只需要兩個(gè)步驟就可以插入頭節(jié)點(diǎn)和刪除尾節(jié)點(diǎn)。新插入的頭部節(jié)點(diǎn)的位置根據(jù)蛇的當(dāng)前方向確定。
用java編寫貪吃蛇,應(yīng)該怎么寫?
寫這些東西有用嗎?有時(shí)間看看和學(xué)習(xí)最新的框架,學(xué)習(xí)經(jīng)典框架的源代碼,設(shè)計(jì)模式的使用,以及數(shù)據(jù)結(jié)構(gòu)。非常感謝。這些是最重要的事情。當(dāng)你找工作時(shí),人們會(huì)問你怎么寫蛇?技術(shù)總監(jiān)只會(huì)問您如何在框架中實(shí)現(xiàn)各種服務(wù),以及如何解決業(yè)務(wù)邏輯。不要?jiǎng)?chuàng)建這些虛擬服務(wù)。別忘了Java的主要功能
Java編寫貪吃蛇游戲的大體思路是什么?
對(duì)于代碼和jar包,我有一個(gè)大致的想法:首先,我需要在畫布上畫一個(gè)塊,這是蛇頭,但是蛇會(huì)長(zhǎng)大,所以我需要用一個(gè)東西來存儲(chǔ)蛇,它可以使用array、ArrayList、LinkedList等等(我更喜歡LinkedList)。雖然我們說的是蛇,它實(shí)際上是一個(gè)塊的X和Y坐標(biāo),蛇是畫出來的,但是蛇可以移動(dòng)。這需要一個(gè)線程和move()方法來保持它的移動(dòng)。蛇移動(dòng),但它沒有方向。在這個(gè)時(shí)候,我們需要一個(gè)方法,使它有一個(gè)方向。但我們應(yīng)該注意相反的方向。我們不能改變方向(也就是說,我們不能使用它,如果我們按下它了)。蛇能動(dòng)啊動(dòng),但到了邊緣就不行了。此時(shí),蛇無法移動(dòng),它正準(zhǔn)備讓它離開邊界,結(jié)束游戲。下一步是吃東西。吃東西很容易。用一個(gè)隨機(jī)數(shù)來處理它。注意食物不能超出邊界。當(dāng)有食物時(shí),蛇會(huì)吃掉它。這時(shí),它就要用一種方法來吃東西了。當(dāng)它被吃掉時(shí),讓蛇長(zhǎng)出一塊,食物就會(huì)重新出現(xiàn)。蛇長(zhǎng)大了,但它能碰到自己的身體。所以你必須做一個(gè)方法讓它在游戲結(jié)束后相遇,這樣最初步的想法就完成了。
接下來,有一些細(xì)節(jié)。