大家好,又见面了,我是全栈君。
这个能轻松到达 4096. 所以取名为 4096了。
github地址是:https://github.com/chilly/4096
假设想直接玩游戏訪问 4096.chillyc.info
这个4096 是直接copy的2048。 这个游戏须要消耗比較多的脑力。当然费了脑力还要拼拼运气。
原因在于生成随机方块的地方90%会生成2,10%会生成4. 最后一搏的那个方块非常有可能会由于2。4生成的问题导致游戏失败。
这个原因事实上是为让LP打到更高的分数。当然还要有些难度。不能移动一个方块瞬间就变成8192。
还得让LP不能由于运气不佳挂掉。戴着枷锁跳呀跳。所以直接改了2048的源代码。
事实上非常细节的,我也没有细致的研究。
2048这个游戏代码量不大。最基本的两个类是game_manager.js 和 grid.js。游戏的主要流程:
做这款游戏的重点是要去除霉运。添加好运
以下做了几点优化点:
1. 真没有什么能够优化的点时,对4产生的概率添加一下。提高到50%。简单暴力
2. 生成的2须要在2旁边,生成的4须要在4旁边:例如以下图:
在2旁边生成2
在4旁边生成4
3. 误操作导致最大值移动。
在误操作时须要弹个框帮助用户确认。
只是为了不要频繁的弹窗,在最大值大于512后才開始提示。这里的算法是推断最大值是否有移动。假设移动,是否会移入到四个角。
是否是在边界处移动。而非向内部移动。
4. 随机生成的色块,能够帮助某些值merge.这里比較tricky的地方。假设某个比較大的两个值须要merge, 可是这两个值差了一个空格。那么就在对应的地方补上2、4。使得这两个比較大的值能够merge。
比例如以下图中的两个32色块:
这个图中向左移动后,32和32会移动到左边。那么第二行的32的右边出现小方块,那么下一次向右移动,32就有机会和32合并。
例如以下图所看到的:
然后继续右移,32能够和32合并了:
5. 在最空旷的地方生成2/4. 这个比較简单就是找4联通最大的空白所在的点。然后将此点设置为2、4。
例如以下图所看到的:
当然,经过这系列优化之后。难度有所减少。但不意味着你不动脑筋能够玩到4096. 另外另一些值得优化的点。
这些优化会在以后慢慢放出来。
如今游戏中bug有些多。像这种游戏也不知道怎么做自己主动化測试的。。
。。。。慢慢做吧。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115618.html原文链接:https://javaforall.cn