暂时没有公告
拼图游戏的算法
相信大家都玩过&滑块拼图&!
&大概说一下 :假如一副图是由几个部分拼凑成的,现在要你把这些散块拼凑成一副完整的图片
&&&&&&&也可以是几个数字来拼凑
&比如 3*3的格子
&&&&1 2 3
&&&&4 5 6
&&&&7 8&& (相当于原始矩阵)
有一个格子是空的现在要你组合成
&& 1 2 7
&& 3 6 4
&& 5 8&&&&&(目标矩阵)
问题是编写一种算法 能根据输入的原始图形(矩阵)拼凑成目标图形(目标矩阵) 要求是步数最少(耗时间最少)
include&iostream.h&
struct node{
int nodesun[4][4];
int x,y;
}path[1000];
int zx[4]={-1,0,1,0};
int zy[4]={0,-1,0,1};
int desti[4][4];//目标状态
int detect(struct node *p)
{int i,j;
&for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
& if(p-&nodesun[i][j]!=desti[i][j])
&&return 0;
&return 1;
}
void printlj()
{
int i,j;
tempt=1;
while(tempt&=top)
{&&for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
&{cout&&path[tempt].nodesun[i][j];
& if(j==3)
&&cout&&& &&&
&}
&tempt++;
}
}
void main()
{ //初始化
&int i,j,m,n,f;
&int temp,find=0;
&top=1;
for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
&{cout&&&请输入第&&&i&&&行&&&&第&&&j&&&列的值&&&
& cin&&
& path[1].nodesun[i][j]=
&}
&cout&&&请输入初始状态的空格的位置(行)&&&
&cin&&
&path[1].x=
cout&&&请输入初始状态的空格的位置(列)&&&
&cin&&
&path[1].y=
//目标状态
for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
&{cout&&&请输入目标状态第&&&i&&&行&&&&第&&&j&&&列的值&&&
& cin&&
& desti[i][j]=
&}
&//深度优先搜索
while(!find)
{ m=path[top].x;
&n=path[top].
&for(f=0;f&4;f++)
&{i=m+zx[f];
& j=n+zy[f];
& if(i&=1&&i&=3&&j&=1&&j&=3)
& {top++;
&&path[top]=path[top-1];
path[top].nodesun[m][n]=path[top-1].nodesun[i][j];
path[top].nodesun[i][j]=0;
path[top].x=i;
path[top].y=j;
& if(detect(&path[top]))
& {printlj();
& find=1;
&
& }
&
& }//if
&
&}//for
&
& }//while
}
#include&iostream.h&
struct node{
int nodesun[4][4];
int x,y;
}path[400];
int zx[4]={-1,0,1,0};
int zy[4]={0,-1,0,1};
int front,
int desti[4][4];//目标状态
int detect(struct node *p)
{int i,j;
&for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
& if(p-&nodesun[i][j]!=desti[i][j])
&&return 0;
&return 1;
}
void printlj()
{
int i,j;
tempt=
while(tempt!=0)
{&&for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
&{cout&&path[tempt].nodesun[i][j];
& if(j==3)
&&cout&&& &&&
&}
&tempt=path[tempt].
}
}
void main()
{ //初始化
&int i,j,m,n,f;
&int temp,find=0;
&front=rear=1;
&path[1].pre=0;
for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
&{cout&&&请输入第&&&i&&&行&&&&第&&&j&&&列的值&&&
& cin&&
& path[1].nodesun[i][j]=
&}
&cout&&&请输入初始状态的空格的位置(行)&&&
&cin&&
&path[1].x=
cout&&&请输入初始状态的空格的位置(列)&&&
&cin&&
&path[1].y=
//目标状态
for(i=1;i&4;i++)
&& for(j=1;j&4;j++)
&{cout&&&请输入目标状态第&&&i&&&行&&&&第&&&j&&&列的值&&&
& cin&&
& desti[i][j]=
&}
&//广度优先搜索
while(front&=rear&&!find)
{ m=path[front].x;
&n=path[front].
&for(f=0;f&4;f++)
&{i=m+zx[f];
& j=n+zy[f];
& if(i&=1&&i&=3&&j&=1&&j&=3)
& {rear++;
&&path[rear]=path[front];
path[rear].nodesun[m][n]=path[front].nodesun[i][j];
path[rear].nodesun[i][j]=0;
path[rear].pre=
path[rear].x=i;
path[rear].y=j;
& if(detect(&path[rear]))
& {printlj();
& find=1;
&
& }
& }
&}
& front++;
& }
}
上面是用最简单的深度优先,广度优先直接搜索得来得,毫无AI可言,这并不说明我不能写出其更好得算法,这里最简单得的估价函数f(x)=g(x)+h(x)
g(x)用初始化的节点到当前的节点的路径长度来表示h(x)启发函数用当前状态和目标状态的位置不同的个数来表
论坛精华帖
文章来源于
软件测试技术文章排行榜
软件测试技术分类最新内容
版权所有(C)
TestAge()|| All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室
技术支持和业务联系:.cn ***:010-
| | | | | | | &>&&>&&>&&>&用Authorware7软件制作的拼图游戏
用Authorware7软件制作的拼图游戏
上传大小:1.18MB
A7P格式作品,用Authorware7软件制作,欢迎下载
综合评分:4.1(13位用户评分)
收藏((2))
所需积分:2
下载次数:129
审核通过送C币
创建者:wyx100
创建者:nigelyq
创建者:huangyueranbbc
课程推荐相关知识库
上传者其他资源上传者专辑
课程资源热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
用Authorware7软件制作的拼图游戏
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动***等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:炎炎夏日,热不可言。iOS平台却还是连续的冰冷期,希望大作爆发周快点到来。
不知道从什么时候开始,今年的 WWDC 发布会给人感觉它的“硬件味儿”越来越浓了。不仅...
小而美的产品能够给人真正的幸福感,只有用心去雕琢产品的每一个细节,才能创造真正的...
喜欢的朋友届时可以留意亚马逊网站的相关产品信息。
征服教育市场,对苹果的未来非常重要~
除了进军意大利外,Apple Pay还继续在美国扩展业务。
这些苹果供应商表示,他们必须遵循苹果的指令不支付版税。
如果你的另一半在看电影时疯狂用iPhone打***发短信,你会怎么做?
现在随着交通越发的发达便利,全球化的步伐加快,出国旅游成为了大家享受生活,认识世...
曾负责发行《地铁2033:回归》移动版的FISHLABS最近给我们带来了一款休闲新作《跳跃吧...
不知不觉中,炎炎夏日就已经到来,现在正式户外运动的大好时候,在天气好的时候约上一...
一款免费图片处理软件,简单好上手,功能齐全,属于图片处理的万用工具箱。
《超人工智能(Artificial Superintelligence)》是Grailr 推出的一款非常有意思的剧...
游戏开发商Set Snail在移动平台上推出了他们的一款恶搞风格的休闲游戏《自行车俱乐部...
RedFish 推出的《迷宫追逐》是一款3D像素风格的休闲竞技游戏。可以说这是RedFish 工作...
去年,该公司发布声明,表示“Wemo 短期内无法与 HomeKit 一起工作”。
一根数据线就将两者的功能完美结合到了一起,以后出门可就轻松多啦。
蝙蝠仿佛永远戴着一层神秘的面纱,让外界对其既害怕又感到些许好奇。
一个好的配件绝对能提高iPhone的使用体验~
你的Smart Keyboard还好吗?
你的iPad Pro的Smart Keyboard还好吗?
Swimpad 是一款专为 iPad mini 设计的防水套,让用户在游泳池也可以随时使用 iPad min...
你也想要HomeKit家居吗?
发现一个好玩的拼图游戏,免费的哦!在电脑上也能玩拼图啦!
注册时间 最后登录
在线时间299 小时 UID
主题帖子人气
青苹果, 积分 93, 距离下一级还需 107 积分
无意中发现的
发几张界面图
注册时间 最后登录
在线时间299 小时 UID
主题帖子人气
居然和我说图片超了,只好发在楼下了
注册时间 最后登录
在线时间696 小时 UID
主题帖子人气
谁爱玩三国杀?
美国人最喜欢玩这个
三十解了锁,初一砸安卓
注册时间 最后登录
在线时间1590 小时 UID
主题帖子人气
注册时间 最后登录
在线时间4253 小时 UID
主题帖子人气
纯洁的人,高尚的人,
高智商不会玩
文能提笔控***,武能床上定人妻,进可欺身压正太,退能提臀迎众基。
注册时间 最后登录
在线时间983 小时 UID
主题帖子人气
我一直在玩mac下面的马里奥。、、、
希望可以认识更多果饭
WEIBO关注:/iphonen
注册时间 最后登录
在线时间17 小时 UID
主题帖子人气
叫什么名字,如何下载
注册时间 最后登录
在线时间299 小时 UID
主题帖子人气
回 6楼(renjonathan) 的帖子
名字在最上面,在mac app store下载
注册时间 最后登录
在线时间759 小时 UID
主题帖子人气
帮顶啊!!
注册时间 最后登录
在线时间93 小时 UID
主题帖子人气
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!