/* Basic two player tic tac toe. Includes a win/lose statement, but
source code is long and hard to read.
Version 1.1 */
#include <iostream>
#include <string>
using namespace std;
int main()
{
string sa="a",sb="b",sc="c",sd="d",se="e",sf="f",sg="g",sh="h",si="i";
repeat:
cout << " | " << " | " << " " << endl;
cout << " " << sa << " | " << sb << " | " << sc << "" << endl;
cout << "_____|" << "_____|" << "_____" << endl;
cout << " | " << " | " << " " << endl;
cout << " " << sd << " | " << se << " | " << sf << "" << endl;
cout << "_____|" << "_____|" << "_____" << endl;
cout << " | " << " | " << " " << endl;
cout << " " << sg << " | " << sh << " | " << si << "" << endl;
cout << " | " << " | " << " " << endl;
char player1move;
p1move:
cout << "\nEnter the letter to place your X:\t";
cin >> player1move;
switch(player1move)
{
case 'a' : sa="X"; break;
case 'b' : sb="X"; break;
case 'c' : sc="X"; break;
case 'd' : sd="X"; break;
case 'e' : se="X"; break;
case 'f' : sf="X"; break;
case 'g' : sg="X"; break;
case 'h' : sh="X"; break;
case 'i' : si="X"; break;
default : goto p1move;
}
if(sa=="X" && sb=="X" && sc=="X" || sa=="O" && sb=="O" && sc=="O")
{
if(sa == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sd=="X" && se=="X" && sf=="X" || sd=="O" && se=="O" && sf=="O")
{
if(sd == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sg=="X" && sh=="X" && si=="X" || sg=="O" && sh=="O" && si=="O")
{
if(sg == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sa=="X" && sd=="X" && sg=="X" || sa=="O" && sd=="O" && sg=="O")
{
if(sa == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sb=="X" && se=="X" && sh=="X" || sb=="O" && se=="O" && sh=="O")
{
if(sb == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sc=="X" && sf=="X" && si=="X" || sc=="O" && sf=="O" && si=="O")
{
if(sc == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sa=="X" && se=="X" && si=="X" || sa=="O" && se=="O" && si=="O")
{
if(sa == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sc=="X" && se=="X" && sg=="X" || sc=="O" && se=="O" && sg=="O")
{
if(sc == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
cout << " | " << " | " << " " << endl;
cout << " " << sa << " | " << sb << " | " << sc << "" << endl;
cout << "_____|" << "_____|" << "_____" << endl;
cout << " | " << " | " << " " << endl;
cout << " " << sd << " | " << se << " | " << sf << "" << endl;
cout << "_____|" << "_____|" << "_____" << endl;
cout << " | " << " | " << " " << endl;
cout << " " << sg << " | " << sh << " | " << si << "" << endl;
cout << " | " << " | " << " " << endl;
char player2move;
p2move:
cout << "\nEnter the letter to place your O:\t";
cin >> player2move;
switch(player2move)
{
case 'a' : sa="O"; break;
case 'b' : sb="O"; break;
case 'c' : sc="O"; break;
case 'd' : sd="O"; break;
case 'e' : se="O"; break;
case 'f' : sf="O"; break;
case 'g' : sg="O"; break;
case 'h' : sh="O"; break;
case 'i' : si="O"; break;
default : goto p2move;
}
if(sa=="X" && sb=="X" && sc=="X" || sa=="O" && sb=="O" && sc=="O")
{
if(sa == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sd=="X" && se=="X" && sf=="X" || sd=="O" && se=="O" && sf=="O")
{
if(sd == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sg=="X" && sh=="X" && si=="X" || sg=="O" && sh=="O" && si=="O")
{
if(sg == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sa=="X" && sd=="X" && sg=="X" || sa=="O" && sd=="O" && sg=="O")
{
if(sa == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sb=="X" && se=="X" && sh=="X" || sb=="O" && se=="O" && sh=="O")
{
if(sb == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sc=="X" && sf=="X" && si=="X" || sc=="O" && sf=="O" && si=="O")
{
if(sc == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sa=="X" && se=="X" && si=="X" || sa=="O" && se=="O" && si=="O")
{
if(sa == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
if(sc=="X" && se=="X" && sg=="X" || sc=="O" && se=="O" && sg=="O")
{
if(sc == "X")
{
cout << "Player 1 wins.";return 0;
}
else
{
cout << "Player 2 wins.";return 0;
}
}
goto repeat;
}