乙個連連看遊戲的通路檢測演算法

2021-03-31 08:56:30 字數 2750 閱讀 4128

在看了一篇關於連連看通路檢測算發的啟發下篇寫的,列出**如下:

// 連連看通路檢測演算法

//#include

//using namespace std;

#include

int main ()

;// 設定選中座標

// (要改進)要檢測位置是否相同,值是否相同

short set1x = 4, set1y = 1, set2x = 2, set2y = 3;

// 處理過程

// 縱向處理

// 快取初始

// (要改進)快取長度應該可以設定

short set1bufy[6][2] =;

short set2bufy[6][2] =;

// 基點放入快取

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)

else

}// 縱向檢測:基點1以下

for (short tmpy = set1y + 1; tmpy < mapy; ++tmpy)

else

}set1bufy[nbufy][0] = 0;

set1bufy[nbufy][1] = 0;

// 縱向檢測:基點2以上

nbufy = 1;

for (short tmpy = set2y - 1; tmpy >= 0; --tmpy)

else

}// 縱向檢測:基點2以下

for (short tmpy = set2y + 1; tmpy < mapy; ++tmpy)

else

}set2bufy[nbufy][0] = 0;

set2bufy[nbufy][1] = 0;

// 縱向檢測:橫向通路檢測

// 連通標誌

bool bchkok = false;

for (short nchklink1 = 0; !(set1bufy[nchklink1][0] == 0 && set1bufy[nchklink1][1] == 0); ++nchklink1)

else

bchkok = true;

short tmpvy = set1bufy[nchklink1][1];

for (short mstep = nstep; mstep != 0; mstep += opnum)

else

}// 如果通路連通則顯示連通資訊

if (bchkok == true)

}else}}

}// 縱向處理完畢

// 橫向處理

// 快取初始

// (要改進)快取長度應該可以設定

short set1bufx[7][2] =;

short set2bufx[7][2] =;

// 基點放入快取

set1bufx[0][0] = set1x;

set1bufx[0][1] = set1y;

set2bufx[0][0] = set2x;

set2bufx[0][1] = set2y;

// 橫向檢測:基點1以左

short nbufx = 1;

for (short tmpx = set1x - 1; tmpx >= 0; --tmpx)

else

}// 橫向檢測:基點1以右

for (short tmpx = set1x + 1; tmpx < mapx; ++tmpx)

else

}set1bufx[nbufx][0] = 0;

set1bufx[nbufx][1] = 0;

// 橫向檢測:基點2以左

nbufx = 1;

for (short tmpx = set2x - 1; tmpx >= 0; --tmpx)

else

}// 橫向檢測:基點2以右

for (short tmpx = set2x + 1; tmpx < mapx; ++tmpx)

else

}set2bufx[nbufx][0] = 0;

set2bufx[nbufx][1] = 0;

// 橫向檢測:縱向通路檢測

// 連通標誌

bchkok = false;

for (short nchklink1 = 0; !(set1bufx[nchklink1][0] == 0 && set1bufx[nchklink1][1] == 0); ++nchklink1)

else

bchkok = true;

short tmpvx = set1bufx[nchklink1][0];

for (short mstep = nstep; mstep != 0; mstep += opnum)

else

}// 如果通路連通則顯示連通資訊

if (bchkok == true)

}else}}

}// 橫向處理完畢

// 處理過程完畢

// 如果通路不能連通則顯示不能連通資訊

if (bchkok == false)

return 0;

}

BFS 連連看遊戲 乙個讓人感覺很複雜的BFS

時間限制 2 sec 記憶體限制 5 mb 提交 12 解決 3 提交 狀態 討論版 大家都玩過連連看吧!今天我們玩乙個類似的遊戲。在乙個由10 10個小方格組成的矩形裡有n n 10 對字元 它們是大寫字元中的前n個 矩形裡有些位置是可以從上面走過,有些則不能。能走過的位置用 標識,不能的用 標識...

用Quick Cocos2dx做乙個連連看(二)

今天完成了以下內容 1 成對生成spriteitem 2 重排介面製作完成 3 spriteitem的選擇邏輯 主要 如下 1 function mainscene onenter 2local item 3local item0 4local temptype 1 5for i 1,32 do6 ...

第乙個bfs題目 hdu1175連連看

include include include using namespace std define maxn 1005 用於儲存點資訊的結構 typedef struct node int x,y 座標資訊 unsigned short change 轉彎次數資訊 int dic 點的方向資訊 n...