Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <array>
- #include <cstdlib>
- int Carr[9] = {3,3,3,3,3,3,3,3,3};
- int ArrPos = 0;
- int Player = 1;
- int Winner = 0;
- int MoveNotLegal =1;
- char LetInp;
- int GameLive = 1;
- int Xcoord = 0;
- int Ycoord = 0;
- int P2Let = 0;
- int P2Num = 0;
- int Valid = 0;
- int Column =0;
- int Moves =0;
- int RedrawBoard() // 1 = Plyr 1; 2 = Plyr 2; 3 = Blank
- {
- int Column = 1;
- std::cout << std::endl;
- std::cout << " A B C\n\n" << Column;
- int LineCount = 1;
- for (int y = 0; y <= 8; ++y, ++LineCount)
- {
- if (Carr[y] == 1)
- {
- std::cout << " X";
- }
- if (Carr[y] == 2)
- {
- std::cout << " O";
- }
- if (Carr[y] == 3)
- {
- std::cout << " *";
- }
- if (LineCount == 3 && Column != 3)
- {
- LineCount = 0;
- ++Column;
- std::cout << '\n' << Column;
- }
- }
- return 0;
- };
- void ResetBoard()
- {
- for (int i = 0; i <= 8; ++i)
- Carr[i] = 3;
- };
- int GetPlayerMove(int Plyr)
- {
- MoveNotLegal = 1;
- do
- {
- std::cout << "\nPlayer " << Plyr << " Enter column from (A - C): ";
- std::cin >> LetInp;
- switch (LetInp)
- {
- case ('a'):
- Ycoord = 0;
- break;
- case ('b'):
- Ycoord = 1;
- break;
- case ('c'):
- Ycoord = 2;
- break;
- }
- std::cout << "\nPlayer " << Plyr << " Enter row from (1-3): ";
- std::cin >> Xcoord;
- --Xcoord;
- ArrPos = (3 * Xcoord) + Ycoord;
- if (Carr[ArrPos] == 3)
- {
- Carr[ArrPos] = 1;
- MoveNotLegal = 0;
- }
- }
- while (MoveNotLegal == 1);
- MoveNotLegal = 1;
- return 0;
- }
- void CheckForWinP1()
- {
- if (Carr[0] == 1 && Carr[3] == 1 && Carr[6] == 1)
- {
- GameLive = 0;
- }
- if (Carr[1] == 1 && Carr[4] == 1 && Carr[7] == 1)
- {
- GameLive = 0;
- }
- if (Carr[2] == 1 && Carr[5] == 1 && Carr[8] == 1)
- {
- GameLive = 0;
- }
- if (Carr[0] == 1 && Carr[1] == 1 && Carr[2] == 1)
- {
- GameLive = 0;
- }
- if (Carr[3] == 1 && Carr[4] == 1 && Carr[5] == 1)
- {
- GameLive = 0;
- }
- if (Carr[6] == 1 && Carr[7]== 1 && Carr[8] == 1)
- {
- GameLive = 0;
- }
- if (Carr[0] == 1 && Carr[4] == 1 && Carr[8] == 1)
- {
- GameLive = 0;
- }
- if (Carr[2] == 1 && Carr[4] == 1 && Carr[6] == 1)
- {
- GameLive = 0;
- }
- if (GameLive == 0)
- {
- Winner = 1;
- }
- }
- void CheckForWinP2()
- {
- if (Carr[0] == 2 && Carr[3] == 2 && Carr[6] == 2)
- {
- GameLive = 0;
- }
- if (Carr[1] == 2 && Carr[4] == 2 && Carr[7] == 2)
- {
- GameLive = 0;
- }
- if (Carr[2] == 2 && Carr[5] == 2 && Carr[8] == 2)
- {
- GameLive = 0;
- }
- if (Carr[0] == 2 && Carr[1] == 2 && Carr[2] == 2)
- {
- GameLive = 0;
- }
- if (Carr[3] == 2 && Carr[4] == 2 && Carr[5] == 2)
- {
- GameLive = 0;
- }
- if (Carr[6] == 2 && Carr[7]== 2 && Carr[8] == 2)
- {
- GameLive = 0;
- }
- if (Carr[0] == 2 && Carr[4] == 2 && Carr[8] == 2)
- {
- GameLive = 0;
- }
- if (Carr[2] == 2 && Carr[4] == 2 && Carr[6] == 2)
- {
- GameLive = 0;
- }
- if (GameLive == 0)
- {
- Winner = 2;
- }
- }
- void Player2Move()
- {
- Valid = 0;
- Column = 0;
- if (Carr[0] == 2 && Carr[1] == 2 && Carr[2] == 3) // Horizontal Win Check.
- {
- Carr[2] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[1] == 2 && Carr[2] == 2 && Carr[0] == 3)
- {
- Carr[0] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 2 && Carr[2] == 2 && Carr[1] == 3)
- {
- Carr[1] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[3] == 2 && Carr[4] == 2 && Carr[5] == 3)
- {
- Carr[5] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 2 && Carr[5] == 2 && Carr[3] == 3)
- {
- Carr[3] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[3] == 2 && Carr[5] == 2 && Carr[4] == 3)
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[6] == 2 && Carr[7] == 2 && Carr[8] == 3)
- {
- Carr[8] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[7] == 2 && Carr[8] == 2 && Carr[6] == 3)
- {
- Carr[6] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[6] == 2 && Carr[8] == 2 && Carr[7] == 3)
- {
- Carr[7] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 2 && Carr[3] == 2 && Carr[6] == 3) // Vertical Win Check.
- {
- Carr[6] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 2 && Carr[6] == 2 && Carr[3] == 3)
- {
- Carr[3] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[3] == 2 && Carr[6] == 2 && Carr[0] == 3)
- {
- Carr[0] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[1] == 2 && Carr[4] == 2 && Carr[7] == 3)
- {
- Carr[7] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[1] == 2 && Carr[7] == 2 && Carr[4] == 3)
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 2 && Carr[7] == 2 && Carr[1] == 3)
- {
- Carr[1] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 2 && Carr[5] == 2 && Carr[8] == 3)
- {
- Carr[8] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 2 && Carr[8] == 2 && Carr[5] == 3)
- {
- Carr[5] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[5] == 2 && Carr[8] == 2 && Carr[2] == 3)
- {
- Carr[2] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 2 && Carr[4] == 2 && Carr[8] == 3)
- {
- Carr[8] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 2 && Carr[8] == 2 && Carr[4] == 3)
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 2 && Carr[8] == 2 && Carr[0] == 3)
- {
- Carr[0] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 2 && Carr[4] == 2 && Carr[6] == 3)
- {
- Carr[6] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 2 && Carr[6] == 2 && Carr[4] == 3) // Diagonal Win Check.
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 2 && Carr[6] == 2 && Carr[2] == 3)
- {
- Carr[2] = 2;
- Valid = 1;
- }
- if (Valid == 0)
- {
- if (Carr[0] == 1 && Carr[1] == 1 && Carr[2] == 3) // Horizontal Block Check.
- {
- Carr[2] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[1] == 1 && Carr[2] == 1 && Carr[0] == 3)
- {
- Carr[0] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 1 && Carr[2] == 1 && Carr[1] == 3)
- {
- Carr[1] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[3] == 1 && Carr[4] == 1 && Carr[5] == 3)
- {
- Carr[5] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 1 && Carr[5] == 1 && Carr[3] == 3)
- {
- Carr[3] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[3] == 1 && Carr[5] == 1 && Carr[4] == 3)
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[6] == 1 && Carr[7] == 1 && Carr[8] == 3)
- {
- Carr[8] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[7] == 1 && Carr[8] == 1 && Carr[6] == 3)
- {
- Carr[6] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[6] == 1 && Carr[8] == 1 && Carr[7] == 3)
- {
- Carr[7] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 1 && Carr[3] == 1 && Carr[6] == 3) // Vertical Block Check.
- {
- Carr[6] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 1 && Carr[6] == 1 && Carr[3] == 3)
- {
- Carr[3] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[3] == 1 && Carr[6] == 1 && Carr[0] == 3)
- {
- Carr[0] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[1] == 1 && Carr[4] == 1 && Carr[7] == 3)
- {
- Carr[7] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[1] == 1 && Carr[7] == 1 && Carr[4] == 3)
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 1 && Carr[7] == 1 && Carr[1] == 3)
- {
- Carr[1] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 1 && Carr[5] == 1 && Carr[8] == 3)
- {
- Carr[8] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 1 && Carr[8] == 1 && Carr[5] == 3)
- {
- Carr[5] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[5] == 1 && Carr[8] == 1 && Carr[2] == 3)
- {
- Carr[2] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 1 && Carr[4] == 1 && Carr[8] == 3)
- {
- Carr[8] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[0] == 1 && Carr[8] == 1 && Carr[4] == 3)
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 1 && Carr[8] == 1 && Carr[0] == 3)
- {
- Carr[0] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 1 && Carr[4] == 1 && Carr[6] == 3)
- {
- Carr[6] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[2] == 1 && Carr[6] == 1 && Carr[4] == 3) // Diagonal Block Check.
- {
- Carr[4] = 2;
- Valid = 1;
- }
- if (Valid == 0 && Carr[4] == 1 && Carr[6] == 1 && Carr[2] == 3)
- {
- Carr[2] = 2;
- Valid = 1;
- }
- }
- if (Valid == 0)
- {
- do
- {
- P2Let = rand() %3;
- P2Num = rand() %3;
- if (Carr[(3 * P2Num) + P2Let] == 3)
- {
- Carr[(3 * P2Num) + P2Let] = 2;
- Valid =1;
- }
- }
- while (Valid == 0);
- }
- }
- int main()
- {
- char PlayAgain = 'y';
- RedrawBoard();
- Moves = 0;
- do
- {
- GetPlayerMove(Player);
- ++Moves;
- RedrawBoard();
- CheckForWinP1();
- ++Player;
- if (Moves == 9)
- {
- GameLive = 0;
- Moves = 0;
- }
- if (GameLive == 1)
- {
- Player2Move();
- ++Moves;
- RedrawBoard();
- CheckForWinP2();
- --Player;
- if (Moves == 9)
- {
- GameLive = 0;
- Moves = 0;
- }
- }
- if (GameLive == 0)
- {
- if (Winner == 1)
- {
- std::cout << "\nYou beat the computer!";
- }
- if (Winner == 2)
- {
- std::cout << "\nLMAO You got your ass kicked!";
- }
- if (Winner == 0)
- {
- std::cout << "\nGame drawn!";
- }
- std::cout << "\nWould you like to play again? (y or n) ";
- std::cin >> PlayAgain;
- if (PlayAgain == 'y')
- {
- Player = 1;
- GameLive = 1;
- Winner = 0;
- Moves = 0;
- ResetBoard();
- RedrawBoard();
- }
- }
- }
- while (PlayAgain == 'y' || PlayAgain == 'Y');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement