Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. void main(void)
  6. {
  7.     int matrix[3][3]={0},
  8.     i, //לולאה ראשית
  9.     j, k, //תת לולאות לבדיקת המנציח
  10.     x, y, //מספר אקראי
  11.     won=1;
  12.     char X[2]="X", O[2]="O", E[2]="-",
  13.     c1, c2;//קליטת מקום
  14.  
  15.     srand(time(NULL));
  16.  
  17.     printf("Tic Tac toe game board : \n");
  18.     for(i=0; i<3; i++)
  19.     {
  20.         for(j=0; j<3; j++) printf("[%2d,%2d]", i, j);
  21.         printf("\n");
  22.     }
  23.     printf("\nYou're going to play as X : \n");
  24.  
  25.  
  26.     for(i=0; i<9, won; i++)
  27.     {
  28.         srand(time(NULL));
  29.  
  30.         printf("Please choose your X location : ");
  31.  
  32.         _flushall();
  33.         c1=getche();
  34.         printf(",");
  35.         _flushall();
  36.         c2=getche();
  37.  
  38.         while(matrix[c1-'0'][c2-'0'] == 1 || matrix[c1-'0'][c2-'0'] == 2)//לבדוק אם המקום פנוי
  39.         {
  40.             printf("\nError, full place\n");
  41.             _flushall();
  42.             printf("Please choose your X location : ");
  43.             c1=getche();
  44.             printf(",");
  45.             _flushall();
  46.             c2=getche();
  47.         }
  48.  
  49.         matrix[c1-'0'][c2-'0'] = 1;//ערך X
  50.  
  51.         printf("\n");
  52.  
  53.         for(k=0; k<3; k++)
  54.         {
  55.             for(j=0; j<3; j++)
  56.             {
  57.                 switch(matrix[k][j])
  58.                 {
  59.                     case 0: printf("%s", E); break;
  60.                     case 1: printf("%s", X); break;
  61.                     case 2: printf("%s", O); break;
  62.                 }
  63.             }
  64.             printf("\n");
  65.         }
  66.         /*won by columns*/
  67.         for(k=0; k<3; k++)
  68.         {
  69.             for(j=0; j<1; j++)
  70.                 if(matrix[j][k] == 1 && matrix[j+1][k] == 1 && matrix[j+2][k] == 1) won = 0;
  71.         }
  72.         if(!won) { printf("Column : X won\n"); break; }
  73.         /*won by rows*/
  74.         for(k=0; k<3; k++)
  75.         {
  76.             for(j=0; j<1; j++)
  77.                 if(matrix[k][j] == 1 && matrix[k][j+1] == 1 && matrix[k][j+2] == 1) won = 0;
  78.         }
  79.         if(!won) { printf("Row : X won\n"); break; }
  80.         /*won by left linear*/
  81.         for(k=0; k<1; k++)
  82.         {
  83.             if(matrix[k][k] == 1 && matrix[k+1][k+1] == 1 && matrix[k+2][k+2] == 1) won = 0;
  84.         }
  85.         if(!won) { printf("Left Linear : X won\n"); break; }
  86.         /*won by right linear*/
  87.         for(k=0; k<1; k++)
  88.         {
  89.             if(matrix[k+2][k] == 1 && matrix[k+1][k+1] == 1 && matrix[k][k+2] == 1) won = 0;
  90.         }
  91.         if(!won) { printf("Right Linear : X won\n"); break; }
  92.  
  93.         printf("Your enemy is playing..\n");
  94.  
  95.         x = rand()%3;
  96.         y = rand()%3;
  97.         while(matrix[x][y] > 0)
  98.         {
  99.             x = rand()%3;
  100.             y = rand()%3;
  101.         }
  102.         printf("Enemy location : %d,%d\n", x, y);
  103.         matrix[x][y]=2;
  104.  
  105.         for(k=0; k<3; k++)
  106.         {
  107.             for(j=0; j<3; j++)
  108.             {
  109.                 switch(matrix[k][j])
  110.                 {
  111.                     case 0: printf("%s", E); break;
  112.                     case 1: printf("%s", X); break;
  113.                     case 2: printf("%s", O); break;
  114.                 }
  115.             }
  116.             printf("\n");
  117.         }
  118.  
  119.         /*won by columns*/
  120.         for(k=0; k<3; k++)
  121.         {
  122.             for(j=0; j<1; j++)
  123.                 if(matrix[j][k] == 2 && matrix[j+1][k] == 2 && matrix[j+2][k] == 2) won = 0;
  124.         }
  125.         if(!won) { printf("Column : Y won\n"); break; }
  126.         /*won by rows*/
  127.         for(k=0; k<3; k++)
  128.         {
  129.             for(j=0; j<1; j++)
  130.                 if(matrix[k][j] == 2 && matrix[k][j+1] == 2 && matrix[k][j+2] == 2) won = 0;
  131.         }
  132.         if(!won) { printf("Row : Y won\n"); break; }
  133.         /*won by left linear*/
  134.         for(k=0; k<1; k++)
  135.         {
  136.             if(matrix[k][k] == 2 && matrix[k+1][k+1] == 2 && matrix[k+2][k+2] == 2) won = 0;
  137.         }
  138.         if(!won) { printf("Left Linear : Y won\n"); break; }
  139.         /*won by right linear*/
  140.         for(k=0; k<1; k++)
  141.         {
  142.             if(matrix[k+2][k] == 2 && matrix[k+1][k+1] == 2 && matrix[k][k+2] == 2) won = 0;
  143.         }
  144.         if(!won) { printf("Right Linear : Y won\n"); break; }
  145.     }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement