基于Easy-X的华容道总结

来源:互联网 发布:恋夜秀场源码 编辑:程序博客网 时间:2024/04/30 14:24

一、数据结构
各个人物由一组组内部相等枚举类型组成,排列在由枚举类型组成游戏边框中。

找到位置后画图片
||
||
排列整齐的枚举类型 ==》(2维)地图 ==可由Block的点确定
||
||
排成一列的字符串 《== (2维)地图

enum BLOCK { boder = 0, empty = 1, CC, GY, ZF...}BLOCK map[6][7];IMAGE ...struct Block{   int x;  int y;}

二、算法
1.move(element,int,int)
element 可以传鼠标选中的点结构(表示位置),也可以传鼠标选中的枚举类型代表的人物是谁(表示内容)。
如果只穿位置,则可以知道这个位置表示谁,但是因为不能确定表示的人物的如何摆放,还要搜索传送的这个位置周围的点都是什么人物,然后再扩大范围搜索empty的分布。认为处理数据量太大,不可取。
如果只传内容,则只知道选中的是谁,不知道位置,就要用find()查找位置。这里有一个问题,就是4个BING并无区别,而find()只是从[0][0]顺序开始找,所以不能确定查到的兵就是选中的那个。此方法显然行不通

所以element就要对BING,传的包含位置信息,对将传的包含内容信息。
2.lstdir
lstdir的目的是要记录上一次是怎么移动的,以便撤销一步。即要以一个整形区分开上下左右。
lstdir=dx*2+dy即可
**

三、待考

**
dialog,怎么能做出来(mfc小对话框如何实现)
.rc文件如何写出(图片以资源形式被记录读取)