如何在程序里留下彩蛋?
時間:2024-01-10 00:48:01 | 來源:網(wǎng)站運營
時間:2024-01-10 00:48:01 來源:網(wǎng)站運營
如何在程序里留下彩蛋?:第一次修改
1,關(guān)于該游戲彩蛋的設(shè)置(僅是自己的一些看法)
原題目為:如何有趣的在自己的程序留下彩蛋?
我覺得主要可以考慮這幾個方面:
(1).觸發(fā)方式
應該和自己的程序或游戲有關(guān),要有那種意料之外的感覺,以前玩的FC游戲很多都有各種彩蛋,比如馬里奧里面各種隱藏的格子和可以上天的樹。具體這我這個小游戲中,是在一次玩的過程看到521連在了一起,所以就想到這個觸發(fā)的方法,當然對于一次游戲這個彩蛋只會顯示一次...
(2).觸發(fā)概率
至少應該是存在被發(fā)現(xiàn)的可能,不然要是辛苦寫個彩蛋沒人看到豈不是很尷尬,但也不能太頻繁以至于影響用戶體驗
(3).觸發(fā)后的獎勵
游戲的話觸發(fā)彩蛋一般都會有額外的獎勵,比如跳一跳里面有一些格子,如果在上面占的事件久一點會加好多分。馬里奧里面找到隱藏的蘑菇可以加一條命,找到上天的樹可以獲得很多的金幣等
2,如何自動求解該游戲
先上效果,目前可以做到簡單移動(30步左右)自動求解,但該解并不是最優(yōu)解,我只移動了十幾步,但找到的解移動了65步。這是由于搜索的解空間并不是完整的解空間導致的。
主要的思想
(1).先使用的普通bfs,但是只能解決移動十步左右,完全不能滿足需要,但想一想這個問題的規(guī)模貌似在4^n級別,其實也差不多了
(2). 使用A* 算法,設(shè)計H函數(shù)為,當前狀態(tài)每個格子到原始位置的曼哈頓距離之和,使用堆維護open數(shù)組,可以做到目前的效果,在30步左右都可以在短時間內(nèi)找到解
3.一些其他思考
(1).能不能在理論上求出所有可以到達原始狀態(tài)的狀態(tài)數(shù)目
用一維數(shù)組存放的話,總的狀態(tài)數(shù)目是16的階乘,大概在10^13 這個級別,但是由于有大量非法狀態(tài),所以估計應該在10^10這個級別,至少百萬的級別沒跑出來。。。
(2).能不能使用目前比較流行的機器學習技術(shù)求解這個問題
對這個方面不太了解,小白真心求教。。。
第一次使用分割線
————————————————————————————————————
因人而異吧
最近準備玩一玩小程序,于是先搞了個簡單的小游戲
這是之前家里電視機上自帶的游戲,移動空白格子還原到之前的初始狀態(tài)。(很無聊。。。。)
在測試的過程中突然發(fā)現(xiàn)這些數(shù)字可以拼成一個串,沒錯就是爛大街的5,2,1,13,14。
于是就在這個小游戲里面加了一個彩蛋,當有人無意間觸發(fā)這個字符串的時候就是彈出一句告白。
每次想到有那么億萬分之一的可能,她會玩這個游戲,又有億萬分之一的可能她拼到了這個字符串, 即使她不知道是誰發(fā)的,只是想想就覺得很幸福了 。。。
ps:
其實之前也有一次加過一次彩蛋,那時候她想學web,在教她做tab切換時,我在標題里面加了三個字符I,?,U,她可能沒有發(fā)覺,那天我切換tab的頻率是多么的高