fix: fixed bug with diagonal where it would break early without the point dropping all the way down and added left diagonal check
This commit is contained in:
@@ -12,6 +12,8 @@ void Point::assign(int row, int col) {
|
|||||||
void Point::move() {
|
void Point::move() {
|
||||||
if(m_row < ROW - 1) {
|
if(m_row < ROW - 1) {
|
||||||
m_row++;
|
m_row++;
|
||||||
|
} else {
|
||||||
|
m_collided = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +62,21 @@ bool Player::check_chain(std::array<std::array<char, COL>, ROW> &m_board, std::v
|
|||||||
if(m_board[i - 1][j + 1] != m_symbol) continue;
|
if(m_board[i - 1][j + 1] != m_symbol) continue;
|
||||||
if(m_board[i - 2][j + 2] != m_symbol) continue;
|
if(m_board[i - 2][j + 2] != m_symbol) continue;
|
||||||
if(m_board[i - 3][j + 3] != m_symbol) continue;
|
if(m_board[i - 3][j + 3] != m_symbol) continue;
|
||||||
|
if(m_board[i][j + 1] == '.') continue;
|
||||||
|
if(m_board[i - 1][j + 2] == '.') continue;
|
||||||
|
if(m_board[i - 2][j + 3] == '.') continue;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(int i = ROW - 1; i >= 0; i--) {
|
||||||
|
for(int j = COL - 1; j >= 0; j--) {
|
||||||
|
if(m_board[i][j] != m_symbol) continue;
|
||||||
|
if(m_board[i - 1][j - 1] != m_symbol) continue;
|
||||||
|
if(m_board[i - 2][j - 2] != m_symbol) continue;
|
||||||
|
if(m_board[i - 3][j - 3] != m_symbol) continue;
|
||||||
|
if(m_board[i][j - 1] == '.') continue;
|
||||||
|
if(m_board[i - 1][j - 2] == '.') continue;
|
||||||
|
if(m_board[i - 2][j - 3] == '.') continue;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ int main() {
|
|||||||
points_list[i].move();
|
points_list[i].move();
|
||||||
points_list[i].check_collision(points_list);
|
points_list[i].check_collision(points_list);
|
||||||
}
|
}
|
||||||
if(one.check_chain(window.m_board)) {
|
if(one.check_chain(window.m_board, points_list)) {
|
||||||
std::cout << "Hello" << std::endl;
|
std::cout << "Hello" << std::endl;
|
||||||
running = false;
|
running = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user