资源简介
用c语言实现的连连看算法,对c语言基础,数据结构等能有较好了解
代码片段和文件信息
#include
#include
#include
#include
typedef struct{
int x;
int y;
}stPos;
typedef struct{
stPos position;
char type;
bool IsClear;
}stUnion;
//#define UNION_ARRAY_XLEN 16
//#define UNION_ARRAY_YLEN 16
#define UNION_ARRAY_XLEN 9
#define UNION_ARRAY_YLEN 9
#define GET_MIN(x y) (x <= y ? x : y)
#define GET_MAX(x y) (x >= y ? x : y)
extern void InitUnionArray(stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern void PrintfUnionArray(stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsUnionClear(stUnion * ucUnion);
extern void ClearUnion(stUnion * ucUnion);
extern bool IsSameTypeUnion(stUnion * ucFirUnion stUnion * ucSecUnion);
extern bool IsSameUnion(stUnion * ucFirUnion stUnion * ucSecUnion);
extern bool IsNextUnion(stUnion * ucFirUnion stUnion * ucSecUnion);
extern bool IsHoriLine(stUnion * ucFirUnion stUnion * ucSecUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsVerLine(stUnion * ucFirUnion stUnion * ucSecUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsLine(stUnion * ucFirUnion stUnion * ucSecUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsNearLeftBorder(stUnion * ucUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsNearRightBorder(stUnion * ucUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsNearUpBorder(stUnion * ucUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsNearDownBorder(stUnion * ucUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool GetHoriTwoUnion(stUnion * ucUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN] stUnion *FirUnion stUnion * SecUnion);
extern bool GetVerTwoUnion(stUnion * ucUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN] stUnion *FirUnion stUnion * SecUnion);
extern bool IsLineUnderTwoTurn(stUnion * ucFirUnion stUnion * ucSecUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
extern bool IsTwoUnionClear(stUnion * ucFirUnion stUnion * ucSecUnion stUnion ucUnionArray[][UNION_ARRAY_YLEN]);
void InitUnionArray(stUnion ucUnionArray[][UNION_ARRAY_YLEN])
{
int i = 0;
int j = 0;
srand((int)time(0));
for(j = 0; j < UNION_ARRAY_YLEN; j++)
{
for(i = 0; i < UNION_ARRAY_XLEN; i++)
{
ucUnionArray[i][j].position.x = i;
ucUnionArray[i][j].position.y = j;
ucUnionArray[i][j].type = (char)(65 + (int)(10.0*rand()/(RAND_MAX+1.0)));
ucUnionArray[i][j].IsClear = false;
//if(!UnionArray[i][j].IsClear)
//printf(“ %c “ UnionArray[i][j].type);
//else
//printf(“ “);
}
//printf(“\n“);
}
}
void PrintfUnionArray(stUnion ucUnionArray[][UNION_ARRAY_YLEN])
{
int i = 0;
int j = 0;
for(i = 0; i < UNION_ARRAY_XLEN; i++)
printf(“ %d “ i);
printf(“\n\n“);
for(j = 0; j < UNION_ARRAY_YLEN; j++)
{
for(i = 0; i < UNION_ARRAY_XLEN; i++)
{
if(!IsUnionClear(&ucUnionArray[i][j]))
printf(“ %c “ ucUnionArray[i][j].type);
else
pr
相关资源
- c语言 选课管理系统
- C语言大程序游戏大富翁24707
- c语言gbk、utf8转换编码表及函数
- c语言 五子棋源码界面美观
- c语言time()
- 图书管理系统(C语言课程设计报告
- 数据结构——表达式求值 完整代码
- A*算法 A star算法 C语言版
- C语言打印字符图形
- 熊猫烧香病毒
- C语言实现LZ编码
- C语言 文件压缩和解压
- 三国志游戏源代码C语言版本
- 启发式搜索算法解决八数码问题(C语
- C语言graphics图形库
- 数据结构实验-表达式中括号配对
- 深信服笔试题目C语言和C++
- 简单日历c语言代码,简单易懂。
- “信任的进化”部分功能实现源代码
- c语言int char类型转换
- 定时器设计的门铃C语言源码
- 实现数字签名算法DSA,Hash算法的实现
- 电子表 | 西北工业大学电子实习
- LeetCode 题解
- C语言上机题库150题
- C语言五子棋实验报告.docx
- 基于锁相环的角度观测器C语言实现
- 用mfc实现的计算器
- c语言遍历二叉树
- 4交通灯_STC89C52.zip
评论
共有 条评论