Public Group

#### Archived

This topic is now archived and is closed to further replies.

# what does this all mean ???

This topic is 5490 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I ask some people while back about a ttt code to check to see if a space has been taking, this is what they suggested:
if ((turn==1)&&(board[0]!=''X'')&&(board[0]!=''O'')){board[0]=''X''; break;}
else ((board[0]!=''X'')&&(board[0]!=''O''));{board[0]=''O''; continue;}

The thing is I barely know what any of that means. Can someone point to me where I can learn about this or give me a brief explanations. Thanks
(friend) WHAT!!!!..... Are you crazy??? (me) Yes I am.

##### Share on other sites
if ((turn==1)&&(board[0]!=''X'')&&(board[0]!=''O'')){board[0]=''X''; break;}

This line is saying

IF turn is = 1
and board[0] is not = to ''X''
and board[0] is not = to ''0''
THEN
set board[0]=''X''
and then break;

Break means jump out of any loop that the code is in. For example:

for(int x=0; x<100; x++){
if(x==50)
break;
}

this will loop up to 50 and then it will jump out of the loop because of the break statement.

then the line:
else ((board[0]!=''X'')&&(board[0]!=''O''));{board[0]=''O''; continue;}

this says:
If the first if wasn''t true THEN
IF board[0] not = ''X''
AND board[0] not = ''0''
THEN
board[0]=O;
continue in the loop;

I hope this helps.
~Wave

##### Share on other sites
Yes it does... so && is and, ! is not. Can i only use break in switch statements or in any loop. Also when I run the code it sets the spot where the first player chooses to an ''0'' and not an ''X'', and if a space is an ''X'' and the first player chooses the same place it turns into an ''O'' I don''t know why. The other thing is how can I print to the screen to tell the player to choose a different spot when in the switch statements. Here is my whole ttt code:

#include <stdio.h>#include <windows.h>int turn, move;char name1[25], name2[25];char board [9]; // The tic-tac-toe Boardvoid DrawBoard();void DrawBoard() //* Draws the board *//{printf("\n\n");printf(" %c | %c | %c \n", board[0], board[1], board[2]);printf(" --------- \n");printf(" %c | %c | %c \n", board[3], board[4], board[5]);printf(" --------- \n");printf(" %c | %c | %c \n", board[6], board[7], board[8]);printf("\n\n");}void CheckSpace(); void CheckSpace() // Checks for double use of space{}int main(){BOOL StillPlaying=TRUE;int move=0;int turn=1;printf("Welcome to tic-tac-toe!!!\n\n");//players namesprintf("What is the first player''s name: ");		scanf("%s", name1);printf("\nWhat is the second player''s name: ");	scanf("%s", name2);	while (StillPlaying)	{		DrawBoard();	if (turn == 1){		printf("It is %s turn!\n", name1);		scanf("%d", &move);		turn=2;		printf("\n");		}	else{		printf("It is %s turn!\n", name2);		scanf("%d", &move);		turn=1;		printf("\n");	} switch(move)	{				case 1: if ((turn==1)&&(board[0]!=''X'')&&(board[0]!=''O'')){board[0]=''X''; break;}				else ((board[0]!=''X'')&&(board[0]!=''O''));{board[0]=''O''; continue;}		case 2: if ((turn==1)&&(board[1]!=''X'')&&(board[1]!=''O'')){board[1]=''X''; break;}				else ((board[1]!=''X'')&&(board[1]!=''O''));{board[1]=''O''; continue;}		case 3: if ((turn==1)&&(board[2]!=''X'')&&(board[2]!=''O'')){board[2]=''X''; break;}				else ((board[2]!=''X'')&&(board[2]!=''O''));{board[2]=''O''; continue;}		case 4: if ((turn==1)&&(board[3]!=''X'')&&(board[3]!=''O'')){board[3]=''X''; break;}				else ((board[3]!=''X'')&&(board[3]!=''O''));{board[3]=''O''; continue;}		case 5: if ((turn==1)&&(board[4]!=''X'')&&(board[4]!=''O'')){board[4]=''X''; break;}				else ((board[4]!=''X'')&&(board[4]!=''O''));{board[4]=''O''; continue;}		case 6: if ((turn==1)&&(board[5]!=''X'')&&(board[5]!=''O'')){board[5]=''X''; break;}				else ((board[5]!=''X'')&&(board[5]!=''O''));{board[5]=''O''; continue;}		case 7: if ((turn==1)&&(board[6]!=''X'')&&(board[6]!=''O'')){board[6]=''X''; break;}				else ((board[6]!=''X'')&&(board[6]!=''O''));{board[6]=''O''; continue;}		case 8: if ((turn==1)&&(board[7]!=''X'')&&(board[7]!=''O'')){board[7]=''X''; break;}				else ((board[7]!=''X'')&&(board[7]!=''O''));{board[7]=''O''; continue;}		case 9: if ((turn==1)&&(board[8]!=''X'')&&(board[8]!=''O'')){board[8]=''X''; break;}				else ((board[8]!=''X'')&&(board[8]!=''O''));{board[8]=''O''; continue;}		case 10: StillPlaying = FALSE;				 {printf("Leaving so soon?\n"); break;}		default: 	  			{printf("Choose a number not a letter"); break;}	} // switch(move)					}//While Winnerreturn 0;	}// int main()

Thanks

(friend) WHAT!!!!..... Are you crazy???
(me) Yes I am.

##### Share on other sites
You can use 'break' to break from any loop.

Since your using C you would print to the screen like this ...

printf("Choose a different spot");

[edited by - Tiffany Smith on July 7, 2003 10:30:46 PM]

##### Share on other sites
Hmm I tried the code and still no luck. Wouldn''t it go to the first statement and bypass the printf if the first one is true.

##### Share on other sites
ugh don''t code a switch if you don''t need it.

and if you do, use ''1'', ''2''... etc otherwise it''ll never work.

char PlayerToken[2] = {''O'', ''X''};scanf("%i",&move);if (Board[move-1] == 0) Board[move-1] = PlayerToken[turn-1];

##### Share on other sites
Ohh my gosh im such a twit sometimes ...
forget what i said before ...

The reason the 'O' s are replacing the 'X's could be because your 'else' statements are wrong ...
you need to remove the semi colons from the end of all the 'else' lines and make them into 'else if's'.
like this ...

else ((board[0]!='X')&&(board[0]!='O'));
{
board[0]='O';
continue;
}

should be ...

else if ((board[0]!='X')&&(board[0]!='O'))
{
board[0]='O';
continue;
}

Hope that helps.

[edited by - Tiffany Smith on July 7, 2003 10:50:42 PM]

##### Share on other sites
I don't know if this will help or not - but it might

De Morgans laws1.  !(a && b) == (!a || !b)2.  !(a || b) == (!a && !b)To not a logical expression, not both terms and change the logical operator. Apply this rule recursively as needed.

[edited by - lessbread on July 8, 2003 4:13:35 AM]

##### Share on other sites
Hey librab103, i took the liberty of making a few modifications to make it a little more readble.

#include <stdio.h>#include <windows.h>int turn, move;char name1[25], name2[25];char board [9]; // The tic-tac-toe Boardvoid DrawBoard() // Draws the board 	{		printf("\n\n");		printf(" %c | %c | %c \n", board[0], board[1], board[2]);		printf(" --------- \n");		printf(" %c | %c | %c \n", board[3], board[4], board[5]);		printf(" --------- \n");		printf(" %c | %c | %c \n", board[6], board[7], board[8]);		printf("\n\n");	}int main(){BOOL StillPlaying=TRUE;int move=0;int turn=1;printf("Welcome to tic-tac-toe!!!\n\n");printf("What is the first player's name: ");		scanf("%s", name1);printf("\nWhat is the second player's name: ");	scanf("%s", name2);	while (StillPlaying)	{		DrawBoard();	scanf("%d", &move);	 if( move < 1 || move > 9 )		printf("please choose a number from 1-9 only\n");	else	{		if (turn == 1)		{			printf("It is %s's turn!\n", name1);			printf("\n");			if( (board[move-1]!='X')&&(board[move-1]!='O') )			{				board[move-1]='X';				turn=2;			}			else 				printf("invalid move\n");		}		else		{			printf("It is %s's turn!\n", name2);			printf("\n");			if( (board[move-1]!='X')&&(board[move-1]!='O') )			{				board[move-1]='O';				turn=1;			}			else				printf("invalid move\n");			}			}}//While Winnerreturn 0;}// int main()

[edited by - Tiffany Smith on July 8, 2003 9:26:32 PM]

##### Share on other sites
ahhhh... thats alot of idents.... I will take that info and update my code. Thanks

[edited by - librab103 on July 8, 2003 8:54:00 PM]

1. 1
Rutin
26
2. 2
3. 3
JoeJ
20
4. 4
5. 5

• 10
• 9
• 9
• 46
• 41
• ### Forum Statistics

• Total Topics
631751
• Total Posts
3002076
×