MFC實現連連看遊戲之消子演算法

2022-09-28 01:48:14 字數 930 閱讀 7938

兩個位置的能否消除,有三種情況:

1.一條直線連線,這種也是最簡單的一種消除方法

bool linkinline(cpoint p1, cpoint p2)

} }else if (p1.x == p2.x) // 在同一列

}} else // 不在同一直線

return b;

}2.兩條直線消除,即經過乙個拐點。

兩個頂點經過兩條直線連線有兩種情況,即兩個拐點分兩種情況。

bool onecornerlink(cpoint p1, cpoint p2)

else

}for (int i = min_y + 1; i < max_y; i++)

}if (b)

}if (game->map[x2][y2] == 0) // 拐點2位置無

}for (int i = min_y + 1; i < max_y; i++)

}if (b)

}} return b;

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

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

bool twocornerlink(cpoint p1, cpoint p2)

}if (b)}}

if (b)}}

}if (b) // 如果存在路線,返回true

} }// 掃瞄行結束

for (int i = 0; i < max_x; i++) // 掃瞄列

}if (b)}}

if (b)}}

if (b) // 如果存在路線,返回true

}} // 掃瞄列結束

return b;

}完整原始碼已上傳至我的github

本文標題: mfc實現連連看遊戲之消子演算法

本文位址:

連連看演算法的實現

圖 0,0,0,0,0,0,0,0,0,0 0,8,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,...

連連看演算法的實現

連連看演算法的實現 收藏 圖 0,0,0,0,0,0,0,0 0,0 0,8,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0...

JAVA之連連看演算法

連連看連線方式的型別 l 兩點直線法 l 三點直角折線法 l 四點方形折線法 l 四點梯形折線法 下面對上面四種型別進行細緻劃分講解 1 兩點直線法的連線型別包括 上,下,左,右 2 三點直角折線法包括 上左,上右,下左,下右,左上,右上,左下,右下 3 四點方形折線法包括 上左下,上右下,下左上,...