| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5365 人关注过本帖, 1 人收藏
标题:[原创]拼图游戏移动算法,简单易懂
只看楼主 加入收藏
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏(1)
 问题点数:0 回复次数:8 
[原创]拼图游戏移动算法,简单易懂

这是我第一次发表关于算法的贴子,
希望大家支持下



原理:判断用户点击的按扭的X或Y坐标是否与移动按扭相同,
并且移动按扭的X,Y坐标是否与用户点击按扭相邻.

拼图游戏有很多种,我说的这种是类似七巧板,

//当点击空白按扭的上下左右时就交换它们的位置
//数字可以改成相应的图片
我们首先找出可移动按扭(2,7,13,10)的规律:
(1). 2,7的X坐标与空白按扭的X坐标相同; 13,10的y坐标与空白按扭的y坐标相同.
当然我们知道,用户点击的按扭不可能与空白按扭的X,Y都相同.
因为只有点击空白按扭本身才这样.
所以x{2,7,3} || y{13,10,12}(两个关系满足一个就行.)

申明:所有按扭的宽高相等.
(2). 2或7的Y值等于空白按扭的Y值减去按扭的高或加上按扭的高.
13或10的X值等于空白按扭的X值减去按扭的宽或加上按扭的宽.
满足以上条件的有
{4,13,9,15,8,10,6,14,4,2,8,5,9,7,6,11}

(3) 可以看出,满足上面1,2条件的按扭有很多,
根据我们的需求知道只有1与2同时满足才是最终结果.
最后把1与2相交: (1)&&(2)
就只有{2,7,13,10}


这里我介绍的是如何判断用户点击的按扭是否处于空白按扭的上下左右
//就是说是否可以移动

图片附件: 游客没有浏览图片的权限,请 登录注册

先判断用户点击的按扭是否与空白按扭(可移动按扭)的X坐标或Y坐标相同.
如上图,满足的按扭有X{2,7,3} || y{13,10,12}

我们可以看出满足条件的按扭还不少吧.
下面继续
再判断空白按扭的Y,或X值加上或减去按扭的高,宽(每个按扭的高,宽一样)是否与用户点击的按扭的Y或X值相等.
如下图,满足的按扭有X{4,13,9,15,8,10,6,14} || y{4,2,8,5,9,7,6,11}

图片附件: 游客没有浏览图片的权限,请 登录注册

最后把两个条件相交,满足的就只有{2,7,10,13}了
图片附件: 游客没有浏览图片的权限,请 登录注册

也就是说只有用户点击的是这4个按扭才会执行移动



文字水平太差,
如果有兴趣,下面有上面的例子的源码
数字华容道

简单拼图
http://www.bc-cn.net/bbs/dispbbs.asp?boardID=8&ID=82973&page=3
原理就是上面的方法





[此贴子已经被作者于2006-8-16 7:39:56编辑过]



OSKiMH4C.jpg (8.75 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


FsPbbiy2.jpg (9.65 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


Sy5ASieL.jpg (9.68 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


8N6pG08Y.jpg (10.75 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 拼图 算法 易懂 游戏 
2006-08-15 09:56
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
这个东西不是不好,只是涉及了界面。。这个是JAVA的

[此贴子已经被作者于2006-8-15 14:29:02编辑过]



c++/C + 汇编 = 天下无敌
2006-08-15 14:27
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 

我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-08-16 06:59
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 
版主写算法有什么要求
只能用C语言吗?
不太懂呢

我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-08-16 07:37
人不坏没法办
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-8-16
收藏
得分:0 
没事算算锻炼脑子
2006-08-16 15:40
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
不是只用C,而是最好抛开某个语言.就用伪代码来实现,这样无论学什么语言都可以分享成果

c++/C + 汇编 = 天下无敌
2006-08-16 16:31
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 

这样呀
谢谢版主


我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-08-16 17:13
gunzi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-6-27
收藏
得分:0 
有vb的吗?急求啊!!!!!!!!!!!!!!谢谢啊
2007-07-01 19:22
gunzi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-6-27
收藏
得分:0 
有vb的吗?急求啊!!!!!!!!!!!!!!谢谢啊
2007-07-01 19:38
快速回复:[原创]拼图游戏移动算法,简单易懂
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019003 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved