Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.c
- // 3x3 OOXX
- //
- // Created by eddie on 2014/11/26.
- // Copyright (c) 2014年 eddie. All rights reserved.
- //
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <string.h>
- int main(int argc, const char * argv[]) {
- int x,y,com;
- char ox[9]={"*********"};
- void OOXX(char*);
- void checkWinner(char*);
- char *tmp;
- int index;
- srand((unsigned)time(NULL));
- while (1) {
- com = (rand() % 9);
- OOXX(ox); //印出井字
- scanf("%d,%d",&x,&y); //玩家
- x= (x==0)? x+y : x * 3 + y ;
- while ( ox[x] != '*' ){ //玩家重複
- printf("重複\n");
- OOXX(ox); //印出井字
- scanf("%d,%d",&x,&y); //再次輸入
- x= (x==0)? x+y : x * 3 + y ;
- }
- ox[x] = 'X';
- tmp = strchr(ox, '*'); //最後一步判斷
- index = (int)(tmp-ox);
- if (index < 0){
- OOXX(ox);
- checkWinner(ox);
- return 0;
- }
- while ( ox[com] == 'X' || ox[com] == 'O') //電腦
- com = (rand() % 9);
- ox[com] ='O';
- checkWinner(ox);
- }
- return 0;
- }
- void OOXX(char * ox){
- int i;
- for (i=0; i<=8; i++) { //輸出井字
- printf("%c",ox[i]);
- if (i % 3 ==2 )
- printf("\n");
- }
- }
- void checkWinner(char * ox){
- int check;
- for (check=0; check<=2; check++) { //判斷
- if (ox[ check*3 % 9 ] == 'X' && ox[ (check*3+1) % 9 ] == 'X' && ox[ (check*3+2) % 9 ] == 'X' ) //橫列
- printf("You Win\n");
- else if (ox[ check*3 % 9 ] == 'O' && ox[ (check*3+1) % 9 ] == 'O' && ox[ (check*3+2) % 9 ] == 'O' )
- printf("You Lose\n");
- if (ox[ check ] == 'X' && ox[ check + 3 ] == 'X' && ox [ check+6 ] == 'X' ) //直條
- printf("You Win\n");
- else if (ox[ check ] == 'O' && ox[ check + 3 ] == 'O' && ox [ check+6 ] == 'O' )
- printf("You Lose\n");
- }
- if ( ox[0] =='X' && ox[4] == 'X' && ox[8] == 'X' ) //兩斜邊
- printf("You Win\n");
- if ( ox[0] =='O' && ox[4] == 'O' && ox[8] == 'O' )
- printf("You Lose\n");
- if ( ox[2] =='X' && ox[4] == 'X' && ox[6] == 'X' )
- printf("You Win\n");
- if ( ox[2] =='O' && ox[4] == 'O' && ox[6] == 'O' )
- printf("You Lose\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement