The program works but it has a bug that I can't seem to figure out how to fix efficiently. If one player selects a box it will get their mark. but if the next player chooses the same box, either accidentally or on purpose, it will override the previous players choice. How do I prevent this from happening without writing out a a false statement for every single possibility.
Code:
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
char PlayerOneUsername[30];
char PlayerTwoUsername[30];
int Player1Score;
int Player2Score;
int TurnNumber = 1;
char Box1 = '1';
char Box2 = '2';
char Box3 = '3';
char Box4 = '4';
char Box5 = '5';
char Box6 = '6';
char Box7 = '7';
char Box8 = '8';
char Box9 = '9';
int SquareSelection = 0;
char x = 'x';
char o = 'o';
char Repeat;
void TwoPlayer(){
cout<<"Enter Player One Username: ";
cin>>PlayerOneUsername;
cout<<"Enter Player Two Username: ";
cin>>PlayerTwoUsername;
system("cls");
while(TurnNumber < 10){
cout<< TurnNumber<<"\n";
cout<<PlayerOneUsername<<": "<< Player1Score;
cout<<" "<<PlayerTwoUsername<< ": "<< Player2Score<<"\n";
cout<< Box1<<" "<<Box2<<" "<<Box3<<"\n";
cout<< Box4<<" "<<Box5<<" "<<Box6<<"\n";
cout<< Box7<<" "<<Box8<<" "<<Box9<<"\n";
if (TurnNumber == 1 || TurnNumber ==3 || TurnNumber == 5 || TurnNumber == 7 || TurnNumber == 9){
cout<<"Player One Select your Square: ";
cin>> SquareSelection;
if(SquareSelection == 1)
Box1 = x;
else if(SquareSelection == 2)
Box2 = x;
else if(SquareSelection == 3)
Box3 = x;
else if(SquareSelection == 4)
Box4 = x;
else if(SquareSelection == 5)
Box5 = x;
else if(SquareSelection == 6)
Box6 = x;
else if(SquareSelection == 7)
Box7 = x;
else if(SquareSelection == 8)
Box8 = x;
else if(SquareSelection == 9)
Box9 = x;
}
else if(TurnNumber == 2 || TurnNumber == 4 || TurnNumber == 6 || TurnNumber == 8){
cout<<"Player Two Select Your square: ";
cin>> SquareSelection;
if(SquareSelection == 1)
Box1 = o;
else if(SquareSelection == 2)
Box2 = o;
else if(SquareSelection == 3)
Box3 = o;
else if(SquareSelection == 4)
Box4 = o;
else if(SquareSelection == 5)
Box5 = o;
else if(SquareSelection == 6)
Box6 = o;
else if(SquareSelection == 7)
Box7 = o;
else if(SquareSelection == 8)
Box8 = o;
else if(SquareSelection == 9)
Box9 = o;
}
TurnNumber ++;
system("cls");
if(Box1 == x && Box2 == x && Box3 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box4 == x && Box5 == x && Box6 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box7 == x && Box8 == x && Box9 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box1 == x && Box4 == x && Box7 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box2 == x && Box5 == x && Box8 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box3 == x && Box6 == x && Box9 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box1 == x && Box5 == x && Box9 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box3 == x && Box5 == x && Box7 == x){
cout<<"\n Congradulations "<<PlayerOneUsername<<". You won!\n";
Player1Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box1 == o && Box2 == o && Box3 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box4 == o && Box5 == o && Box6 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box7 == o && Box8 == o && Box9 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box1 == o && Box4 == o && Box7 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box2 == o && Box5 == o && Box8 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box3 == o && Box6 == o && Box9 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box1 == o && Box5 == o && Box9 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
else if(Box3 == o && Box5 == o && Box7 == o){
cout<<"\n Congradulations "<<PlayerTwoUsername<<". You won!\n";
Player2Score ++;
TurnNumber = 10;
system("PAUSE");}
if(TurnNumber == 10){
cout<<"Would you like to play again (y/n): ";
cin>> Repeat;
if(Repeat == 'y'){
TurnNumber = 0;
Box1 = '1';
Box2 = '2';
Box3 = '3';
Box4 = '4';
Box5 = '5';
Box6 = '6';
Box7 = '7';
Box8 = '8';
Box9 = '9';
}
}
}
}
void Instructions(){
}
void Quit(){
}
int main()
{
int Selection;
cout<<"####################################################\n";
cout<<"######### Welcome! Please Select Your Game.#########\n";
cout<<"####################################################\n";
cout<<"\n";
cout<<"1. Single Player\n";
cout<<"2. Two Player\n";
cout<<"3. Instructions\n";
cout<<"4. Quit\n";
cout<<"Selection: ";
cin>>Selection;
switch(Selection){
case 1:
SinglePlayer();
break;
case 2:
TwoPlayer();
break;
case 3:
Instructions();
break;
case 4:
Quit();
break;
}
}