Skip to content

Instantly share code, notes, and snippets.

@amtal
Created May 30, 2011 13:54
Show Gist options
  • Save amtal/998926 to your computer and use it in GitHub Desktop.
Save amtal/998926 to your computer and use it in GitHub Desktop.
This is how you do it.
/* 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