被「羊了個(gè)羊」逼瘋后,鵝廠(chǎng)程序員怒而自制「必通關(guān)版」|GitHub熱榜
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
「羊了個(gè)羊」有多惡心?
能逼程序員氣到擼起袖子自己上……
這兩天,GitHub上就出現(xiàn)這么一個(gè)仿制版,名曰「魚(yú)了個(gè)魚(yú)」。
不同于以「極低通關(guān)率」肝死玩家的原版,此版作者放出話(huà)來(lái)——
沒(méi)廣告!可自定義關(guān)卡和圖案!道具無(wú)限!。
甚至可以定制出這(離)樣(譜)的界面:
目前,該項(xiàng)目已登GitHub熱榜,獲297個(gè)Star。(鏈接已附在文末)
比「羊」更讓人舒適
先看看這款「魚(yú)了個(gè)魚(yú)」體驗(yàn)如何。
從最簡(jiǎn)單模式開(kāi)啟,簡(jiǎn)直不要太Easy,道具都無(wú)需使用。
再看中等和困難模式,稍有難度,還好有道具!
原版的洗牌、撤回、移出可無(wú)限次使用,還有更多玄妙功能。
比如透視,能看到最下方兩列疊起來(lái)圖案依次是什么,這感覺(jué),相當(dāng)于斗地主把最后三張看完了。
再比如圣光,能把一大堆圖案下面的圖層從灰變白,看得更清楚。
最逆天的還是破壞功能,直接消掉3個(gè)同樣圖案:
也就是說(shuō),一直狂按這個(gè)道具能直接通關(guān)。
怒而自制必通關(guān)版
據(jù)作者介紹,自己也是玩「羊了個(gè)羊」幾十次,其間,他用盡道具,看了幾十遍借貸廣告,向富家千金反復(fù)求婚,仍然過(guò)不了第二關(guān)——
他發(fā)現(xiàn)事情不對(duì)勁。
由于方塊生成完全隨機(jī),那越到后期,越來(lái)越多方塊疊壓在一起,可選方塊變少,自然越來(lái)越難,經(jīng)常無(wú)解也是常事。
另一方面,正是極低的通關(guān)率讓每個(gè)「自以為必勝」的玩家上頭得不行,形成了上癮感。
于是……他怒而自制一個(gè)必能通關(guān)的版本。
要求嘛,務(wù)必?zé)o廣告,務(wù)必道具無(wú)限,要能自定義難度和圖案,那更是一件美事兒。
具體到原理,作者提出四大綱領(lǐng)。
首先,游戲全局參數(shù)設(shè)置上,需要將槽位數(shù)量、層數(shù)等變量抽取成統(tǒng)一的全局變量,每當(dāng)修改一處,系統(tǒng)自動(dòng)適配,此外,作者還開(kāi)放了參數(shù)自定義——
嫌槽位不足?可以自己多加一個(gè)!
其次是整體網(wǎng)格設(shè)計(jì)。
為了能快速做出游戲,作者直接將畫(huà)布分為24×24的虛擬網(wǎng)格,類(lèi)似一個(gè)棋盤(pán)——
每個(gè)網(wǎng)格又被劃分成3×3的小單元,各層圖案生成時(shí),會(huì)相互錯(cuò)開(kāi)1-2個(gè)單元,形成層層交疊、密密麻麻的樣子。
第三步是設(shè)計(jì)隨機(jī)生成塊的圖案和坐標(biāo)。
先根據(jù)全局參數(shù)計(jì)算總塊數(shù),游戲難度越高,塊數(shù)和相應(yīng)層數(shù)也越多,然后作者用shuffle函數(shù)打亂存儲(chǔ)所有動(dòng)物圖案的數(shù)組,再依次,把圖案重新填充到方塊中。
至于如何生成方塊坐標(biāo),直接讓程序隨機(jī)選取坐標(biāo)范圍內(nèi)的點(diǎn),同時(shí)隨層級(jí)變深,坐標(biāo)范圍也越來(lái)越小,造成一種——
越往深了去,圖案越擁擠,難度相應(yīng)越高的效果。
△ 大致分布規(guī)律就是越「深」層越「擠」
最后,設(shè)定上下層塊與塊的關(guān)系。
作者先給每個(gè)塊指定一個(gè)層級(jí)屬性,隨機(jī)生成時(shí),給相互重疊的塊綁定層級(jí)關(guān)系,確保消掉上層塊,才能點(diǎn)擊下層塊。
基于上述思路,作者熬夜爆肝幾個(gè)小時(shí),就把游戲雛形做出來(lái)了,還放到GitHub上將代碼開(kāi)源——
他感慨道,總算是滿(mǎn)足了自己的通關(guān)夙愿。
作者介紹
事實(shí)上,「魚(yú)了個(gè)魚(yú)」項(xiàng)目作者「程序員魚(yú)皮」已小有名氣。
據(jù)其個(gè)人公開(kāi)資料顯示,「程序員魚(yú)皮」98年出生,現(xiàn)在鵝廠(chǎng),從事全棧應(yīng)用開(kāi)發(fā),同時(shí),也是騰訊云開(kāi)發(fā)高級(jí)布道師。
工作之外,魚(yú)皮利用業(yè)余時(shí)間做了很多入職大廠(chǎng)經(jīng)驗(yàn)、技術(shù)干貨和資源分享,據(jù)他稱(chēng),在校期間就帶領(lǐng)工作室建設(shè)了幾十個(gè)校園網(wǎng)站。
最后,附上「魚(yú)了個(gè)魚(yú)」在線(xiàn)體驗(yàn)鏈接,收獲通關(guān)喜悅(狗頭):
https://yulegeyu.cn