Note that there are some explanatory texts on larger screens.

plurals
  1. POTic Tac Toe Program
    primarykey
    data
    text
    <p>I have to create a Tic Tac Toe program using C++. everything is correct however the main function I am having a problem with. It will not allow me to call any of the functions from the main function. It is also telling me board and boardsize are not use, and randint isn't declared in this scope. I have tried leaving the parentheses after the function name empty that does not work as well. I am lost now, here is my code:</p> <pre><code>/* Template for TicTacToe.cpp (CS-509 Assignment 5) Fill in the rest of this comment block. */ #include&lt;iostream&gt; using namespace std; /* Game status enumeration */ enum Status { WIN, DRAW, CONTINUE, QUIT }; /* Function prototypes */ // showBoard: Show current state of board void showBoard( const char board[], int boardSize ); // checkGameState: Returns WIN or CONTINUE Status checkGameState( const char board[] ); int getHumanSquare( const char board[] ); int getComputerSquare( const char board[] ); // checkBadSquare: Checks to see if a chosen square is already taken; returns // true if already taken; used by getHumanSquare and // getComputerSquare functions above. bool checkBadSquare( const char board[], int squareNum ); int getrandint( int min, int max ); int main() { char board[] = "123456789"; // 10 element char board const int boardSize = 10; Status gameState = CONTINUE; int gametype, squareChoice, turnNum = 0; char currentSymbol; // 'o' or 'x' cout &lt;&lt; "\n This is a Tic Tac Toe program. Choose the type of game: " &lt;&lt; "\n (1) human o vs. human x (2) human o vs. dumb computer x" &lt;&lt; "\n\n -&gt; "; cin &gt;&gt; gametype; /* Show the current state of Tic Tac Toe board. */ cout &lt;&lt; gameState; /* Main game loop */ while ( gameState == CONTINUE ) { /* Increment turnNum by 1. */ turnNum++; /* If turnNum equal to 10 Set gameState to DRAW. Break out of while loop. */ if ( turnNum = 10 ) { gameState = DRAW; break; } /* If we are on an odd-numbered turn Print "It's o's turn." Set currentSymbol to 'o'. Call getHumanSquare function to get squareChoice.*/ if ( turnNum%2 != 0) { cout &lt;&lt; "It's o's turn."; currentSymbol = 'o'; int getHumanSquare( ) { return board; } } /* Else (we are on an even-numbered turn) Print "It's x's turn." Set currentSymbol to 'x'. */ else { cout &lt;&lt; "It's x's turn."; currentSymbol = 'x'; } /* If the gametype is 1 (human vs. human) Call getHumanSquare function to get squareChoice.*/ if ( gametype == 1 ) { int getHumanSquare( int squareNum ) { return board; } } /* Else (gametype is 2 (human vs. computer)) Call getComputerSquare function to get squareChoice. */ else { int getComputerSquare( int squareNum ) { return board; } } /* If squareChoice is -1 (human player quit) Set gameState to QUIT.*/ if ( squareChoice == -1 ) { gameState = QUIT; } /* Else Insert currentSymbol into board at (squareChoice - 1). Show the current state of the Tic Tac Toe board. Call checkGameState function to determine the gameState. */ else { bool checkBadSquare( int squareNum ) { return board; } Status checkGameState(); } } // end while /* If gameState is WIN print "Player " currentSymbol " is the winner." */ if ( gameState == WIN) cout &lt;&lt; "Player " currentSymbol " is the winnter."; /* If gameState is DRAW print "It's a draw." */ if ( gameState == DRAW ) cout &lt;&lt; "It's a draw."; return 0; } ///////////////////////////////////////////////////////////////////// void showBoard( const char board [], int size ) { cout &lt;&lt; endl; for ( int i = 0; i &lt; size ; i++ ) { cout &lt;&lt; board[ i ] &lt;&lt; " "; if ( ( i + 1 ) % 3 == 0 ) cout &lt;&lt; endl; } cout &lt;&lt; endl; } ///////////////////////////////////////////////////////////////////// Status checkGameState( const char board[] ) { // Board Array // // 1 2 3 0 1 2 // 4 5 6 --&gt; 3 4 5 // 7 8 9 6 7 8 // // Diagonal winners if ( board[ 0 ] == board[ 4 ] &amp;&amp; board[ 0 ] == board[ 8 ] ) return WIN; else if ( board[ 2 ] == board[ 4 ] &amp;&amp; board[ 4 ] == board[ 6 ] ) return WIN; // Horizontal winners else if ( board[ 0 ] == board[ 1 ] &amp;&amp; board[ 1 ] == board[ 2 ] ) return WIN; else if ( board[ 3 ] == board[ 4 ] &amp;&amp; board[ 4 ] == board[ 5 ] ) return WIN; else if ( board[ 6 ] == board[ 7 ] &amp;&amp; board[ 7 ] == board[ 8 ] ) return WIN; // Vertical winners else if ( board[ 0 ] == board[ 3 ] &amp;&amp; board[ 3 ] == board[ 6 ] ) return WIN; else if ( board[ 1 ] == board[ 4 ] &amp;&amp; board[ 4 ] == board[ 7 ] ) return WIN; else if ( board[ 2 ] == board[ 5 ] &amp;&amp; board[ 5 ] == board[ 8 ] ) return WIN; else // No one has won yet return CONTINUE; } ///////////////////////////////////////////////////////////////////// int getHumanSquare( const char board[] ) { int squareNum; cout &lt;&lt; "\n Input the number of an empty square: (-1 to quit) "; cin &gt;&gt; squareNum; while ( checkBadSquare( board, squareNum ) == true ) { cout &lt;&lt; "\n Bad input. Choose another square: "; cin &gt;&gt; squareNum; } return squareNum; } ///////////////////////////////////////////////////////////////////// int getComputerSquare( const char board[] ) { int squareNum; squareNum = getrandint( 1, 9 ); while ( checkBadSquare( board, squareNum ) == true ) { squareNum = getrandint( 1, 9 ); } return squareNum; } ///////////////////////////////////////////////////////////////////// bool checkBadSquare( const char board[], int squareNum ) { int realSquareNum = squareNum - 1; // count from 0 if ( squareNum == -1 ) return false; // Let quit code pass as a valid square else if ( squareNum &gt; 9 ) return true; // Square numbers out of range are invalid else if ( board[ realSquareNum ] == 'o' || board[ realSquareNum ] == 'x' ) return true; // Already taken squares are invalid else return false; // Valid square number } ///////////////////////////////////////////////////////////////////// int getrandint( int min, int max ) { int scale, shift; scale = max - min + 1; shift = min; return randint() % scale + shift; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload