Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //gameOX.c
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- #include<unistd.h>
- int oxpoint(int p[9]);
- void oxapp(int b[9]);
- int judge(int x[9]);
- int main(void){
- int box[9]={1,2,3,4,5,6,7,8,9};
- int n, i, j, k=1;
- printf("Let's Play OX Game!\n");
- printf("Your piece is O.\n\n");
- oxapp(box);
- for(i=0; i<9; i++){
- box[i]=0;
- }
- printf("\n\n");
- while(k){
- scanf("%d", &n);
- if(n<1 && n>9){
- break;
- }else{
- box[n-1]= -1;
- oxapp(box);
- printf("\033[5A");
- j=judge(box);
- if(j==0){
- sleep(1);
- i=oxpoint(box);
- if(i==120){
- k=0;
- break;
- }else{
- box[i]= -2;
- oxapp(box);
- printf("\033[6A");
- j=judge(box);
- if(j== -2){
- printf("\n\n\n\n\n\n\nYou Lost.\n");
- k=0;
- break;
- }
- }
- }else if(j== -1){
- sleep(1);
- printf("\n\n\n\n\n\nYou Win!!\n");
- k=0;
- break;
- }else if(j== -2){
- sleep(1);
- printf("\n\n\n\n\n\nYou Lost.\n");
- k=0;
- break;
- }
- }
- }
- return 0;
- }
- int oxpoint(int p[9]){
- int a, b=0, c[8];
- srand(time(NULL));
- rand(); rand(); rand(); rand();
- for(a=0; a<9; a++){
- if(p[a]==0){
- c[b]=a;
- b++;
- }
- }
- if(b==0){
- printf("\n\n\n\n\n\nDraw...\n");
- return 120;
- }else{
- return c[rand()%b];
- }
- }
- void oxapp(int b[9]){
- int m;
- for(m=0; m<9; m++){
- switch(m){
- case 0:
- case 3:
- case 6:
- if(b[m]==0){
- printf(" |");
- break;
- }else if(b[m]== -1){
- printf("O |");
- break;
- }else if(b[m]== -2){
- printf("X |");
- break;
- }else{
- printf("%d |", b[m]);
- break;
- }
- case 1:
- case 4:
- case 7:
- if(b[m]==0){
- printf(" |");
- break;
- }else if(b[m]== -1){
- printf(" O |");
- break;
- }else if(b[m]== -2){
- printf(" X |");
- break;
- }else{
- printf(" %d |", b[m]);
- break;
- }
- case 2:
- case 5:
- if(b[m]==0){
- printf(" \n---------\n");
- break;
- }else if(b[m]== -1){
- printf(" O\n---------\n");
- break;
- }else if(b[m]== -2){
- printf(" X\n---------\n");
- break;
- }else{
- printf(" %d\n---------\n", b[m]);
- break;
- }
- case 8:
- if(b[m]==0){
- printf(" \n");
- break;
- }else if(b[m]== -1){
- printf(" O\n");
- break;
- }else if(b[m]== -2){
- printf(" X\n");
- break;
- }else{
- printf(" %d\n", b[m]);
- break;
- }
- }
- }
- }
- int judge(int x[9]){
- int a;
- for(a=-1; a>-3; a--){
- if(x[0]==a && x[1]==a && x[2]==a){
- return a;
- }else if(x[3]==a && x[4]==a && x[5]==a){
- return a;
- }else if(x[6]==a && x[7]==a && x[8]==a){
- return a;
- }else if(x[0]==a && x[3]==a && x[6]==a){
- return a;
- }else if(x[1]==a && x[4]==a && x[7]==a){
- return a;
- }else if(x[2]==a && x[5]==a && x[8]==a){
- return a;
- }else if(x[0]==a && x[4]==a && x[8]==a){
- return a;
- }else if(x[2]==a && x[4]==a && x[6]==a){
- return a;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement