daily pastebin goal
60%
SHARE
TWEET

ticktactoe cpp

a guest Jan 17th, 2019 129 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // TickTacToe.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6.  
  7.  
  8. int main() {
  9.  
  10.     // Vars
  11.     char cSqu1('1');
  12.     char cSqu2('2');
  13.     char cSqu3('3');
  14.     char cSqu4('4');
  15.     char cSqu5('5');
  16.     char cSqu6('6');
  17.     char cSqu7('7');
  18.     char cSqu8('8');
  19.     char cSqu9('9');
  20.  
  21.     int iPlayer(1);
  22.  
  23.     bool bEndGame(true);
  24.  
  25.  
  26.     // Loop
  27.     do {
  28.  
  29.         // Print Game
  30.         std::cout << cSqu1 << "|" << cSqu2 << "|" << cSqu3 << std::endl;
  31.         std::cout << "-+-+-" << std::endl;
  32.         std::cout << cSqu4 << "|" << cSqu5 << "|" << cSqu6 << std::endl;
  33.         std::cout << "-+-+-" << std::endl;
  34.         std::cout << cSqu7 << "|" << cSqu8 << "|" << cSqu9 << std::endl;
  35.         std::cout << "-+-+-" << std::endl;
  36.  
  37.         // Define Player Identifiers
  38.         char cPlayerIdentifier;
  39.         if (iPlayer == 1) {
  40.             cPlayerIdentifier = 'X';
  41.         }
  42.         else {
  43.             cPlayerIdentifier = 'O';
  44.         }
  45.  
  46.         // Request Square Choice
  47.         std::cout << "Player" << iPlayer << "'s Turn:" << std::endl;
  48.         bool bValidChoice;
  49.  
  50.         // Loop until valid choice
  51.         do {
  52.             char cNextChoice;
  53.             std::cin >> cNextChoice;
  54.             bValidChoice = true;
  55.  
  56.             // Check if choice is valid
  57.             if (cNextChoice == '1' && cSqu1 == '1') {
  58.                 cSqu1 = cPlayerIdentifier;
  59.             } else if (cNextChoice == '2' && cSqu2 == '2') {
  60.                 cSqu2 = cPlayerIdentifier;
  61.             } else if (cNextChoice == '3' && cSqu3 == '3') {
  62.                 cSqu3 = cPlayerIdentifier;
  63.             } else if (cNextChoice == '4' && cSqu4 == '4') {
  64.                 cSqu4 = cPlayerIdentifier;
  65.             } else if (cNextChoice == '5' && cSqu5 == '5') {
  66.                 cSqu5 = cPlayerIdentifier;
  67.             } else if (cNextChoice == '6' && cSqu6 == '6') {
  68.                 cSqu6 = cPlayerIdentifier;
  69.             } else if (cNextChoice == '7' && cSqu7 == '7') {
  70.                 cSqu7 = cPlayerIdentifier;
  71.             } else if (cNextChoice == '8' && cSqu8 == '8') {
  72.                 cSqu8 = cPlayerIdentifier;
  73.             } else if (cNextChoice == '9' && cSqu9 == '9') {
  74.                 cSqu9 = cPlayerIdentifier;
  75.             } else {
  76.                 std::cout << "The entry was invalid, please try again." << std::endl;
  77.                 bValidChoice = false;
  78.             }
  79.         } while (!bValidChoice);
  80.  
  81.         bEndGame = false;
  82.         bool bWin = true;
  83.  
  84.         // Check Win Conditions
  85.         if (cSqu1 != '1') {
  86.             if (cSqu2 == cSqu1 && cSqu3 == cSqu1) {
  87.                 bEndGame = true;
  88.             } if (cSqu4 == cSqu1 && cSqu7 == cSqu1) {
  89.                 bEndGame = true;
  90.             }
  91.         }
  92.         if (cSqu5 != '5') {
  93.             if (cSqu1 == cSqu5 && cSqu9 == cSqu5) {
  94.                 bEndGame = true;
  95.             } if (cSqu2 == cSqu5 && cSqu8 == cSqu5) {
  96.                 bEndGame = true;
  97.             } if (cSqu4 == cSqu5 && cSqu6 == cSqu5) {
  98.                 bEndGame = true;
  99.             } if (cSqu3 == cSqu5 && cSqu7 == cSqu5) {
  100.                 bEndGame = true;
  101.             }
  102.         }
  103.         if (cSqu9 != '9') {
  104.             if (cSqu3 == cSqu9 && cSqu6 == cSqu9) {
  105.                 bEndGame = true;
  106.             } if (cSqu7 == cSqu9 && cSqu8 == cSqu9) {
  107.                 bEndGame = true;
  108.             }
  109.         }
  110.  
  111.         // Is game over(full board)? w/o a win
  112.         if (cSqu1 != '1' && cSqu2 != '2' && cSqu3 != '3' &&
  113.             cSqu4 != '4' && cSqu5 != '5' && cSqu6 != '6' &&
  114.             cSqu7 != '7' && cSqu8 != '8' && cSqu9 != '9' && !bEndGame) {
  115.             bEndGame = true;
  116.             bWin = false;
  117.         }
  118.  
  119.         if (bEndGame) {
  120.             std::cout << cSqu1 << "|" << cSqu2 << "|" << cSqu3 << std::endl;
  121.             std::cout << "-+-+-" << std::endl;
  122.             std::cout << cSqu4 << "|" << cSqu5 << "|" << cSqu6 << std::endl;
  123.             std::cout << "-+-+-" << std::endl;
  124.             std::cout << cSqu7 << "|" << cSqu8 << "|" << cSqu9 << std::endl;
  125.  
  126.             std::cout << "Game Over!" << std::endl;
  127.             std::cout << "Play again (y/n)?" << std::endl;
  128.             char cPlayAgain;
  129.             std::cin >> cPlayAgain;
  130.  
  131.             if (cPlayAgain == 'y') {
  132.                 bEndGame = false;
  133.                 // Clear the board
  134.                 cSqu1 = '1';
  135.                 cSqu2 = '2';
  136.                 cSqu3 = '3';
  137.                 cSqu4 = '4';
  138.                 cSqu5 = '5';
  139.                 cSqu6 = '6';
  140.                 cSqu7 = '7';
  141.                 cSqu8 = '8';
  142.                 cSqu9 = '9';
  143.             }
  144.             iPlayer = 1;
  145.         } else {
  146.             // Alternate player turns
  147.             if (iPlayer == 1) {
  148.                 iPlayer = 2;
  149.             } else {
  150.                 iPlayer = 1;
  151.             }
  152.         }
  153.  
  154.     } while (!bEndGame);
  155.  
  156.  
  157.     return 0;
  158. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top