基于Easy-X的华容道总结

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

找到位置后画图片
||
||
排列整齐的枚举类型 ==》(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文件如何写出(图片以资源形式被记录读取)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值