目录

神庙逃亡

跳一跳

红块逃亡

黄金矿工

永不言弃

涂鸦跳跃

水果忍者

忍者跳跃

画线切割

世界上最难的游戏

贪吃蛇进化论

猫狗大战

祖玛

直升机


神庙逃亡

2014年8月,我基本上就是在神庙逃亡中度过的。

我截下了4种bug的图:

卡在gem install fpm_#include

花了很久才知道这个任务到底是什么意思,miser是吝啬鬼的意思,就是说跑的时候不能碰到金币。

但是没有说细节,后来才知道,指的就是在矿洞里面不能碰到金币。

说实话,这个真的很难!

不过,我还是完成了,然而,完成了之后,就变成了:

卡在gem install fpm_卡在gem install fpm_02

真心无语MDZZ

卡在gem install fpm_拓扑学_03

据说这里叫云端,如果不小心触发了bug到了这里,就完全失去了对身体的掌控了。

刚开始的时候感觉很爽,什么都不用做,他会自己跑,没有障碍,距离一直在增加。

但是没过多久就之间挂了。。。

卡在gem install fpm_拓扑学_04

这运气。。。死的时候刚好钱币占了整个屏幕。

可以清晰的看到,钱居然是破的。。。

与此类似,我还收藏了一个钻石的图片:

卡在gem install fpm_卡在gem install fpm_05

好了,言归正传,本文的标题叫神庙逃亡的无限钻石。

在神庙逃亡已经没什么好玩的时候,我开始借助外挂看能冲到多远。

在网上下载的外挂,说是有无限钻石,但是其实也只有8亿多而已。

具体多少我忘了,不如就用图片里面的数字814778622

这么多钻石,最多能复活多少次呢?

(本文不考虑中途获得钻石)

第一次复活需要1个钻石,第二次需要2个,第三次需要4个。。。。。。

所以,复活n次一共需要2^n-1个钻石

2^29=536870912

所以,这么多钻石可以复活29次。

然后,这一局结束之后,就只剩下277907711个钻石了。

要多少局才能把钻石全部用完呢?

代码:

#include<iostream>
using namespace std;

int f(int n)
{
	cout << n << endl;
	int k = 1;
	while (k * 2 < n)k = k * 2 + 1;
	return n - k;
}

int main()
{
	int n = 814778622;
	while (n)n = f(n);
	return 0;
}

输出:

814778622 277907711 9472256 1083649 35074 2307 260 5 2 1

每运行一次n=f(n)刚好就是一局玩完了,f(n)就是剩下多少钻石。

如果用二进制表示的话:

卡在gem install fpm_#include_06

显然,不断运行n=f(n)的话,n会严格单调递减,而且最后一定会变成0,于是循环结束。

现在,新的问题来了,对于任意的自然数n,运行多少次n=f(n)之后才会变成0呢?

我们用l[n]来表示答案,l是length的意思。

那么,根据f(n)的特点,可以得到关于l[n]的递推式,见代码。

代码:

#include<iostream>
using namespace std;

int l[100000];

int f(int n)
{
	int k = 1;
	while (k * 2 < n)k = k * 2 + 1;
	return n - k;
}

int main()
{
	l[0] = 0;
	for (int i = 1; i < 100000; i++)l[i] = l[f(i)]+1;
	return 0;
}

结果很有意思:

l[100000]={0, 1, 2, 1, 2, 3, 2, 1, 2, 3, 2, 3, 4, 3, 2, 1, 2, 3, 2, 3, 4, 3, 2, 3, 4, 3, 4, 5, 4, 3, ...}

随着i的增大,每次l要不就是增大1,要不就是减小1。

其实,这个只要用数学归纳法就可以证明。

但是不是对i进行归纳,而是对i的2进制的位数进行归纳,详情略。

如果不限于计算机,l是一个无限的数列,那么l将包含所有的正整数。

对于任意n,存在一个最小的m=2^n-n使得,l[m]=n

跳一跳

微信小游戏,最高只玩到230分

卡在gem install fpm_小游戏_07

红块逃亡

apk下载

卡在gem install fpm_拓扑学_08

这个控制类游戏,和其他的控制类游戏相比,有一个显著的特点,那就是局面并不是随机的,4个蓝色格子的运动都是按照反射定律来的,只是速度不一样而已。

也就是说,这个游戏可以根据玩的经验设计出一条安全路线,每次只要按照安全路线走就不会被撞到,从而一次次延长安全路线,一次次破纪录。

下面是我设计的路线:

卡在gem install fpm_ios_09

卡在gem install fpm_卡在gem install fpm_10

卡在gem install fpm_ios_11

卡在gem install fpm_ios_12

黄金矿工

4399在线play

卡在gem install fpm_拓扑学_13

永不言弃

永不言弃和永不言弃2貌似没多大差别,不过我玩的应该是2,好像只过了几关。

卡在gem install fpm_ios_14

涂鸦跳跃

涂鸦跳跃和涂鸦跳跃2(下图)差别也不大,2无非就是加了几种元素,规则复杂了一点点,核心玩法不变。

卡在gem install fpm_小游戏_15

水果忍者

卡在gem install fpm_卡在gem install fpm_16

忍者跳跃

卡在gem install fpm_卡在gem install fpm_17

  

卡在gem install fpm_ios_18

画线切割

在线play

图形会不断变大,不停的画线切割掉一部分。

卡在gem install fpm_#include_19

世界上最难的游戏

在线play

卡在gem install fpm_拓扑学_20

贪吃蛇进化论

微信小游戏,随随便便就打到了总榜第三。

卡在gem install fpm_拓扑学_21

很容易就可以把身体盘满整个屏幕:

卡在gem install fpm_ios_22

 

卡在gem install fpm_拓扑学_23

猫狗大战

在线play

卡在gem install fpm_小游戏_24

祖玛

在线play

卡在gem install fpm_小游戏_25

卡在gem install fpm_ios_26

直升机

在线play

卡在gem install fpm_小游戏_27