没有合适的资源?快使用搜索试试~ 我知道了~
本文实例为大家分享了MFC实现连连看游戏消子算法的具体代码,供大家参考,具体内容如下 两个位置的图片能否消除,有三种情况: 1.一条直线连接,这种也是最简单的一种消除方法 bool LinkInLine(CPoint p1, CPoint p2) { conner1.x = conner1.y = -1; // 记录拐点位置 conner2.x = conner2.y = -1; BOOL b = true; if (p1.y == p2.y) // 两个点再同一行 { int min_x = min(p1.x, p2.x); int max_x = max(p1.x,
资源推荐
资源详情
资源评论
MFC实现连连看游戏之消子算法实现连连看游戏之消子算法
本文实例为大家分享了MFC实现连连看游戏消子算法的具体代码,供大家参考,具体内容如下
两个位置的图片能否消除,有三种情况:
1.一条直线连接,这种也是最简单的一种消除方法
bool LinkInLine(CPoint p1, CPoint p2)
{
conner1.x = conner1.y = -1; // 记录拐点位置
conner2.x = conner2.y = -1;
BOOL b = true;
if (p1.y == p2.y) // 两个点再同一行
{
int min_x = min(p1.x, p2.x);
int max_x = max(p1.x, p2.x);
for (int i = min_x+1; i < max_x; i++)
{
if (game->map[i][p1.y] != 0)
{
b = false;
}
}
}
else if (p1.x == p2.x) // 在同一列
{
int min_y = min(p1.y, p2.y);
int max_y = max(p1.y, p2.y);
for (int i = min_y + 1; i < max_y; i++)
{
if (game->map[p1.x][i] != 0)
{
b = false;
}
}
}
else // 不在同一直线
{
b = false;
}
return b;
}
2.两条直线消除,即经过一个拐点。
两个顶点经过两条直线连接有两种情况,即两个拐点分两种情况。
bool OneCornerLink(CPoint p1, CPoint p2)
{
conner1.x = conner1.y = -1;
conner2.x = conner2.y = -1;
int min_x = min(p1.x, p2.x);
int max_x = max(p1.x, p2.x);
int min_y = min(p1.y, p2.y);
int max_y = max(p1.y, p2.y);
// 拐点1
int x1 = p1.x;
int y1 = p2.y;
//拐点2
int x2 = p2.x;
int y2 = p1.y;
BOOL b = true;
if (game->map[x1][y1] != 0 && game->map[x2][y2] != 0)
资源评论
weixin_38530846
- 粉丝: 5
- 资源: 930
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功