九宫格移动拼图解法拼图游戏 这个怎么解?

千里之行 始于足下
欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 2364 人关注过本帖
标题:求问九宫拼图怎么判断有无解
来 自:广东汕头
等 级:论坛游民
帖 子:11
专家分:14
结帖率:25%
&&已结贴√
&&问题点数:20&&回复次数:2&&&
求问九宫拼图怎么判断有无解
#include&stdio.h&
#include&stdlib.h&
#include&time.h&
#define N 3
void show(int *p)//显示九宫格
&&& int i,j;
&&& printf(&\t&&&&&&&&&\\\\\\|///\n&);
&&& printf(&\t&&&&&&&&\\\\ .-.- //\n&);
&&& printf(&\t&&&&&&&&&( .@.@ ) \n&);
&&& printf(&\t\t┏oOOo━━(_) ━━oOOo┓\n&);
&&& printf(&\t\t┃ ╲&&&&&&&&&&&&&&╱ ┃\n&);
&&& printf(&\t\t┃&&&╔═╦═╦═╗&&&┃\n&);
&&& for(i=0;i&N;i++)
&&&&&&&&printf(&\t\t┃&&&║&);
&&&&&&&&for(j=0;j&N;j++)
&&&&&&&&&&&&if(*(p+i*3+j)==9)//当数值为9时显示空格
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& printf(&&&║&);
&&&&&&&&&&&&}else
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& printf(& %d║&,*(p+i*3+j));
&&&&&&&&&&&&}
&&&&&&&&printf(&&&&┃\n&);
&&&&&&&&if(i&=2)
&&&&&&&&&&&&printf(&\t\t┃&&&╚═╩═╩═╝&&&┃\n&);
&&&&&&&&&&&&printf(&\t\t┃ ╱&&&&&&&&&&&&&&╲ ┃\n&);
&&&&&&&&&&&&printf(&\t\t┗━━━━━━━━━━┛\n&);
&&&&&&&&else
&&&&&&&&&&&&printf(&\t\t┃&&&╠═╬═╬═╣&&&┃\n&);
int num9(int *p)//判断空格所在位置
&&& for(int i=0;i&N*N;i++)
&&&&&&&&if(*(p+i)==N*N)
&&&&&&&&&&&&
char shuru()//移动输入判断
&&& for(;;)
&&&&&&&&fflush(stdin);
&&&&&&&&x=getchar();
&&&&&&&&if(x=='w'||x=='s'||x=='a'||x=='d')
&&&&&&&&&&&&
&&&&&&&&puts(&输入错误!!&);
int panduan(int *p)//判断是否完成
&&& int num=1;
&&& for(int i=0;i&N*N;i++)
&&&&&&&&if(*(p+i)==i+1)
&&&&&&&&&&&&num++;
&&& if(num&9)
&&&&&&&&return 0;
&&&&&&&&return 1;
int shengcheng(int *p)//判断生成的是否是无解数
&&& int j,i,sum,;
&&& for(i=0;i&N*N;i++)//利用插入法排序
&&&&&&&&for(j=i;j&N*N;j++)
&&&&&&&&&&&&if(*(p+j)==i+1)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& sum+=j-i;
&&&&&&&&&&&&&&& temp=*(p+j);
&&&&&&&&&&&&&&& *(p+j)=*(p+i);
&&&&&&&&&&&&&&& *(p+i)=
&&&&&&&&&&&&}
&&& sum%=2;
void main()
&&& int bu=0;
&&& srand(time(NULL));
&&& int i,j,num[N][N],num2[N][N];
&&& int *p,*q,
&&& p=&num[0][0];
&&& q=&num2[0][0];
&&& for(;;)
&&&&&&&&for(i=0;i&N*N;i++)
&&&&&&&&&&&&*(q+i)=*(p+i)=rand()%(N*N)+1;
&&&&&&&&&&&&for(j=0;j&i;)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& if(*(p+j)==*(p+i))
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&*(q+i)=*(p+i)=rand()%(N*N)+1;
&&&&&&&&&&&&&&&&&&&&j=0;
&&&&&&&&&&&&&&& }else
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&j++;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&}
&&&&&&&&judge=shengcheng(q);
&&&&&&&&if(judge==0)//若为偶数则是有解得&&奇数是无解的
&&&&&&&&&&&&
&&& printf(&输入W S A D 来移动空格&&&\n&);
&&& show(p);
&&& int x,y;
&&& k=num9(p);
&&& x=k/N;
&&& y=k%N;
&&& for(;;)
&&&&&&&&fflush(stdin);
&&&&&&&&choose=shuru();
&&&&&&&&bu++;
&&&&&&&&system(&cls&);
&&&&&&&&printf(&输入W S A D 来移动空格&&&\n&);
&&&&&&&&switch(choose)//移动 按照输入的字符让空格与想对应的数对换值
&&&&&&&&case 's':
&&&&&&&&&&&&if(x==0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& puts(&输入错误!&);
&&&&&&&&&&&&}
&&&&&&&&&&&&else
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& temp=num[x][y];
&&&&&&&&&&&&&&& num[x][y]=num[x-1][y];
&&&&&&&&&&&&&&& num[x-1][y]=
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&case 'w':
&&&&&&&&&&&&if(x==N-1)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& puts(&输入错误!&);
&&&&&&&&&&&&}else
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& temp=num[x][y];
&&&&&&&&&&&&&&& num[x][y]=num[x+1][y];
&&&&&&&&&&&&&&& num[x+1][y]=
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&case 'd':
&&&&&&&&&&&&if(y==0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& puts(&输入错误!&);
&&&&&&&&&&&&}else
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& temp=num[x][y];
&&&&&&&&&&&&&&& num[x][y]=num[x][y-1];
&&&&&&&&&&&&&&& num[x][y-1]=
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&case 'a':
&&&&&&&&&&&&if(y==N-1)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& puts(&输入错误!&);
&&&&&&&&&&&&}else
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& temp=num[x][y];
&&&&&&&&&&&&&&& num[x][y]=num[x][y+1];
&&&&&&&&&&&&&&& num[x][y+1]=&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&show(p);
&&&&&&&&k=num9(p);
&&&&&&&&x=k/N;
&&&&&&&&y=k%N;
&&&&&&&&if(panduan(p))
&&&&&&&&&&&&printf(&你一共用了%d步\n你通过了\n&,bu);
&&&&&&&&&&&&
偶的代码 求指导
搜索更多相关主题的帖子:
等 级:贵宾
威 望:103
帖 子:3280
专家分:12654
&&得分:20&
找出所有的可行状态。可行状态数不超过362880,所以这个方案可行,而且还可以得到最少移动步数及移动路径。
重剑无锋,大巧不工
来 自:广东汕头
等 级:论坛游民
帖 子:11
专家分:14
回复 2楼 beyondyf
求类似公式或代码
版权所有,并保留所有权利。
Powered by , Processed in 0.082823 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved九宫格拼图游戏规则_中华文本库
九宫拼图(缺一拼图)玩法(完全自己总结的喔)_游戏_生活休闲。拼图的教程,自己总结的。最近因为要写一个程序关于九宫拼图(缺一拼图)的,所以玩了玩九宫拼图 终于...
VB课程设计:拼图游戏_电脑基础知识_IT/计算机_专业资料。VB课程设计:拼图游戏文章详细的介绍了该程序的主要设计思路,并列举了主要源代码,完成了对排行榜的制作,同时...
九宫图中, 每行第一个图形经过逆时针 90 度得到...D 项中两个不规则的四边形也无法构成题干图形。 ...《行测》真题第 76 题 本题考查平面拼图类的题目...
九宫格数独题目(图片版)_幼儿读物_幼儿教育_教育专区。九宫格数独,图片版,可以打印的 u 文档贡献者 火麒麟199 贡献于 ...
进入游戏界面 欢迎屏幕: 初始化界面: 随机打乱顺序: 移动过程中计数功能: 3.2.2 游戏成功 第四章 总结 本文介绍了一种用 C 语言编写九宫格拼图小游戏的方法...
ppt图片排列之九宫格_图片/文字技巧_PPT制作技巧_实用文档。Your text Text Your...规则游戏主体是一个由9个... 5页 免费喜欢此文档的还喜欢 九宫格PPT 1页 ...
拼图是九宫格 (即 3 格宽×3 格高)的正方形状,每一格又细分为一个九宫格...五.几题数独题 数独游戏规则简单易掌握,所以你自己很容易判断你的解答是否正确...
图形推理九宫格_公务员考试_资格考试/认证_教育专区。九宫格题型囊括图形推理---九宫格 图形推理的本质 知识点:规律:最常考的是横行看,纵列看。 此题为横行看规...
拼图是九宫格 (即 3 格宽×3 格高)的正方形状,每一格又细分为一个九宫格...二.数独游戏规则 在 9 阶方阵中,包含了 81 个小格(九列九行),其中又再...
教你如何用C#开发九宫格游戏(完整版代码,图文互解,轻松就可学会)_计算机软件及...(); //如果满足此游戏规则 if(this.btn1.BackColor==Color.Red && this....& 类似这样的拼图游戏有技巧没?达人指点下…… ...
查看: 11586|回复: 11
UID2056640主题阅读权限50帖子精华0积分1534金钱554 荣誉8 人气2 在线时间19 小时评议0
Lv.5游侠白银会员, 积分 1534, 距离下一级还需 466 积分
帖子精华0积分1534金钱554 荣誉8 人气2 评议0
怪了~我转魔方十分轻松……脑中什么也不想就能转好……
但是这种拼图我怎么也拼不好……总是差一个……
有达人指教下?
这个不算跑题吧?
(35.85 KB, 下载次数: 30)
00:44:32 上传
下载次数: 30
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" />
盘古有训,纵横六界,诸事皆有缘法!凡人仰观苍天,无明日月潜息、四时更替,幽冥之间,万物已循因缘,恒大者则为“天道”……
月亮女神·阿尔忒弥斯逃离地球★紫は俺の嫁M42009.4最佳问答◆
UID798029主题阅读权限70帖子精华2积分8727金钱1886 荣誉117 人气33 在线时间377 小时评议0
Lv.7游侠白金会员, 积分 8727, 距离下一级还需 6273 积分
帖子精华2积分8727金钱1886 荣誉117 人气33 评议0
达人来也......
啊?...这个我也苦手.....
达人也有困惑的时候...
我很缅甸的....
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - -
UID2056640主题阅读权限50帖子精华0积分1534金钱554 荣誉8 人气2 在线时间19 小时评议0
Lv.5游侠白银会员, 积分 1534, 距离下一级还需 466 积分
帖子精华0积分1534金钱554 荣誉8 人气2 评议0
原帖由 xianglige 于
00:47 发表
达人来也......
啊?...这个我也苦手.....
达人也有困惑的时候...
喊你内人来解………………………………
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" />
盘古有训,纵横六界,诸事皆有缘法!凡人仰观苍天,无明日月潜息、四时更替,幽冥之间,万物已循因缘,恒大者则为“天道”……
月亮女神·阿尔忒弥斯逃离地球★紫は俺の嫁M42009.4最佳问答◆
UID798029主题阅读权限70帖子精华2积分8727金钱1886 荣誉117 人气33 在线时间377 小时评议0
Lv.7游侠白金会员, 积分 8727, 距离下一级还需 6273 积分
帖子精华2积分8727金钱1886 荣誉117 人气33 评议0
DK MM&&睡了....................
话说拼图游戏 我也一直玩不来.....再说也没什么兴趣..
我很缅甸的....
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - -
UID2056640主题阅读权限50帖子精华0积分1534金钱554 荣誉8 人气2 在线时间19 小时评议0
Lv.5游侠白银会员, 积分 1534, 距离下一级还需 466 积分
帖子精华0积分1534金钱554 荣誉8 人气2 评议0
居然没有达人……………………
感情都不喜欢玩………………………………
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" />
盘古有训,纵横六界,诸事皆有缘法!凡人仰观苍天,无明日月潜息、四时更替,幽冥之间,万物已循因缘,恒大者则为“天道”……
UID1519984主题阅读权限30帖子精华0积分469金钱1445 荣誉8 人气0 在线时间85 小时评议0
Lv.3游侠中级会员, 积分 469, 距离下一级还需 31 积分
帖子精华0积分469金钱1445 荣誉8 人气0 评议0
很简单撒,从最上面开始,第一排的第一个开始排到倒数第二个,是很简单的,
然后把左边一个往下移动一格,右边的全往左移动一格,右边空出来两格,这时,就非常容易将最右边最后一格的图案排列进去,
一直到倒数第三排,都使用这种方法。
最后两排,需要用类似的手法,把右侧的两个竖向排列,左边的多调换几次,就成功了。
UID1641302主题阅读权限10帖子精华0积分0金钱2261 荣誉0 人气3 在线时间1178 小时评议0
Lv.1游侠新人, 积分 0, 距离下一级还需 5 积分
帖子精华0积分0金钱2261 荣誉0 人气3 评议0
记得去年剑侠世界封测抢号的时候就要拼图 当时拼得图血了都抢不到号哎.
一般是先拼上面和左边一排 再按九宫格来走
找了个攻略
UID2056640主题阅读权限50帖子精华0积分1534金钱554 荣誉8 人气2 在线时间19 小时评议0
Lv.5游侠白银会员, 积分 1534, 距离下一级还需 466 积分
帖子精华0积分1534金钱554 荣誉8 人气2 评议0
原帖由 aiut 于
01:06 发表
很简单撒,从最上面开始,第一排的第一个开始排到倒数第二个,是很简单的,
然后把左边一个往下移动一格,右边的全往左移动一格,右边空出来两格,这时,就非常容易将最右边最后一格的图案排列进去,
一直到倒数第三排,都使用这种方法。 ...
可是……哪里会冒出两个空格之说?
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" />
盘古有训,纵横六界,诸事皆有缘法!凡人仰观苍天,无明日月潜息、四时更替,幽冥之间,万物已循因缘,恒大者则为“天道”……
UID2056640主题阅读权限50帖子精华0积分1534金钱554 荣誉8 人气2 在线时间19 小时评议0
Lv.5游侠白银会员, 积分 1534, 距离下一级还需 466 积分
帖子精华0积分1534金钱554 荣誉8 人气2 评议0
01:06 发表
记得去年剑侠世界封测抢号的时候就要拼图 当时拼得图血了都抢不到号哎.
一般是先拼上面和左边一排 再按九宫格来走
找了个攻略 ...
看了您的推荐我才发觉……我是碰到无解的BUG了……
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" />
盘古有训,纵横六界,诸事皆有缘法!凡人仰观苍天,无明日月潜息、四时更替,幽冥之间,万物已循因缘,恒大者则为“天道”……
UID408827主题阅读权限40帖子精华0积分804金钱3790 荣誉2 人气45 在线时间1871 小时评议0
Lv.4游侠高级会员, 积分 804, 距离下一级还需 196 积分
帖子精华0积分804金钱3790 荣誉2 人气45 评议0
我知道 哈哈
原理很简单:
&&玩过贪吃蛇么?最后形成斡旋状就可以了,也就是图片是以蛇形依次跟着的.说好象不太容易说明白
UID1745336主题阅读权限20帖子精华0积分1360金钱847 荣誉1 人气0 在线时间7 小时评议0
头像被屏蔽
帖子精华0积分1360金钱847 荣誉1 人气0 评议0
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
UID2056640主题阅读权限50帖子精华0积分1534金钱554 荣誉8 人气2 在线时间19 小时评议0
Lv.5游侠白银会员, 积分 1534, 距离下一级还需 466 积分
帖子精华0积分1534金钱554 荣誉8 人气2 评议0
原帖由 byduke 于
01:12 发表
我知道 哈哈
原理很简单:
&&玩过贪吃蛇么?最后形成斡旋状就可以了,也就是图片是以蛇形依次跟着的.说好象不太容易说明白
哦~你的意思我懂……
我就是转着来拼的……
貌似真是BUG……
还有LS^……你表扬自己半天也没整点实际的……
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" />
盘古有训,纵横六界,诸事皆有缘法!凡人仰观苍天,无明日月潜息、四时更替,幽冥之间,万物已循因缘,恒大者则为“天道”……
发帖数达到10000
大头像勋章
永久勋章,统一售价:8888金币。购买地址:待定
白金会员勋章
用户积分达到6000
Powered by 上传我的文档
 下载
 收藏
粉丝量:91
本人很多文章来自网上,如有侵权,请告知,我会及时处理
 下载此文档
九宫格拼图曹氏玩法课程设计报告
下载积分:800
内容提示:九宫格拼图曹氏玩法课程设计报告
文档格式:DOC|
浏览次数:242|
上传日期: 20:54:54|
文档星级:
全文阅读已结束,如果下载本文需要使用
 800 积分
下载此文档
该用户还上传了这些文档
九宫格拼图曹氏玩法课程设计报告
关注微信公众号九宫格拼图有解的条件?_百度知道
九宫格拼图有解的条件?
期末课程设计做九宫格拼图小游戏,随机排列图案位置后会出现无解的情况,比如就不会有解。看了百度说什么高等代数里面逆序数求解,还有偶排列和对等交换,没学高代不太懂。有没有大神知道九宫格拼图有解的条件啊?(不要代码,平述就好)
我有更好的答案
我也设计过这个的flash动画,只要让个数字任意两个不同数字交换,如果交换偶数次就一定能行。
那是要先设计变换让空格固定在位置9上面吗?
不啊,你在9的地方也放张图片,透明的或者与背景色一样的。
最终拼图就是哦,把空格地方编号为9。意思是任意的比如,不管9出现在什么位置,忽略9,意思是看剩下的八个数字是否是偶排列吗?
不是,9不能动,9动了就不能拼了,我的意思是不要用空格,因为你要判断图片能不能移动的话,得判断其他图片和这张透明图片的距离。
就是把9固定,只看前面的八个数排列哦
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 随机可解九宫格拼图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信