第二十七章 收尾(中)
問(wèn)題就是,我已經(jīng)過(guò)關(guān)了,居然沒(méi)有過(guò)關(guān)提示!我仔細(xì)地想了一下,似乎我的程序里邊根本就沒(méi)有相關(guān)的邏輯!
想到此處,我不禁深感汗顏,這可是一個(gè)重大的bug!
古人云:亡羊補(bǔ)牢,為時(shí)不晚。
古人還云:知錯(cuò)能改,善莫大焉。
于是我停下來(lái)思考這個(gè)問(wèn)題,同時(shí)還想了一下程序還存在什么問(wèn)題。
除了沒(méi)有關(guān)卡完成判斷的邏輯外,還有就是現(xiàn)在的關(guān)卡有一個(gè),如果要切換關(guān)卡就要修改地圖數(shù)組里面的內(nèi)容。
目前切換關(guān)卡的模式是手動(dòng)修改數(shù)組,要是游戲需要給其他人玩兒,這就死翹翹了,因?yàn)槲业男』锇閭兓旧隙疾粫?huì)編程啊。這樣一來(lái),就會(huì)嚴(yán)重影響到我在他們面前裝十三的體驗(yàn),所以這個(gè)問(wèn)題必須得解決,刻不容緩。
「可以將地圖數(shù)據(jù)放在一個(gè)文件里邊,切換關(guān)卡的時(shí)候從文件中讀取對(duì)應(yīng)的數(shù)據(jù)就可以了?!?p> 老爹給出了他的方案,但是我不會(huì)呀。
在我的追問(wèn)之下,老爹說(shuō)要等到學(xué)了文件指針才能完成這個(gè)功能。這就沒(méi)有辦法了,畢竟巧婦也難為無(wú)米之炊。既然這個(gè)問(wèn)題暫時(shí)不能解決,那就先把關(guān)卡完成的判斷實(shí)現(xiàn)了再說(shuō)。
到時(shí)候給那些小伙伴玩兒了之后,要是他們還要玩兒后面的關(guān)卡,就讓他們轉(zhuǎn)賬給我!我才給他們解鎖新地圖。但是他們那里知道,要解鎖新的地圖根本就不需要修改邏輯代碼,只要復(fù)制粘貼替換地圖數(shù)據(jù)就好了。
想到這里,我似乎已經(jīng)看到了大家爭(zhēng)著給我轉(zhuǎn)賬,讓我解鎖新地圖的情景了。
「這種操作模式有點(diǎn)熟悉的樣子?。∠炔还苓@么多了,還是考慮如何實(shí)現(xiàn)過(guò)關(guān)功能吧。
過(guò)關(guān)的關(guān)鍵在于所有的羊都被推進(jìn)黑鍋當(dāng)中,所以需要一個(gè)變量來(lái)統(tǒng)計(jì)總共有多少只羊,還需要另一個(gè)變量來(lái)統(tǒng)計(jì)被推進(jìn)黑鍋中的羊的個(gè)數(shù)。
當(dāng)他們兩個(gè)相等的時(shí)候,那就是過(guò)關(guān)了!」
我自己在腦中思考這其中的門(mén)道,在確認(rèn)了即便思路沒(méi)有問(wèn)題后,接下來(lái)就是如何實(shí)現(xiàn)這個(gè)功能。
「羊的個(gè)數(shù),只需要在地圖加載的for循環(huán)中加載羊的那個(gè)if中添加一句代碼就好了。
至于已經(jīng)推進(jìn)鍋里的羊的個(gè)數(shù),這個(gè)要在下一個(gè)位置是羊,下下個(gè)位置是鍋的地方統(tǒng)計(jì)。
那什么時(shí)候進(jìn)行判斷呢?嗯~,每一次移動(dòng)都需要判斷!」
我很快理清楚了實(shí)現(xiàn)方式,于是開(kāi)始寫(xiě)代碼。但是因?yàn)榇a好像有些太多了,而且有些代碼相似度很高,容易產(chǎn)生錯(cuò)覺(jué)。尋找起來(lái)著實(shí)有些麻煩,不過(guò)好在我耐下性子,一行一行地仔細(xì)核對(duì),總算是完成了。
接著就是緊張的測(cè)試,放了一張簡(jiǎn)單的地圖進(jìn)去,看到調(diào)試窗口里邊打印出來(lái)的「恭喜過(guò)關(guān)!」的時(shí)候,我一下從椅子上跳了起來(lái)!成了!
感覺(jué)有些不真實(shí),我居然在沒(méi)有老爹的幫助下,靠我自己?jiǎn)为?dú)完成了一個(gè)功能!于是我強(qiáng)行按捺住激動(dòng)的心情,又換了兩張地圖測(cè)試了一遍,都沒(méi)有問(wèn)題!
我激動(dòng)到無(wú)以復(fù)加,那種感覺(jué)真的沒(méi)有辦法用言語(yǔ)來(lái)形容,讓我居然有點(diǎn)想哭,久久不能平靜下來(lái)。
這一刻,我覺(jué)得之前為之付出的辛勞都是值得的。
「老爹,老爹,我成功了,這個(gè)游戲完成了!」
我跑到正在沙發(fā)上看書(shū)的老爹面前嘚瑟道,臉上就差沒(méi)有刻著「快表?yè)P(yáng)我,快表?yè)P(yáng)我」的字眼了。
「真的么?」
老爹放下他手中的那本「機(jī)器視覺(jué)理論」,笑著問(wèn)道。
「嗯吶,我……」
我嘰嘰喳喳地將整個(gè)實(shí)現(xiàn)過(guò)程和我當(dāng)時(shí)的心里活動(dòng)都完完整整地講述給了老爹聽(tīng),老爹也全程微笑著聽(tīng)我說(shuō)完。
「嗯,還是不錯(cuò)的,果然是個(gè)學(xué)習(xí)編程的料?!?p> 老爹先是拍了拍手,接著又輕輕地摸了摸我的頭。
如果寫(xiě)好程序不在別人面前演示,那和錦衣夜行有什么區(qū)別?在接受完老爹的贊揚(yáng)后,我迫不及待地將他拉進(jìn)了我的房間,不由分說(shuō)地要他親自玩兒這個(gè)游戲。
說(shuō)實(shí)話(huà),在老爹玩兒的過(guò)程中我還是有點(diǎn)緊張的,生怕半路又殺出個(gè)bug出來(lái),這個(gè)赤果果地打臉么?還好接連玩兒了幾個(gè)地圖后,都沒(méi)有出什么問(wèn)題,我這才松了一口氣。
但有的時(shí)候,往往你越怕什么,它就越會(huì)發(fā)生,這大概就是所謂的墨菲定律。
就在我以為大局已定的時(shí)候,墨菲她顯靈了!老爹明明還剩下一只羊沒(méi)有推進(jìn)鍋里,但是調(diào)試窗口里面居然打印出了「恭喜過(guò)關(guān)!」的字樣!
「這是怎么回事?不應(yīng)該出現(xiàn)這種情況?。 ?p> 我感到有些怪異,一點(diǎn)都不相信我的程序有問(wèn)題。因?yàn)槿绻绦虻倪壿嬚娴挠袉?wèn)題的話(huà),之前嘗試了那么多次,早就應(yīng)該出現(xiàn)這個(gè)問(wèn)題了啊。
在腦中再次將實(shí)現(xiàn)過(guò)關(guān)判定這部分的邏輯回顧了一邊,我越發(fā)肯定自己的代碼是沒(méi)有問(wèn)題的。
「會(huì)不會(huì)是編譯器出問(wèn)題了?還是電腦開(kāi)機(jī)太久了,鬧幺蛾子?」
于是我開(kāi)始懷疑天,懷疑地,甚至連空氣都開(kāi)始懷疑,始終不愿意相信是自己的程序出了bug。如果不是因?yàn)槔系谶@兒坐著的,我多半就要執(zhí)行他傳授給我的程序員界的「三重真言」:重編、重啟、重裝。
重編是重新編譯程序,重啟是重新啟動(dòng)編譯器和電腦,重裝嘛,重新裝編譯軟件和電腦系統(tǒng)。
接下來(lái)發(fā)生的事情,似乎證明我的懷疑是對(duì)的。因?yàn)槔系滞鎯毫艘淮危@次程序又正常了!
老爹沉默不語(yǔ),將鼻梁上左邊鏡片缺了一塊的近視眼鏡取了下來(lái),從我電腦桌上拿了一片濕紙巾拭擦眼睛。
看他的神情,似乎是在思考什么。
約莫一分鐘過(guò)后,老爹重新戴上眼睛,又玩兒一把游戲。
只見(jiàn)老爹將一只羊推進(jìn)鍋里后,又將它推出來(lái),然后又推進(jìn)去,如此循環(huán)往復(fù)4次后,調(diào)試窗口居然打印出了「恭喜過(guò)關(guān)!」的字樣!
我臉上的表情驟然凝固,死死地盯著這四個(gè)字。不久之前因?yàn)閎reak的事情剛被打臉,本以為這次能夠扳回一城,沒(méi)想到又被打臉了。
「我知道問(wèn)題出在哪兒了!」
老爹笑著說(shuō)道。
即便我心情陷入了低谷,但還是很想知道為什么會(huì)這樣,于是強(qiáng)打起精神聽(tīng)老爹的話(huà)。