发到手里的牌一定放得下
这类消除游戏最常被骂的一点,是发下来三块哪儿都放不进去——你不是输给自己的失误,是输给了发牌。这里不会。每一手牌在交到你手上之前,都会拿你此刻真实的盘面去验一遍:三块里只要一块都放不下,就重抽。万一抽二十次还不行,直接给你三个 1×1 的小块。你依然会输,但只会输在牌已经摊开、你已经动过手之后。
iPhone 木块拼图
8×8 的棋盘,一次三块木头。填满一整行或一整列就消掉。没有下落计时,也没有秒表,一局能撑多久,只取决于你把东西放在哪儿。
iPhone · 免费 · 无广告、无账号,飞行模式照常玩
这类消除游戏最常被骂的一点,是发下来三块哪儿都放不进去——你不是输给自己的失误,是输给了发牌。这里不会。每一手牌在交到你手上之前,都会拿你此刻真实的盘面去验一遍:三块里只要一块都放不下,就重抽。万一抽二十次还不行,直接给你三个 1×1 的小块。你依然会输,但只会输在牌已经摊开、你已经动过手之后。
一行八格全占满就消,规则只有这一条。橡木、枫木、胡桃、樱桃、柚木、白蜡、乌木这七种木色,是为了让你看清刚才放下去的是什么形状,不是让你去凑同色。游戏里没有任何一处要求你按颜色配对,也就意味着没有任何一处会因为你没留意颜色而惩罚你。
一次消掉多行,远比分几次消掉同样多的行值钱——行数在分数里是平方进去的。在这之上还有连击计数:每一次「放下去就有消除」的落子都会让它加一,整体再乘一遍;一旦某一手放下去什么都没消掉,它立刻归零。真正被排行榜奖励的能力,是把连击一直吊着不断。
消除和连击会把能量条一点点充满。充满之后可以花掉一次,把整个棋盘连同冰块一起清空,而且连击不会因此中断。它不用买,不用看广告换,也不锁在任何一种货币后面——它是棋盘自己给你的资源,有意思的地方在于什么时候花。
炸弹会炸掉落点周围的 3×3,压到边上就自动裁掉。彩虹块是一个单格,任何一个你还留着的空位都塞得进去——盘面开始变得零零碎碎的时候,你要的就是它。冰块要消两次才没:第一次消除把它敲裂,第二次才带走;但被炸弹炸到,或者被全盘清空扫到,一次就够。
关卡不是「更难的无尽模式」。每一关有自己的目标——消掉多少行、拿到多少分,或者把盘面上的冰块全部清掉——很多关还自带一个预设的起始盘面和一个步数上限。前几关在空盘上教你,没有特殊块。最后几关直接甩给你一整片冰,再数着你的步数。带步数上限的关卡按剩余步数给一到三颗星。
每日挑战用本机日历日期做种子,在设备上生成。两台日期相同的手机,会算出完全相同的一串手牌,什么都不用下载。主页会显示你今天的成绩,并倒数到下一局。
所有规则——能不能放、哪几行满了、炸弹炸到哪里、冰块掉几层血、算分、连击、能量、以及「还有没有地方能放」这个判定——全都写在纯函数里:不持有状态,也从不碰界面。随机数来自带种子的发生器,中途绝不去读系统时钟。结果是一个跑两遍表现完全一样的游戏,以及 128 个替它作证的单元测试。
发到你手里的三块不是闭着眼睛抽的。上一手用完到下一手出现之间,发生的是这些事。
所以一局的结束,永远是「你手上剩下的块放不下了」,而不是「刚发给你的这一手从来就放不下」。这两者的差别,就是输掉和被判输的差别。
没有。上架的这个包不发任何网络请求:没有统计 SDK,没有广告 SDK,没有账号体系,背后也没有服务器。
你的最高分、解锁到第几关、拿了几颗星、今天每日挑战的成绩,以及各项设置,都存在设备钥匙串里,删掉 App 就一起没了。
每日挑战是拿你手机上的日期算出来的,不是取回来的——这既是它在飞行模式下照样能玩的原因,也是你的任何一局都不需要被上报到任何地方的原因。
唯一会向外走的链接,是设置页里的隐私政策、用户协议和支持邮箱,它们交给 Safari 和邮件去打开。
免费。三种模式、全部关卡、全部特殊块,第一次打开就都在。
没有任何形式的广告——没有横幅,没有两局之间的插屏,也没有「看个视频接着玩」。没有内购,没有货币,没有体力条,没有每日签到奖励的那一套循环。
没有。方块不会掉,也没有任何东西在倒数。关卡可以有步数上限,但那是一份预算,不是一只秒表——你想一步想多久都行。
不能,这是故意的。落子即定,正因为如此,落子之前的那一下思考才值钱。不做提示功能也是同一个理由。
完全不重要。一行填满就消,跟是什么木头无关。木色的作用是让盘面看得清楚。
判定的不是「还有没有空位」,而是「放不放得下」。当你手上剩下的块在盘面上找不到任何一个合法位置时,这一局就结束了。零散的单个空格可以让盘面看起来还很空,却拒绝你手上的每一种形状。
任何时候都不需要,每日挑战也一样,它是用设备上的日期算出来的。