samedi 19 août 2017

A text based c++ game with a mystery in code error

Im trying to make a basic Tic Tac Toe game in c++. While this code does compile and run I keep getting this error code above the board game: 0x6fefec84. I'm very very new to c++. is this error a segfault? or is there some kind of UB that is going on in the code? any help would be greatly appreciated. Thanks!

 #include <iostream>


 using namespace std;



   char square[10] = {'0','1','2','3','4','5','6','7','8','9'};

   int checkwin();
   int board();


    int main() {


       int player = 1,i,choice;

        char mark;

         do {


         board();
         player=(player%2)?1:2;


        cout << "Player" << player << ", enter a number: ";
        cin >> choice;


        mark=(player == 1) ? 'X' : 'O';

        if (choice == 1 && square [1] == '1')


            square [1] = mark;
        else if (choice == 2 && square [2] == '2')

            square [2] = mark;
        else if(choice == 3 && square [3] == '3')

            square [3] = mark;
        else if(choice == 4 && square [4] == '4')

            square [4] = mark; 
        else if(choice == 5 && square [5] == '5') 

            square [5] = mark;
        else if(choice == 6 && square [6] == '6')

            square [6] = mark;
        else if(choice == 7 && square [7] == '7')

            square [7] = mark;
        else if(choice == 8 && square [8] == '8')

            square [8] = mark;
        else if(choice == 9 && square [9] == '9')


            square [9] = mark;

        else {

          cout << "Invalid move";

         player--;
         cin.ignore();
         cin.get();

       }
         i=checkwin();

         player++;
    }while(i==-1);

    board();
     if(i==1)



       cout<<"==>\aPlayer "<<--player<<" win ";

     else 

      cout<<"==>\aGame draw";


     cin.ignore();
     cin.get();
     return 0;

 }



   int checkwin() {


    if(square[1] == square[2] && square [2] == square[3])

                return 1;
         else if(square[4] == square[5] && square [5] == square[6])

                return 1;
         else if(square[7] == square[8] && square[8] == square[9])

                return 1;
         else if(square[1] == square[4] && square[4] == square[7])

                return 1;
         else if(square[2] == square[5] && square[5] == square[8])

                return 1;
         else if(square[3] == square[6] && square[6] == square[9])

                return 1;
         else if(square[1] == square[5] && square[5] == square[9])

                return 1;
         else if(square[3] == square[5] && square[5] == square[7])

               return 1;
         else if(square[1] != '1' && square[2] != '2' && square [3] != '3' && square [4] != '4' 
          && square[5] != '5' && square[6] != '6' && square[7] != '7' && square[8] != '8' && square [9] != '9')

          return 0;

       else 

          return -1;
   }


      int board() {


      cout << "\n\n\tTic Tac Toe\n\n";

      cout << "Player 1 (X)  - Player 2 (O)" << endl << endl<<
      cout << endl;

      cout << "     |   |   " << endl;
      cout << "  " << square[1] << " | " << square[2] << " | " << square[3] << endl;

      cout << "----|----|----" << endl;
      cout << "----|----|----" << endl;


      cout << "  " << square[4] << " | " << square[5] << " | " << square[6] << endl;


      cout << "----|----|----" << endl;
      cout << "----|----|----" << endl;


      cout << "  " << square[7] << " | " << square[8] << " | " << square[9] <<endl;

      cout << "     |   |   " << endl << endl;

    return 0;

}

Aucun commentaire:

Enregistrer un commentaire