您的位置:逆风者 数据结构 正文
原作者:www.upwinder.com 添加时间:2007-09-02 原文发表:2007-08-31 人气:78 来源:本站原创

原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=179&id=84032

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

逆风编程精品



原理:判断用户点击的按扭的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://bbs.bc-cn.net/dispbbs.asp?boardID=8&ID=82973&page=3
原理就是上面的方法

附,数字华容道代码:
点击下载该文件

相关文章

有向图转换
数据结构教程 第三十课 静态查找表(二)有
用栈设置密码
链表基本操作的程序实现
关于文件管理系统的数据结构模拟
数据结构教程 第二十课 广义表
数据结构教程 第三十六课 选择排序,归并排
线索二叉树算法
数据结构--序言
数据结构教程 第十课 栈的表示与实现
数据结构教程 第四十课 总复习
无向图转换
简单的行编辑器
数据结构教程 第五课 线性表的类型定义
Huffman编码生成程序
数据结构教程 第二十五课 单元测验

相关评论


本文章所属分类:首页 数据结构

  热门关键字: