#include <iostream> #include<cmath> #include<ctime> #include<string> #include <iomanip> #include <fstream> using namespace std; bool isConsecutiveFour(int values[][7]) { // checking rows for (int i = 0; i < 6; i++) { int current = values[i][0]; int consecutiveCount = 0; // values[i][0] starts count for (int j = 0; j < 7; j++) { if (values[i][j] == current) { consecutiveCount++; if (consecutiveCount == 4) return true; } else { current = values[i][j]; consecutiveCount = 1; } } } // check columns for (int j = 0; j < 7; j++) { int consecutiveCount = 0; // values[0][j] starts count int current = values[0][j]; for (int i = 0; i < 6; i++) { if (values[i][j] == current) { consecutiveCount++; if (consecutiveCount == 4) return true; } else { current = values[i][j]; consecutiveCount = 1; } } } // check topLeft side: going upright for (int i = 6 - 1; i > 0; i--) { int y = i; int x = 0; int consecutive = 0; int current = values[y][x]; while (y >= 0) { if (values[y][x] == current) { consecutive++; if (consecutive == 4) return true; } else { consecutive = 1; current = values[y][x]; } x++; y--; } } // check bottom right side: going upright for (int j = 0; j < 7; j++) { int y = 6 - 1; int x = j; int consecutive = 0; int current = values[y][x]; while (x < 6 && y >= 0) { if (values[y][x] == current) { consecutive++; if (consecutive == 4) return true; } else { consecutive = 1; current = values[y][x]; } x++; y--; } } // check bottom left side going up-left for (int j = 7 - 1; j > 0; j--) { int x = j; int y = 6 - 1; int current = values[y][x]; int consecutiveCount = 0; while (x >= 0 && y >= 0) { if (values[y][x] == current) { consecutiveCount++; if (consecutiveCount == 4) return true; } else { consecutiveCount = 1; current = values[y][x]; } x--; y--; } } // check bottom right side going up-left for (int row = 1; row < 6; row++) { int x = 7 - 1; int y = row; int consecutive = 0; int current = values[y][x]; while (y >= 0) { if (values[y][x] == current) { consecutive++; if (consecutive == 4) return true; } else { consecutive = 1; current = values[y][x]; } x--; y--; } } return false; } // Driver code int main() { int m[6][7]; for (int i = 0; i < 6; i++) for (int j = 0; j < 7; j++) cin >> m[i][j]; if (isConsecutiveFour(m) == true) cout << "true"; else cout << "false"; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter