亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

MFC實現連連看游戲之消子算法

2020-01-26 13:34:51
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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) {  b = false; } else {  if (game->map[x1][y1] == 0) // 拐點1位置無圖片  {   for (int i = min_x + 1; i < max_x; i++)   {    if (game->map[i][y1] != 0)    {     b = false;     break;    }   }   for (int i = min_y + 1; i < max_y; i++)   {    if (game->map[x1][i] != 0)    {     b = false;     break;    }   }   if (b)   {    conner1.x = x1;    conner1.y = y1;    return b;   }  }  if (game->map[x2][y2] == 0) // 拐點2位置無圖片  {   b = true;   for (int i = min_x + 1; i < max_x; i++)   {    if (game->map[i][y2] != 0)    {     b = false;     break;    }   }   for (int i = min_y + 1; i < max_y; i++)   {    if (game->map[x2][i] != 0)    {     b = false;     break;    }   }   if (b)   {    conner1.x = x2;    conner1.y = y2;    return b;   }  } } return b;}

3.三條直線消除,即經過兩個拐點。

這是可以通過橫向掃描和縱向掃描,掃描的時候可以得到連個拐點,判斷兩個頂點經過這兩個拐點后是否能消除

bool TwoCornerLink(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); bool b; for (int i = 0; i < MAX_Y; i++) // 掃描行 {  b = true;  if (game->map[p1.x][i] == 0 && game->map[p2.x][i] == 0) // 兩個拐點位置無圖片  {   for (int j = min_x + 1; j < max_x; j++) // 判斷連個拐點之間是否可以連接   {    if (game->map[j][i] != 0)    {     b = false;     break;    }   }   if (b)   {    int temp_max = max(p1.y, i);    int temp_min = min(p1.y, i);    for (int j = temp_min + 1; j < temp_max; j++) // 判斷p1和它所對應的拐點之間是否可以連接    {     if (game->map[p1.x][j] != 0)     {      b = false;      break;     }    }   }   if (b)   {    int temp_max = max(p2.y, i);    int temp_min = min(p2.y, i);    for (int j = temp_min + 1; j < temp_max; j++) // 判斷p2和它所對應的拐點之間是否可以連接    {     for (int j = temp_min + 1; j < temp_max; j++)     {      if (game->map[p2.x][j] != 0)      {       b = false;       break;      }     }    }   }   if (b) // 如果存在路線,返回true   {    conner1.x = p1.x;    conner1.y = i;    conner2.x = p2.x;    conner2.y = i;    return b;   }  }  }// 掃描行結束 for (int i = 0; i < MAX_X; i++) // 掃描列 {  b = true;  if (game->map[i][p1.y] == 0 && game->map[i][p2.y] == 0) // 連個拐點位置無圖片  {   for (int j = min_y + 1; j < max_y; j++) // 兩個拐點之間是否可以連接   {    if (game->map[i][j] != 0)    {     b = false;     break;    }   }   if (b)   {    int temp_max = max(i, p1.x);    int temp_min = min(i, p1.x);    for (int j = temp_min + 1; j < temp_max; j++) // 判斷p1和它所對應的拐點之間是否可以連接    {     if (game->map[j][p1.y] != 0)     {      b = false;      break;     }    }   }   if (b)   {    int temp_max = max(p2.x, i);    int temp_min = min(p2.x, i);    for (int j = temp_min + 1; j < temp_max; j++)    {     if (game->map[j][p2.y] != 0)     {      b = false;      break;     }    }   }   if (b) // 如果存在路線,返回true   {    conner1.y = p1.y;    conner1.x = i;    conner2.y = p2.y;    conner2.x = i;    return b;   }  } } // 掃描列結束 return b;}

完整源碼已上傳至我的GitHub

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩精品电影| 日韩综合视频在线观看| 亚洲国产精品久久91精品| 亚洲成人教育av| 成人激情视频免费在线| 国产精品久久久久久久7电影| 国产视频丨精品|在线观看| 久久久久一本一区二区青青蜜月| 久久99视频免费| 97在线视频精品| 亚洲第一二三四五区| 欧洲成人性视频| 国产美女久久久| 成人免费激情视频| 一区二区三区久久精品| 久久久久免费视频| 中文字幕日韩av| 成人xvideos免费视频| 日本久久久久久久| 97久久精品人人澡人人爽缅北| 91日韩在线视频| 亚洲中国色老太| 欧美在线视频免费| 7777精品视频| 欧美一级片久久久久久久| 九九热这里只有精品免费看| 久久精品最新地址| 亚洲成年人在线播放| 欧美电影免费观看大全| 欧美一区视频在线| 亚洲色图在线观看| 国产精品美女久久久久av超清| 国产日本欧美一区二区三区在线| 亚洲天天在线日亚洲洲精| 亚洲欧美自拍一区| 国产精品成人国产乱一区| 性夜试看影院91社区| 日韩欧美中文字幕在线播放| 国产主播喷水一区二区| 亚洲第一区中文99精品| 亚洲欧美日韩国产中文专区| 久久夜色精品亚洲噜噜国产mv| 色综合天天狠天天透天天伊人| 亚洲人永久免费| 亚洲经典中文字幕| 日韩成人在线观看| 亚洲精品日韩激情在线电影| 国色天香2019中文字幕在线观看| 一本色道久久综合亚洲精品小说| 美女啪啪无遮挡免费久久网站| 欧美性少妇18aaaa视频| xx视频.9999.com| 国产视频久久久| www.久久久久| 亚洲第一在线视频| 国产精品电影在线观看| 国产日本欧美一区二区三区在线| 亚洲一区二区免费| 亚洲二区在线播放视频| 中文字幕无线精品亚洲乱码一区| 欧美壮男野外gaytube| 欧美福利视频在线| 国产成人小视频在线观看| 青青草国产精品一区二区| 国产精品日韩欧美大师| 国产精品www| 久久精品国产69国产精品亚洲| 青草青草久热精品视频在线观看| 国产精品v日韩精品| 亚洲高清福利视频| 亚洲有声小说3d| 久久在线视频在线| 亚洲xxxx妇黄裸体| 日韩在线观看网站| 色99之美女主播在线视频| 久久久人成影片一区二区三区观看| 国产在线播放不卡| 在线日韩中文字幕| 中文字幕日韩欧美在线| 国产日韩欧美综合| 国产在线播放不卡| 中文国产成人精品| 日本中文字幕久久看| 欧美自拍大量在线观看| 国产精品夜色7777狼人| 日韩中文字幕视频| 国产精品久久久久久久久| 国产精品网站入口| 欧美激情一区二区三区在线视频观看| 亚洲欧美精品一区| 久久视频精品在线| 欧美理论片在线观看| 九九热视频这里只有精品| 色悠悠久久久久| 91av视频在线播放| 国内精品小视频在线观看| 成人激情视频在线播放| 国产在线观看精品一区二区三区| 久久久电影免费观看完整版| 欧美疯狂性受xxxxx另类| 成人免费视频网址| 欧美性猛交xxxx黑人猛交| 日韩成人av在线播放| 91高清视频在线免费观看| 国产成人精品日本亚洲| 理论片在线不卡免费观看| 97免费视频在线播放| 久久99国产精品久久久久久久久| 国产男女猛烈无遮挡91| 国产精品免费久久久久影院| 欧美丰满少妇xxxxx| 欧美孕妇孕交黑巨大网站| 亚洲国产精品福利| 成人在线播放av| 亚洲第一偷拍网| 精品动漫一区二区三区| 欧美日韩成人在线播放| 亚洲xxx自由成熟| 97超级碰碰碰久久久| 91精品国产91久久久久久最新| 成人网页在线免费观看| 亚洲欧美日韩精品久久| 国产在线精品成人一区二区三区| 97视频免费观看| 亚洲在线第一页| 91色视频在线观看| 亚洲国产欧美在线成人app| 欧美午夜精品久久久久久人妖| 欧美日韩亚洲精品一区二区三区| 久久999免费视频| 国产精品久久久久久久久影视| 日韩中文字幕网址| 国产一区二区av| 日韩中文字幕视频在线| 8090理伦午夜在线电影| 亚洲国产中文字幕在线观看| 日韩在线免费高清视频| 日本道色综合久久影院| 国语自产精品视频在线看抢先版图片| 国产成人avxxxxx在线看| 国产欧美亚洲视频| 好吊成人免视频| 亚洲天天在线日亚洲洲精| 久久精品国亚洲| 国产精品久久久久秋霞鲁丝| 懂色av中文一区二区三区天美| 国产视频久久久久| 国模精品视频一区二区三区| 欧美成在线视频| 日韩av在线网页| 久久综合色影院| 久久手机精品视频| 欧美极品少妇全裸体| 欧美丰满老妇厨房牲生活| 亚洲欧洲一区二区三区在线观看| 成人黄色免费网站在线观看| 欧美孕妇毛茸茸xxxx| 亚洲香蕉av在线一区二区三区| 91嫩草在线视频| 国产综合久久久久久| 色婷婷综合久久久久中文字幕1| 成人黄色免费网站在线观看| 欧美日韩免费在线| 欧美在线亚洲在线|