Go Premium for a chance to win a PS4. Enter to Win

x
Solved

# TIC TAC TOE

Posted on 1998-04-19
Medium Priority
535 Views
I have a program that involves the design of a tic tac toe game. How do you use a random generator to make the computer respond to the players move?
0
Question by:TOA
• 3
• 3

LVL 10

Accepted Solution

RONSLOW earned 200 total points
ID: 1250037
Assuming that the players move is a number from 1..N (say 1..9 for tic-tac-toe) then you use
int move = int(N*rand()/double(RAND_MAX+1)+1);
rand() returns an int 0 .. RAND_MAX -- the multiplication and division gives you 0..N-1, then add 1 to get 1..N

0

Expert Comment

ID: 1250038
Assume that the user/player enter a move (1 - N) for the tic-tac-toe game.
declare  a few varibles and constant:

#define FALSE 0
#define TRUE 1

int userMove[9], comMove[9], success, index;
/*for the user move and the position of the computer and success is for checking if the ramdom is same as the user move*/

do
{
comMove[index] = random (N) + 1;
/*a for loop should be run here to check all the user move against the     com mover */
if (comMove[index] != UserMove[index])
success = TRUE;
else
success = FALSE;

}while (success == FALSE);

the code above is for the first move if you will like to use it for the next few move than use this as a function and molified the if statement to run a loop to check all the user moves.

0

Expert Comment

ID: 1250039
Assume that the user/player enter a move (1 - N) for the tic-tac-toe game.
declare  a few varibles and constant:

#define FALSE 0
#define TRUE 1

int userMove[9], comMove[9], success, index;
/*for the user move and the position of the computer and success is for checking if the ramdom is same as the user move*/

do
{
comMove[index] = random (N) + 1;
/*a for loop should be run here to check all the user move against the     com mover */
if (comMove[index] != UserMove[index])
success = TRUE;
else
success = FALSE;

}while (success == FALSE);

the code above is for the first move if you will like to use it for the next few move than use this as a function and molified the if statement to run a loop to check all the user moves.

0

Expert Comment

ID: 1250040
Assume that the user/player enter a move (1 - N) for the tic-tac-toe game.
declare  a few varibles and constant:

#define FALSE 0
#define TRUE 1

int userMove[9], comMove[9], success, index;
/*for the user move and the position of the computer and success is for checking if the ramdom is same as the user move*/

do
{
comMove[index] = random (N) + 1;
/*a for loop should be run here to check all the user move against the     com mover */
if (comMove[index] != UserMove[index])
success = TRUE;
else
success = FALSE;

}while (success == FALSE);

the code above is for the first move if you will like to use it for the next few move than use this as a function and molified the if statement to run a loop to check all the user moves.

0

LVL 10

Expert Comment

ID: 1250041

* random(N) is not standard C and so may well be missing in some implementations.

* the code
if (comMove[index] != UserMove[index])
success = TRUE;
else
success = FALSE;
is not really good.  better is
success = comMove[index] != userMove[index];

* similaraly
} while (success == FALSE);
would be better as
) while (! success)

* and the whole logic is flawed anyway.

char board[9], move[9];
int i;
int userturn =1 ;
char userpiece='o';
char comppiece='x';
for (i=0;i<9;i++) board[i] = ' '; /* no o or x */
for (i=0;i<9;i++) move[i] = -1; /* no move */
for (i=0;i<9;i++) {
int which;
char piece;
if (i%2 == userturn) {
piece = userpiece;
/*
*/
} else {
do {
which = int(9*rand()/double(RAND_MAX+1)+1);
} while (board[i] != ' ');
}
move[i] = which;
board[i] = piece;
if (i > 4) {
/*
check for win
*/
}
}

0

LVL 10

Expert Comment

ID: 1250042
BTW change
which = int(9*rand()/double(RAND_MAX+1)+1);
into
which = int(9*rand()/double(RAND_MAX+1));
as in the code above, move numbers are 0..8 rather than 1..9

0

Author Comment

ID: 1250043
I'm sorry guys but I finished the whole program two days ago.

0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn hoâ€¦
Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address.Â This address might be address of another variable/address of devices/address of fuâ€¦
The goal of this video is to provide viewers with basic examples to understand and use pointers in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use nested-loops in the C programming language.
###### Suggested Courses
Course of the Month8 days, 17 hours left to enroll