我正在为数据结构类开发类似宝石迷阵的游戏。自从我介绍 C++ 以来已经有好几年了,我的逻辑已经很生疏了。
我的代码将 4 的匹配识别为 3 的两个匹配。我不确定如何绕过 3 的匹配来匹配 4。我尝试过类似的 if 语句if (counter = 3 && board[y][x] == board[y][x-1])
,但它没有像我一样故意的。
这是我的代码:
// Counts the number of matches (3 or more)
// returns number of matches found
int CountJewels(){
int matches = 0;
// Horizontal jewels
for (int y = 0; y < size; y++){
int counter = 1;
for (int x = 1; x < size; x++){
if (board[y][x] == board[y][x-1]){
counter++;
if (counter >= 3){
matches++;
}
} else {
counter = 1;
}
}
}
// Vertical jewels
for (int x = 0; x < size; x++){
int counter = 1;
for(int y = 1; y < size; y++){
if(board[y][x] == board[y-1][x]){
counter++;
if (counter >= 3){
matches++;
}
} else {
counter = 1;
}
}
}
cout << matches << endl;
return matches;
}