首页
排行榜
发现
动态
云游戏
论坛
创作者中心
发布动态
详情
评价
495
论坛
Android 资料
iOS 资料
bdpq
官方入驻
9.3
预约
2411
关注
11 万
厂商
睡神飞工作室
游戏介绍
上次更新于2016/10/30
烧脑
休闲
益智
独立游戏
简介
睡神飞烧脑系列初代作品,专虐高智商! 苹果【Challenge your brain】专题推荐的全球28个烧脑游戏之一。 “bdpq” 是我花了不少时间创作的一个原创智力游戏。 玩法极其简单,谁都能在几秒钟内学会怎么玩。 但想要还原所有字母却非常非常难,一些人可能好几十天也解不出来个三阶模式。 只有百分之一的人能还原五阶模式。 【游戏玩法】 点击一个字母来选中它所在行与列的所有字母, 左右或上下滑动可将bdpq这四个字母翻转成它们中任何一个字母, 将所有不同字母变成相同的一种字母就赢了。 这个游戏去年五月发布,到现在为止已经有大概五种通用解法了。 【题外话】 作为一个外行的独立开发者,自己摸爬滚打开发游戏已经三年了。在这两年里做了十几款游戏,始终没有自己特别满意的。但一路走来始终记得的是当初为何要进入这行,就是想做出原创的好游戏,上一款游戏花了很多时间心血但却是个失败之作,于是想着试试走极简路线,从游戏核心玩法上作出创新,设计出一款简单又耐玩的游戏给大家,希望大家能喜欢。官方QQ群611217770 睡神飞工作室
供应商 longyufeng
开发者的话
这个游戏是睡神我进入烧脑系列游戏开发后的第一款作品,看似简单却很难,看似很难却又意外简单,目前已知五种解法,你能找到另外的解法么?官方QQ群611217770
评价
共 495 条
去评价
蓝白
玩过
写了个程序把游戏秒了……
感谢各位玩家之前的评价,我是比较膜拜各位自己总结出规律的,由于我比较菜,只能写写代码了。
下面是程序代码,比较暴力……
如大家所说,上下与左右是不相关的,故此程序只解其中一种状态
代码仍有许多可优化之处,还请大家谅解
---------我是分割线----------
#include<iostream>
#include<cmath>
#define N 25 //对应5阶
using namespace std;
bool q[33554432];//数组规模为2^25,修改此处与N的定义值可解出更高阶
unsigned short num(int m,int n) {
unsigned short p = m % 2;
while (n > 0) {
m /= 2;
p = m % 2;
n--;
}
return p;
}
int pow2(int n) {
int output = 1;
while (n > 0) {
output *= 2;
n--;
}
return output;
}
int flap(int m, int n) {
int a = (int)sqrt(N);
int r = n / a;
int c = n - a*r;
m += pow2(n)*(1 - 2 * num(m, n));
for (int i = 0; i < a; i++)m += pow2(r*a + i)*(1 - 2 * num(m, r*a + i));
for (int i = 0; i < a; i++)m += pow2(c + i*a)*(1 - 2 * num(m, c + i*a));
return m;
}
void outputmap(int m) {
int a = (int)sqrt(N);
cout << "--------" << endl;
for (int i = 0; i < N; i++) {
cout << m % 2;
m /= 2;
if (i%a == a - 1)cout << endl;
}
}
void dfs(int m, int c) {
if (q[m])return;
else q[m] = true;
if (m == 0 || m == pow2(N) - 1) {
outputmap(c); return;
}
for (int i = 0; i < N; i++) {
if (num(c, i) == 0)dfs(flap(m, i), c + pow2(i));
}
}
int main() {
int map = 0;
for (int i = 0; i < N; i++) {
char p;
cin >> p;
map += (p - '0')*pow2(i);
}
dfs(map, 0);
return 0;
}
输入格式:
对于n阶,输入n行,每行n个字符
字符为数字0或1,对应翻转的两种状态
输出格式:
n行,每行n个字符;
字符0代表不翻动此位置的卡片;
字符1代表翻动此位置的卡片。
(当然,大家可根据0与1的多寡决定何者为所需翻动的卡片)
输入范例:
01000
11111
01000
01000
01000
输出范例:
00000
01000
00000
00000
评价:
UI简洁好看。
玩法可玩性高,理论上,n阶可以有
(2^(n^2)-2)*2^(n^2)
种关卡(未排除对称、旋转重回关卡)
bdpq这些放一起实在是太像了,玩着有点眼花2333
如果出个diy卡片颜色(或皮肤)什么的可能会舒服些2333
由于我懒+菜,就当作锻炼写代码啦_(:3」∠)_
2017/6/16
来自 小米5S
Sir pneumonia
游戏时长 98 分钟
值得一玩。模式稍微有点枯燥,最多封顶5*5,缺少那么点兴奋感,不过也还可以了。似乎没什么广告大赞!!我研究了一下,毫无头绪的话可以来看看。(已更新方法,无脑流氓法直接见分割线更新的部分,前面的可作参考资料)(还是不懂的先看最后例子)
◆⒈这游戏的操作有两个自由度,也就是二维的,分别是纵和横,可以独立地来操作这两个维度。每个自由度有两个态,分别是上下与左右:具体地,也就是在横向变换上,bp属于一个态(看字母的形状),qd属于另一个态;同理,对纵向变换来说,bd属于一个态,qp算另一个态。我们可以独立对两个方向分别进行操作,两个方向互不影响。
◆⒉当玩到后面矩阵变大了就没法瞎玩了,这对应物理上的熵增原理,即系统的无序度总是倾向于变大的。那么要达成目标我们应该想办法让系统变得有序,而有序的特征便是对称性!要从对称的角度来想办法。具体地,我是这么考虑的:根据前面第一条,我们可以一次只考虑一个方向的整理,完成之后再搞定另一个方向。首先通过几个直观的变换将各个元素尽可能多地变成某一个态(如:4*4的模式下,考虑横向变换,开局是8个b/p态,8个q/d态。我们考虑把它们初步变换成尽量多的d/q态,那么选择一个元素,如果由它展开的十字形区域包含4、5、6或7个的p/b态,我们就就行一次左右变换,这样就有了更多的d/q态。如上操作直到极限)。这样之后就比较清爽了,剩下不多的p/d态(上面例子里面的情形)往往有几个是对称的,考虑以它们为线索进行一些对称的操作,一部分一部分地考虑,慢慢就能搞成同一个态了。
◆3.对称操作举例:同样是上面所述的4*4情形中。a.对某一行(列)全部进行左右(上下)变换,可以使除这行(列)的元素全部翻转;b.画个坐标系,对(1,4),(1,3),(1,2),(4,4),(4,3),(4,2)全部进行左右变换,可以使(1,1)、(4,1)发生翻转。等等。聪明的人可能已经发现了,这个操作的效果和矩阵具体维数也有关系,以上例子只适用4*4情形,5*5要重新找规律,不过不是太难找的。
前来提供一种套路,希望能给一头雾水的小伙伴一些帮助。物理狗用了一点专业名词,我感觉应该写得还算清楚吧,看不懂可以问我。
我按这个套路走感觉有点像做中级数独那种感觉,可以做出来不过有点小辛苦,玩久了有点小枯燥,所以四星。
============日常更新(流氓方法)=========
!!!!!发现一种流氓法,根据第一条,再用一点记忆力就行了:把所有的相同态一次性进行相应自由度的操作就能完成这个自由度的整理了。比如把初始态里面所有b/p的位置记住,对这些位置都进行一次左右操作,这样横向就整理好了。纵向同理。这个我在5*5里面试了几次都成功了,不造有没有例外。(具体的例子我在最后加上了)
●这个我今天在考虑不对称性的来源,原理上讲,所有的不对称性都来源于那些不同的元素,那么对它们同时进行操作,就是最合适的对应于当前情形的“对称”操作了。(获得终极奥义:哪些不对点哪些)
●今天又试了下,好像有的矩阵用这方法一次整理不出来,不过会变得简单很多。懒得推敲的话重复使用流氓法就好了。
●========再来更新加个栗子===========
bppp
pppp
bppp
pppp
把当前所有b的位置(1,4)(1,2)进行上下操作即可。若一次没有成功则重复该过程。
具体过程:
一次变换后
bbbb
pppp
bbbb
pppp
根据原理,接着把第一、三行全部上下变换
得到
pppp
pppp
pppp
pppp
完成。当然,选择p而不是b作为变换对象也是可以的。
2017/1/19
来自 索尼Xperia Z5 Compact
官方
睡神飞工作室
:
相当好,我按照你这个攻略已经成功突破第一关了,你真是个小机灵鬼
chenkhan
游戏时长 38 分钟
打算用严谨的数学证明我的解法。
事实1
左右和上下是无关的,是可以分开考虑解决的,只需考虑bd。
事实2
多次操作任意交换顺序后结果不变,重复操作是无效操作。
事实3
不同方阵不能用相同解法解出。
事实4
对偶数方阵,把一个点所在的一行一列的所以点全操作一遍,只会改变这个点本身。
推论1
任意的偶数方阵可解。
推论2
n阶偶数方阵的解法在交换次序,去除重复的意义下唯一。
因为解法在交换次序,去除重复的意义下,只有有2的n方次方个,可解方阵也有2的n方次方个,同一解法不能解不同方阵,于是方阵的解法必须唯一(否则解法供不应求)
推论3
对n阶可解的奇数方阵,只需解决它所含的某个n-1阶偶数方阵,则剩下的可以一眼看出来。
因为对剩下的n*n-(n-1)*(n-1)=2n-1个格子操作时,要么对这2n-1个格子是无效操作,要么是对2n-1个格子的全部翻转,要么会破坏n-1阶方阵的完好。而n-1阶方阵的解法唯一,不能期待通过n-1阶方阵内的操作来改变外面的2n-1个格子。因此如果此时游戏还没结束,那就永远结束不了。
修改于 2019/9/12
来自 华为Mate 10 Pro
Dc.风斩
游戏时长 76 分钟
游戏比较简洁,目的易懂。
除了略显简单(减1⭐原因),本人五阶平均40秒,最快7秒(那一次太欧。。。)
跟魔方差不多,20分钟上手,规律性太强。
简单点说吧:
1,先还原上下,再左右。
2,先角,再棱,后中心。
3,确保相对的两个同向。
4,交换两两与角反向的棱块。
5,若最后只剩4个同向对称的,依次换向即可。
PS:若中心剩的不止4个,就自己去摸索吧,规律还是很简单的,只是我很难解释XD
希望这游戏能像数独,魔方一样,建立个什么比赛的。
还有希望能出排行榜!!!
2019/8/26
来自 小米MI 8 SE
论坛
夏洛克聂
2016/12/31
bdpq
简单攻略(无需公式,轻松解决任意阶方阵)
【二阶】 首先,任意初始状态,自选两个对角并转成一样: 然后使用左下角将两个同向的块的转成右上角的状态: 最后将三个同向的块转成最后一块的样子 【三阶】 如图,三阶由一个二阶和一个拐角组成,只要先在里面找一个二阶按上面的方法完成,拐角就会自动同向,最后把拐角转到二阶的方向就完成了: 【四阶及以上】 四阶就无法使用三阶的方法了,四阶及以上的方阵的诀窍就是:成对操作。 /在某一行里选一对方块进行同样的
5
bdpq
2018/11/21
bdpq
《bdpq》新版《b不b》已经发布!To b or not to b,这是个难题。
一些老玩家知道,我两年多年做了一个叫《bdpq》的烧脑游戏,由于入门太难,知道解法后又变得太简单,所以玩起来是很不友好的,所以我又做了个新版,争取做到,入门极简,后期极难,有大量关卡可供尝试。游戏刚刚发布,希望大家头发安好,阿门。 新游戏地址: 已经发布!!! 另外一堆新游戏正在路上。
相关游戏
Imaginary Space
测试
9.4
烧脑
益智
几何
极限烧脑之旅
9.2
益智
烧脑
休闲
匠木
9.0
传统文化
独立游戏
国风
彩色水排序大师
测试
5.7
休闲
全民数独
8.8
益智
烧脑
单机
扫雷F
测试
8.8
益智
竖屏
单机
记忆大师
测试
8.6
单机
休闲
益智
墨盘
9.5
益智
水墨
解谜
同一个世界
8.3
独立游戏
唯美
解谜
六边形拼图
8.9
益智
休闲
单机
漫画手绘簿
测试
3.8
休闲
剑冢
9.3
策略
塔防
休闲
方块消除达人
7.7
极简
消除
我的乐消除
测试
5.3
休闲
疯狂大脑
测试
5.4
休闲
单机
益智
论坛