Created
May 30, 2011 13:54
-
-
Save amtal/998926 to your computer and use it in GitHub Desktop.
This is how you do it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TOMMY's CONNECT 4 PROGRAM */ | |
#include <iostream> | |
using namespace std; | |
char cBlock[] = {178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178}; | |
int choice; | |
char block = 178; | |
bool bGameover = false; | |
char iPlayerTurn = 'X'; | |
bool bPlayerTurn = true; | |
char winner; | |
char cPlayAgain; | |
int iScoreForX; | |
int iScoreForO; | |
bool bDraw; | |
char win; | |
int main () | |
{ | |
cout << "The "<<cBlock[0]<<" represents an empty slot"<<endl; | |
do // Game Begins | |
{ | |
cout << "Connect 4 block \n" "____________________ \n" << endl; | |
cout << cBlock[0]<<"|"<<cBlock[1]<<"|"<<cBlock[2]<<"|"<<cBlock[3]<<"|"<<cBlock[4]<<"|"<<cBlock[5]<<"|"<<cBlock[6]<<endl; | |
cout << "-+-+-+-+-+-+- \n"; | |
cout << cBlock[7]<<"|"<<cBlock[8]<<"|"<<cBlock[9]<<"|"<<cBlock[10]<<"|"<<cBlock[11]<<"|"<<cBlock[12]<<"|"<<cBlock[13]<<endl; | |
cout << "-+-+-+-+-+-+- \n"; | |
cout << cBlock[14]<<"|"<<cBlock[15]<<"|"<<cBlock[16]<<"|"<<cBlock[17]<<"|"<<cBlock[18]<<"|"<<cBlock[19]<<"|"<<cBlock[20]<<endl; | |
cout << "-+-+-+-+-+-+- \n"; | |
cout << cBlock[21]<<"|"<<cBlock[22]<<"|"<<cBlock[23]<<"|"<<cBlock[24]<<"|"<<cBlock[25]<<"|"<<cBlock[26]<<"|"<<cBlock[27]<<endl; | |
cout << "-+-+-+-+-+-+- \n"; | |
cout << cBlock[28]<<"|"<<cBlock[29]<<"|"<<cBlock[30]<<"|"<<cBlock[31]<<"|"<<cBlock[32]<<"|"<<cBlock[33]<<"|"<<cBlock[34]<<endl; | |
cout << "-+-+-+-+-+-+- \n"; | |
cout << cBlock[35]<<"|"<<cBlock[36]<<"|"<<cBlock[37]<<"|"<<cBlock[38]<<"|"<<cBlock[39]<<"|"<<cBlock[40]<<"|"<<cBlock[41]<<endl; | |
cout << endl; | |
cout << "0|1|2|3|4|5|6 \n"; | |
//Game Over Check for X LEFT TO RIGHT | |
if (((cBlock[0] == 'X') && (cBlock[1] == 'X') && (cBlock[2] == 'X') && (cBlock[3] == 'X')) || | |
((cBlock[1] == 'X') && (cBlock[2] == 'X') && (cBlock[3] == 'X') && (cBlock[4] == 'X')) || | |
((cBlock[2] == 'X') && (cBlock[3] == 'X') && (cBlock[4] == 'X') && (cBlock[5] == 'X')) || | |
((cBlock[3] == 'X') && (cBlock[4] == 'X') && (cBlock[5] == 'X') && (cBlock[6] == 'X')) || | |
((cBlock[7] == 'X') && (cBlock[8] == 'X') && (cBlock[9] == 'X') && (cBlock[10] == 'X'))|| | |
((cBlock[8] == 'X') && (cBlock[9] == 'X') && (cBlock[10] == 'X') && (cBlock[11] == 'X'))|| | |
((cBlock[9] == 'X') && (cBlock[10] == 'X') && (cBlock[11] == 'X') && (cBlock[12] == 'X'))|| | |
((cBlock[10] == 'X') && (cBlock[11] == 'X') && (cBlock[12] == 'X') && (cBlock[13] == 'X'))|| | |
((cBlock[14] == 'X') && (cBlock[15] == 'X') && (cBlock[16] == 'X') && (cBlock[17] == 'X'))|| | |
((cBlock[15] == 'X') && (cBlock[16] == 'X') && (cBlock[17] == 'X') && (cBlock[18] == 'X'))|| | |
((cBlock[16] == 'X') && (cBlock[17] == 'X') && (cBlock[18] == 'X') && (cBlock[19] == 'X'))|| | |
((cBlock[17] == 'X') && (cBlock[18] == 'X') && (cBlock[19] == 'X') && (cBlock[20] == 'X'))|| | |
((cBlock[21] == 'X') && (cBlock[22] == 'X') && (cBlock[23] == 'X') && (cBlock[24] == 'X'))|| | |
((cBlock[22] == 'X') && (cBlock[23] == 'X') && (cBlock[24] == 'X') && (cBlock[25] == 'X'))|| | |
((cBlock[23] == 'X') && (cBlock[24] == 'X') && (cBlock[25] == 'X') && (cBlock[26] == 'X'))|| | |
((cBlock[24] == 'X') && (cBlock[25] == 'X') && (cBlock[26] == 'X') && (cBlock[27] == 'X'))|| | |
((cBlock[28] == 'X') && (cBlock[29] == 'X') && (cBlock[30] == 'X') && (cBlock[31] == 'X'))|| | |
((cBlock[29] == 'X') && (cBlock[30] == 'X') && (cBlock[31] == 'X') && (cBlock[32] == 'X'))|| | |
((cBlock[30] == 'X') && (cBlock[31] == 'X') && (cBlock[33] == 'X') && (cBlock[33] == 'X'))|| | |
((cBlock[31] == 'X') && (cBlock[32] == 'X') && (cBlock[34] == 'X') && (cBlock[34] == 'X'))|| | |
((cBlock[35] == 'X') && (cBlock[36] == 'X') && (cBlock[37] == 'X') && (cBlock[38] == 'X'))|| | |
((cBlock[36] == 'X') && (cBlock[37] == 'X') && (cBlock[38] == 'X') && (cBlock[39] == 'X'))|| | |
((cBlock[37] == 'X') && (cBlock[38] == 'X') && (cBlock[39] == 'X') && (cBlock[40] == 'X'))|| | |
((cBlock[38] == 'X') && (cBlock[39] == 'X') && (cBlock[40] == 'X') && (cBlock[41] == 'X'))) | |
{ | |
bGameover = true; | |
bDraw = false; | |
win = true; | |
bPlayerTurn = false; | |
++iScoreForX; | |
winner = 'X'; | |
} //Winner check from left to right for X | |
//Game Over Check for X TOP TO BOTTOM | |
if (((cBlock[0] == 'X') && (cBlock[7] == 'X') && (cBlock[14] == 'X') && (cBlock[21] == 'X'))|| | |
((cBlock[7] == 'X') && (cBlock[14] == 'X') && (cBlock[21] == 'X') && (cBlock[28] == 'X'))|| | |
((cBlock[14] == 'X') && (cBlock[21] == 'X') && (cBlock[28] == 'X') && (cBlock[35] == 'X'))|| | |
((cBlock[1] == 'X') && (cBlock[8] == 'X') && (cBlock[15] == 'X') && (cBlock[22] == 'X'))|| | |
((cBlock[8] == 'X') && (cBlock[15] == 'X') && (cBlock[22] == 'X') && (cBlock[29] == 'X'))|| | |
((cBlock[15] == 'X') && (cBlock[22] == 'X') && (cBlock[29] == 'X') && (cBlock[36] == 'X'))|| | |
((cBlock[2] == 'X') && (cBlock[9] == 'X') && (cBlock[16] == 'X') && (cBlock[23] == 'X'))|| | |
((cBlock[9] == 'X') && (cBlock[16] == 'X') && (cBlock[23] == 'X') && (cBlock[30] == 'X'))|| | |
((cBlock[16] == 'X') && (cBlock[23] == 'X') && (cBlock[30] == 'X') && (cBlock[37] == 'X'))|| | |
((cBlock[3] == 'X') && (cBlock[10] == 'X') && (cBlock[17] == 'X') && (cBlock[24] == 'X'))|| | |
((cBlock[10] == 'X') && (cBlock[17] == 'X') && (cBlock[24] == 'X') && (cBlock[31] == 'X'))|| | |
((cBlock[17] == 'X') && (cBlock[24] == 'X') && (cBlock[31] == 'X') && (cBlock[38] == 'X'))|| | |
((cBlock[4] == 'X') && (cBlock[11] == 'X') && (cBlock[18] == 'X') && (cBlock[25] == 'X'))|| | |
((cBlock[11] == 'X') && (cBlock[18] == 'X') && (cBlock[25] == 'X') && (cBlock[32] == 'X'))|| | |
((cBlock[18] == 'X') && (cBlock[25] == 'X') && (cBlock[32] == 'X') && (cBlock[39] == 'X'))|| | |
((cBlock[5] == 'X') && (cBlock[12] == 'X') && (cBlock[19] == 'X') && (cBlock[26] == 'X'))|| | |
((cBlock[12] == 'X') && (cBlock[19] == 'X') && (cBlock[26] == 'X') && (cBlock[33] == 'X'))|| | |
((cBlock[19] == 'X') && (cBlock[26] == 'X') && (cBlock[33] == 'X') && (cBlock[40] == 'X'))|| | |
((cBlock[6] == 'X') && (cBlock[13] == 'X') && (cBlock[20] == 'X') && (cBlock[27] == 'X'))|| | |
((cBlock[13] == 'X') && (cBlock[20] == 'X') && (cBlock[27] == 'X') && (cBlock[34] == 'X'))|| | |
((cBlock[20] == 'X') && (cBlock[27] == 'X') && (cBlock[34] == 'X') && (cBlock[41] == 'X'))) | |
{ | |
bGameover = true; | |
bDraw = false; | |
win = true; | |
bPlayerTurn = false; | |
++iScoreForX; | |
winner = 'X'; | |
} //Winner check from top to bottom for X | |
//Game Over Check for X DIAGONALS | |
if (((cBlock[14] == 'X') && (cBlock[22] == 'X') && (cBlock[30] == 'X') && (cBlock[38] == 'X'))|| | |
((cBlock[7] == 'X') && (cBlock[15] == 'X') && (cBlock[23] == 'X') && (cBlock[31] == 'X'))|| | |
((cBlock[15] == 'X') && (cBlock[23] == 'X') && (cBlock[31] == 'X') && (cBlock[39] == 'X'))|| | |
((cBlock[0] == 'X') && (cBlock[8] == 'X') && (cBlock[16] == 'X') && (cBlock[24] == 'X'))|| | |
((cBlock[8] == 'X') && (cBlock[16] == 'X') && (cBlock[24] == 'X') && (cBlock[32] == 'X'))|| | |
((cBlock[16] == 'X') && (cBlock[24] == 'X') && (cBlock[32] == 'X') && (cBlock[40] == 'X'))|| | |
((cBlock[1] == 'X') && (cBlock[9] == 'X') && (cBlock[17] == 'X') && (cBlock[25] == 'X'))|| | |
((cBlock[9] == 'X') && (cBlock[17] == 'X') && (cBlock[25] == 'X') && (cBlock[33] == 'X'))|| | |
((cBlock[17] == 'X') && (cBlock[25] == 'X') && (cBlock[33] == 'X') && (cBlock[41] == 'X'))|| | |
((cBlock[2] == 'X') && (cBlock[10] == 'X') && (cBlock[18] == 'X') && (cBlock[26] == 'X'))|| | |
((cBlock[10] == 'X') && (cBlock[18] == 'X') && (cBlock[26] == 'X') && (cBlock[34] == 'X'))|| | |
((cBlock[3] == 'X') && (cBlock[11] == 'X') && (cBlock[19] == 'X') && (cBlock[27] == 'X'))|| | |
((cBlock[3] == 'X') && (cBlock[9] == 'X') && (cBlock[15] == 'X') && (cBlock[21] == 'X'))|| | |
((cBlock[4] == 'X') && (cBlock[10] == 'X') && (cBlock[16] == 'X') && (cBlock[22] == 'X'))|| | |
((cBlock[10] == 'X') && (cBlock[16] == 'X')&& (cBlock[22] == 'X') && (cBlock[28] == 'X'))|| | |
((cBlock[5] == 'X') && (cBlock[11] == 'X') && (cBlock[17] == 'X') && (cBlock[23] == 'X'))|| | |
((cBlock[11] == 'X') && (cBlock[17] == 'X') && (cBlock[23] == 'X') && (cBlock[29] == 'X'))|| | |
((cBlock[17] == 'X') && (cBlock[23] == 'X') && (cBlock[29] == 'X') && (cBlock[35] == 'X'))|| | |
((cBlock[6] == 'X') && (cBlock[12] == 'X') && (cBlock[18] == 'X') && (cBlock[24] == 'X'))|| | |
((cBlock[12] == 'X') && (cBlock[18] == 'X') && (cBlock[24] == 'X') && (cBlock[30] == 'X'))|| | |
((cBlock[18] == 'X') && (cBlock[24] == 'X') && (cBlock[30] == 'X') && (cBlock[36] == 'X'))|| | |
((cBlock[13] == 'X') && (cBlock[19] == 'X') && (cBlock[25] == 'X') && (cBlock[31] == 'X'))|| | |
((cBlock[19] == 'X') && (cBlock[25] == 'X') && (cBlock[31] == 'X') && (cBlock[37] == 'X'))|| | |
((cBlock[20] == 'X') && (cBlock[26] == 'X') && (cBlock[32] == 'X') && (cBlock[38] == 'X'))) | |
{ | |
bGameover = true; | |
bDraw = false; | |
win = true; | |
bPlayerTurn = false; | |
++iScoreForX; | |
winner = 'X'; | |
} //Winner check DIAGONALS for X | |
//Game Over Check for O LEFT TO RIGHT | |
if (((cBlock[0] == 'O') && (cBlock[1] == 'O') && (cBlock[2] == 'O') && (cBlock[3] == 'O')) || | |
((cBlock[1] == 'O') && (cBlock[2] == 'O') && (cBlock[3] == 'O') && (cBlock[4] == 'O')) || | |
((cBlock[2] == 'O') && (cBlock[3] == 'O') && (cBlock[4] == 'O') && (cBlock[5] == 'O')) || | |
((cBlock[3] == 'O') && (cBlock[4] == 'O') && (cBlock[5] == 'O') && (cBlock[6] == 'O')) || | |
((cBlock[7] == 'O') && (cBlock[8] == 'O') && (cBlock[9] == 'O') && (cBlock[10] == 'O'))|| | |
((cBlock[8] == 'O') && (cBlock[9] == 'O') && (cBlock[10] == 'O') && (cBlock[11] == 'O'))|| | |
((cBlock[9] == 'O') && (cBlock[10] == 'O') && (cBlock[11] == 'O') && (cBlock[12] == 'O'))|| | |
((cBlock[10] == 'O') && (cBlock[11] == 'O') && (cBlock[12] == 'O') && (cBlock[13] == 'O'))|| | |
((cBlock[14] == 'O') && (cBlock[15] == 'O') && (cBlock[16] == 'O') && (cBlock[17] == 'O'))|| | |
((cBlock[15] == 'O') && (cBlock[16] == 'O') && (cBlock[17] == 'O') && (cBlock[18] == 'O'))|| | |
((cBlock[16] == 'O') && (cBlock[17] == 'O') && (cBlock[18] == 'O') && (cBlock[19] == 'O'))|| | |
((cBlock[17] == 'O') && (cBlock[18] == 'O') && (cBlock[19] == 'O') && (cBlock[20] == 'O'))|| | |
((cBlock[21] == 'O') && (cBlock[22] == 'O') && (cBlock[23] == 'O') && (cBlock[24] == 'O'))|| | |
((cBlock[22] == 'O') && (cBlock[23] == 'O') && (cBlock[24] == 'O') && (cBlock[25] == 'O'))|| | |
((cBlock[23] == 'O') && (cBlock[24] == 'O') && (cBlock[25] == 'O') && (cBlock[26] == 'O'))|| | |
((cBlock[24] == 'O') && (cBlock[25] == 'O') && (cBlock[26] == 'O') && (cBlock[27] == 'O'))|| | |
((cBlock[28] == 'O') && (cBlock[29] == 'O') && (cBlock[30] == 'O') && (cBlock[31] == 'O'))|| | |
((cBlock[29] == 'O') && (cBlock[30] == 'O') && (cBlock[31] == 'O') && (cBlock[32] == 'O'))|| | |
((cBlock[30] == 'O') && (cBlock[31] == 'O') && (cBlock[33] == 'O') && (cBlock[33] == 'O'))|| | |
((cBlock[31] == 'O') && (cBlock[32] == 'O') && (cBlock[34] == 'O') && (cBlock[34] == 'O'))|| | |
((cBlock[35] == 'O') && (cBlock[36] == 'O') && (cBlock[37] == 'O') && (cBlock[38] == 'O'))|| | |
((cBlock[36] == 'O') && (cBlock[37] == 'O') && (cBlock[38] == 'O') && (cBlock[39] == 'O'))|| | |
((cBlock[37] == 'O') && (cBlock[38] == 'O') && (cBlock[39] == 'O') && (cBlock[40] == 'O'))|| | |
((cBlock[38] == 'O') && (cBlock[39] == 'O') && (cBlock[40] == 'O') && (cBlock[41] == 'O'))) | |
{ | |
bGameover = true; | |
bDraw = false; | |
win = true; | |
bPlayerTurn = false; | |
++iScoreForO; | |
winner = 'O'; | |
} //Winner check from left to right for O | |
//Game Over Check for O TOP TO BOTTOM | |
if (((cBlock[0] == 'O') && (cBlock[7] == 'O') && (cBlock[14] == 'O') && (cBlock[21] == 'O'))|| | |
((cBlock[7] == 'O') && (cBlock[14] == 'O') && (cBlock[21] == 'O') && (cBlock[28] == 'O'))|| | |
((cBlock[14] == 'O') && (cBlock[21] == 'O') && (cBlock[28] == 'O') && (cBlock[35] == 'O'))|| | |
((cBlock[1] == 'O') && (cBlock[8] == 'O') && (cBlock[15] == 'O') && (cBlock[22] == 'O'))|| | |
((cBlock[8] == 'O') && (cBlock[15] == 'O') && (cBlock[22] == 'O') && (cBlock[29] == 'O'))|| | |
((cBlock[15] == 'O') && (cBlock[22] == 'O') && (cBlock[29] == 'O') && (cBlock[36] == 'O'))|| | |
((cBlock[2] == 'O') && (cBlock[9] == 'O') && (cBlock[16] == 'O') && (cBlock[23] == 'O'))|| | |
((cBlock[9] == 'O') && (cBlock[16] == 'O') && (cBlock[23] == 'O') && (cBlock[30] == 'O'))|| | |
((cBlock[16] == 'O') && (cBlock[23] == 'O') && (cBlock[30] == 'O') && (cBlock[37] == 'O'))|| | |
((cBlock[3] == 'O') && (cBlock[10] == 'O') && (cBlock[17] == 'O') && (cBlock[24] == 'O'))|| | |
((cBlock[10] == 'O') && (cBlock[17] == 'O') && (cBlock[24] == 'O') && (cBlock[31] == 'O'))|| | |
((cBlock[17] == 'O') && (cBlock[24] == 'O') && (cBlock[31] == 'O') && (cBlock[38] == 'O'))|| | |
((cBlock[4] == 'O') && (cBlock[11] == 'O') && (cBlock[18] == 'O') && (cBlock[25] == 'O'))|| | |
((cBlock[11] == 'O') && (cBlock[18] == 'O') && (cBlock[25] == 'O') && (cBlock[32] == 'O'))|| | |
((cBlock[18] == 'O') && (cBlock[25] == 'O') && (cBlock[32] == 'O') && (cBlock[39] == 'O'))|| | |
((cBlock[5] == 'O') && (cBlock[12] == 'O') && (cBlock[19] == 'O') && (cBlock[26] == 'O'))|| | |
((cBlock[12] == 'O') && (cBlock[19] == 'O') && (cBlock[26] == 'O') && (cBlock[33] == 'O'))|| | |
((cBlock[19] == 'O') && (cBlock[26] == 'O') && (cBlock[33] == 'O') && (cBlock[40] == 'O'))|| | |
((cBlock[6] == 'O') && (cBlock[13] == 'O') && (cBlock[20] == 'O') && (cBlock[27] == 'O'))|| | |
((cBlock[13] == 'O') && (cBlock[20] == 'O') && (cBlock[27] == 'O') && (cBlock[34] == 'O'))|| | |
((cBlock[20] == 'O') && (cBlock[27] == 'O') && (cBlock[34] == 'O') && (cBlock[41] == 'O'))) | |
{ | |
bGameover = true; | |
bDraw = false; | |
win = true; | |
bPlayerTurn = false; | |
++iScoreForO; | |
winner = 'O'; | |
} //Winner check from top to bottom for O | |
//Game Over Check for O DIAGONALS | |
if (((cBlock[14] == 'O') && (cBlock[22] == 'O') && (cBlock[30] == 'O') && (cBlock[38] == 'O'))|| | |
((cBlock[7] == 'O') && (cBlock[15] == 'O') && (cBlock[23] == 'O') && (cBlock[31] == 'O'))|| | |
((cBlock[15] == 'O') && (cBlock[23] == 'O') && (cBlock[31] == 'O') && (cBlock[39] == 'O'))|| | |
((cBlock[0] == 'O') && (cBlock[8] == 'O') && (cBlock[16] == 'O') && (cBlock[24] == 'O'))|| | |
((cBlock[8] == 'O') && (cBlock[16] == 'O') && (cBlock[24] == 'O') && (cBlock[32] == 'O'))|| | |
((cBlock[16] == 'O') && (cBlock[24] == 'O') && (cBlock[32] == 'O') && (cBlock[40] == 'O'))|| | |
((cBlock[1] == 'O') && (cBlock[9] == 'O') && (cBlock[17] == 'O') && (cBlock[25] == 'O'))|| | |
((cBlock[9] == 'O') && (cBlock[17] == 'O') && (cBlock[25] == 'O') && (cBlock[33] == 'O'))|| | |
((cBlock[17] == 'O') && (cBlock[25] == 'O') && (cBlock[33] == 'O') && (cBlock[41] == 'O'))|| | |
((cBlock[2] == 'O') && (cBlock[10] == 'O') && (cBlock[18] == 'O') && (cBlock[26] == 'O'))|| | |
((cBlock[10] == 'O') && (cBlock[18] == 'O') && (cBlock[26] == 'O') && (cBlock[34] == 'O'))|| | |
((cBlock[3] == 'O') && (cBlock[11] == 'O') && (cBlock[19] == 'O') && (cBlock[27] == 'O'))|| | |
((cBlock[3] == 'O') && (cBlock[9] == 'O') && (cBlock[15] == 'O') && (cBlock[21] == 'O'))|| | |
((cBlock[4] == 'O') && (cBlock[10] == 'O') && (cBlock[16] == 'O') && (cBlock[22] == 'O'))|| | |
((cBlock[10] == 'O') && (cBlock[16] == 'O')&& (cBlock[22] == 'O') && (cBlock[28] == 'O'))|| | |
((cBlock[5] == 'O') && (cBlock[11] == 'O') && (cBlock[17] == 'O') && (cBlock[23] == 'O'))|| | |
((cBlock[11] == 'O') && (cBlock[17] == 'O') && (cBlock[23] == 'O') && (cBlock[29] == 'O'))|| | |
((cBlock[17] == 'O') && (cBlock[23] == 'O') && (cBlock[29] == 'O') && (cBlock[35] == 'O'))|| | |
((cBlock[6] == 'O') && (cBlock[12] == 'O') && (cBlock[18] == 'O') && (cBlock[24] == 'O'))|| | |
((cBlock[12] == 'O') && (cBlock[18] == 'O') && (cBlock[24] == 'O') && (cBlock[30] == 'O'))|| | |
((cBlock[18] == 'O') && (cBlock[24] == 'O') && (cBlock[30] == 'O') && (cBlock[36] == 'O'))|| | |
((cBlock[13] == 'O') && (cBlock[19] == 'O') && (cBlock[25] == 'O') && (cBlock[31] == 'O'))|| | |
((cBlock[19] == 'O') && (cBlock[25] == 'O') && (cBlock[31] == 'O') && (cBlock[37] == 'O'))|| | |
((cBlock[20] == 'O') && (cBlock[26] == 'O') && (cBlock[32] == 'O') && (cBlock[38] == 'O'))) | |
{ | |
bGameover = true; | |
bDraw = false; | |
win = true; | |
bPlayerTurn = false; | |
++iScoreForO; | |
winner = 'O'; | |
} //Winner check DIAGONALS for O | |
//Game Over Check for Tie | |
if ((cBlock[0] != block) && (cBlock[1] != block) && (cBlock[2] != block) && (cBlock[3] != block) && | |
(cBlock[4] != block) && (cBlock[5] != block) && (cBlock[6] != block) && (cBlock[7] != block) && | |
(cBlock[8] != block) && (cBlock[9] != block) && (cBlock[10] != block) && (cBlock[11] != block) && | |
(cBlock[12] != block) && (cBlock[13] != block) && (cBlock[14] != block) && (cBlock[15] != block) && | |
(cBlock[16] != block) && (cBlock[17] != block) && (cBlock[18] != block) && (cBlock[19] != block) && | |
(cBlock[20] != block) && (cBlock[21] != block) && (cBlock[22] != block) && (cBlock[23] != block) && | |
(cBlock[24] != block) && (cBlock[25] != block) && (cBlock[26] != block) && (cBlock[27] != block) && | |
(cBlock[28] != block) && (cBlock[29] != block) && (cBlock[30] != block) && (cBlock[31] != block) && | |
(cBlock[32] != block) && (cBlock[33] != block) && (cBlock[34] != block) && (cBlock[35] != block) && | |
(cBlock[36] != block) && (cBlock[37] != block) && (cBlock[38] != block) && (cBlock[39] != block) && | |
(cBlock[40] != block) && (cBlock[41] != block)) | |
{ | |
bGameover = true; | |
bDraw = true; | |
} | |
//Congratulate Winner | |
if (win == true) | |
{ | |
cout << "Congratulations! Player "<<winner<<" wins! \n"<<endl; | |
win = false; | |
} | |
else if (bDraw == true) | |
{ | |
cout << "It's a DRAW! \n"; | |
bDraw = false; | |
} | |
//Play Again | |
if (bGameover == true) | |
{ | |
cout << "\nPlay again? y/n : "; | |
cin >> cPlayAgain; | |
if (cPlayAgain == 'y') | |
{ | |
bGameover = false; | |
cBlock[0] = 178; | |
cBlock[1] = 178; | |
cBlock[2] = 178; | |
cBlock[3] = 178; | |
cBlock[4] = 178; | |
cBlock[5] = 178; | |
cBlock[6] = 178; | |
cBlock[7] = 178; | |
cBlock[8] = 178; | |
cBlock[9] = 178; | |
cBlock[10] = 178; | |
cBlock[11] = 178; | |
cBlock[12] = 178; | |
cBlock[13] = 178; | |
cBlock[14] = 178; | |
cBlock[15] = 178; | |
cBlock[16] = 178; | |
cBlock[17] = 178; | |
cBlock[18] = 178; | |
cBlock[19] = 178; | |
cBlock[20] = 178; | |
cBlock[21] = 178; | |
cBlock[22] = 178; | |
cBlock[23] = 178; | |
cBlock[24] = 178; | |
cBlock[25] = 178; | |
cBlock[26] = 178; | |
cBlock[27] = 178; | |
cBlock[28] = 178; | |
cBlock[29] = 178; | |
cBlock[30] = 178; | |
cBlock[31] = 178; | |
cBlock[32] = 178; | |
cBlock[33] = 178; | |
cBlock[34] = 178; | |
cBlock[35] = 178; | |
cBlock[36] = 178; | |
cBlock[37] = 178; | |
cBlock[38] = 178; | |
cBlock[39] = 178; | |
cBlock[40] = 178; | |
cBlock[41] = 178; | |
cout << "\n SCOREBOARD! \n"; | |
cout << "_______________ \n"; | |
cout << "X: "<<iScoreForX<<"\nO: "<<iScoreForO<<endl; | |
} | |
else if (cPlayAgain == 'n') | |
{ | |
cout << " \nThank you for playing Tommy's connect 4 \n"; | |
cout << "SCOREBOARD! \n"; | |
cout << "_______________ \n"; | |
cout << "X: "<<iScoreForX<<"\nO: "<<iScoreForO<<endl; | |
} | |
else | |
{ | |
cout << "You must enter 'y' or 'n'. \n"; | |
} | |
} | |
while(bPlayerTurn == true) { | |
cout << "Player "<<iPlayerTurn<<"'s "<<"turn. \n"; | |
cout << "Enter the slot you want to put chip in: "; | |
cin >> choice; | |
switch (choice) { | |
case 0: | |
{ | |
if (cBlock[35] == block){ | |
cBlock[35] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[28] == block){ | |
cBlock[28] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[21] == block){ | |
cBlock[21] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[14] == block){ | |
cBlock[14] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[7] == block){ | |
cBlock[7] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[0] == block){ | |
cBlock[0] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 0 | |
case 1: | |
{ | |
if (cBlock[36] == block){ | |
cBlock[36] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[29] == block){ | |
cBlock[29] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[22] == block){ | |
cBlock[22] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[15] == block){ | |
cBlock[15] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[8] == block){ | |
cBlock[8] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[1] == block){ | |
cBlock[1] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 1 | |
case 2: | |
{ | |
if (cBlock[37] == block){ | |
cBlock[37] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[30] == block){ | |
cBlock[30] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[23] == block){ | |
cBlock[23] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[16] == block){ | |
cBlock[16] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[9] == block){ | |
cBlock[9] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[2] == block){ | |
cBlock[2] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 2 | |
case 3: | |
{ | |
if (cBlock[38] == block){ | |
cBlock[38] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[31] == block){ | |
cBlock[31] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[24] == block){ | |
cBlock[24] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[17] == block){ | |
cBlock[17] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[10] == block){ | |
cBlock[10] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[3] == block){ | |
cBlock[3] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 3 | |
case 4: | |
{ | |
if (cBlock[39] == block){ | |
cBlock[39] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[32] == block){ | |
cBlock[32] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[25] == block){ | |
cBlock[25] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[18] == block){ | |
cBlock[18] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[11] == block){ | |
cBlock[11] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[4] == block){ | |
cBlock[4] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 4 | |
case 5: | |
{ | |
if (cBlock[40] == block){ | |
cBlock[40] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[33] == block){ | |
cBlock[33] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[26] == block){ | |
cBlock[26] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[19] == block){ | |
cBlock[19] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[12] == block){ | |
cBlock[12] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[5] == block){ | |
cBlock[5] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 5 | |
case 6: | |
{ | |
if (cBlock[41] == block){ | |
cBlock[41] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[34] == block){ | |
cBlock[34] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[27] == block){ | |
cBlock[27] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[20] == block){ | |
cBlock[20] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[13] == block){ | |
cBlock[13] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else if (cBlock[6] == block){ | |
cBlock[6] = iPlayerTurn; | |
bPlayerTurn = false; // Switch Turns | |
} | |
else{ | |
cout << "There is no slot avaiable, try again. \n"; | |
bPlayerTurn = true; // Still is player's turn | |
} | |
break; | |
} // End of case 6 | |
default: //Default Case if entered slot is invalid | |
{ | |
cout << "You have entered an invalid slot, try again. \n"; | |
bPlayerTurn = true; | |
} | |
} // End of Switch | |
} //End of while Statement | |
if ((bPlayerTurn == false) && (iPlayerTurn == 'X')) // Switch Turns | |
{ | |
iPlayerTurn = 'O'; | |
bPlayerTurn = true; | |
} | |
else | |
{ | |
iPlayerTurn = 'X'; | |
bPlayerTurn = true; | |
} | |
} while (bGameover == false); // First Do Statement (Beginning of Game) | |
} // End of Main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment