带爆炸效果的扫雷(源码3)
来源:互联网 发布:链路层和网络层 编辑:程序博客网 时间:2024/04/29 04:47
队列:当点击一个空白格子的时候,算法如下:
将当前格子入队;
循环:一个格子出队。将没有打开的空白格子进队(要没有打开过,且是空白)。将周围的格子置为“已打开”。不断重复,直至队列为空。为了方便,将一个格子周围8个格子的坐标差值放到数组中,循环使用。
void GameMap::SearchBlank(int x,int y)
{
int tempindex[16]={-1, -1, 0, -1, 1, -1,
-1 ,0, 1, 0,
-1, 1, 0, 1, 1, 1};
.......
}
队列: queue.h queue.cpp
#ifndef __QUEUE_H
#define __QUEUE_H
class GQUEUE
...{
public:
GQUEUE();
~GQUEUE();
void CreateQueue(int len);
void DeleteQueue();
void CreateLog();
int InQueue(POINT x);
POINT OutQueue(void);
int IsFull();
int IsEmpty();
private:
POINT pData[400];
int front;
int rear;
int length;
};
#endif
/**////////////// queue.cpp //////////////////
//队列,用来做空白格子的搜索
#include "stdafx.h"
#include "queue.h"
#include "stdio.h"
GQUEUE::GQUEUE()
...{
front=0;
rear=0;
length=0;
}
GQUEUE::~GQUEUE()
...{
}
void GQUEUE::CreateQueue(int len)
...{
front=0;
rear=0;
length=len;
memset(pData,-1,sizeof(pData));
}
void GQUEUE::DeleteQueue()
...{
}
int GQUEUE::InQueue(POINT x)
...{
pData[rear]=x;
rear=(rear+1)%length;
return 1;
}
POINT GQUEUE::OutQueue(void)
...{
int temp_index;
temp_index=front;
front=(front+1)%length;
return pData[temp_index];
}
int GQUEUE::IsFull()
...{
return ((rear+1)%length == front)?1:0;
}
int GQUEUE::IsEmpty()
...{
return (rear == front)?1:0;
}
void GQUEUE::CreateLog()
...{
// flog=fopen("queuelog.txt","w");
}
- 带爆炸效果的扫雷(源码3)
- 带爆炸效果的扫雷(源码1)
- 带爆炸效果的扫雷(源码2)
- 带爆炸效果的扫雷(源码4)
- 带爆炸效果的扫雷(源码5)
- 带爆炸效果的扫雷(后记)
- 爆炸的效果(IOS)
- 物体爆炸效果的实现
- view爆炸的烟花效果
- 实现爆炸后的振动效果
- Unity3D 实现爆炸效果的函数
- unity 球形范围的爆炸效果
- 扫雷 源码
- 扫雷-源码
- android Titanic (带波纹效果的TextView)源码分析(带源码)
- 制作爆炸效果
- 图片爆炸效果
- PS制作爆炸效果
- HashTable与HashMap的区别
- 虚拟-VMware
- [原创]汇编级别--如何在函数中隐藏函数
- .obj, .lib, .dll, .exe的关系
- 阶乘数的快速计算方法
- 带爆炸效果的扫雷(源码3)
- SQL语句学习
- 认识Web.config文件
- 检测U盘插入
- 集成的故事 - 面向服务的世界
- 在Dialog中使用Menu和Toolbar
- 带爆炸效果的扫雷(源码4)
- VendorCache 类
- Window 消息大全