在看了一篇关于连连看通路检测算发的启发下篇写的,列出代码如下:
【程序编程相关:在C#中编写多线程应用程序】 【推荐阅读:如何利用C#创建和调用DLL 】// 连连看通路检测算法 【扩展信息:System Mechanic 是个垃圾】//#include <iostream>
//using namespace std; #include <stdio.h>int main ()
{ // 地图设置 short mapx = 6, mapy = 5; // (要改进)横纵参数应该可以设置 short map[5][6] = {0, 0, 0, 0, 0, 0, 0, 1, 3, 2, 3, 0, 0, 2, 2, 1, 2, 0, 0, 1, 3, 1, 3, 0, 0, 0, 0, 0, 0, 0};// 设置选中坐标
// (要改进)要检测位置是否相同,值是否相同 short set1x = 4, set1y = 1, set2x = 2, set2y = 3;// 处理过程
// 纵向处理 // 缓存初始 // (要改进)缓存长度应该可以设置 short set1bufy[6][2] ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; short set2bufy[6][2] ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};// 基点放入缓存
set1bufy[0][0] = set1x; set1bufy[0][1] = set1y; set2bufy[0][0] = set2x; set2bufy[0][1] = set2y; // 纵向检测:基点1以上 short nbufy = 1; for (short tmpy = set1y - 1; tmpy >= 0; --tmpy) { if (map[tmpy][set1x] == 0) { set1bufy[nbufy][0] = set1x; set1bufy[nbufy][1] = tmpy; ++nbufy; } else { break; ... 下一页