Advertisement
Guest User

Untitled

a guest
Aug 20th, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. //gameOX.c
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5. #include<unistd.h>
  6.  
  7. int oxpoint(int p[9]);
  8. void oxapp(int b[9]);
  9. int judge(int x[9]);
  10.  
  11. int main(void){
  12. int box[9]={1,2,3,4,5,6,7,8,9};
  13. int n, i, j, k=1;
  14.  
  15. printf("Let's Play OX Game!\n");
  16. printf("Your piece is O.\n\n");
  17.  
  18. oxapp(box);
  19. for(i=0; i<9; i++){
  20. box[i]=0;
  21. }
  22. printf("\n\n");
  23.  
  24. while(k){
  25. scanf("%d", &n);
  26. if(n<1 && n>9){
  27. break;
  28. }else{
  29. box[n-1]= -1;
  30. oxapp(box);
  31. printf("\033[5A");
  32.  
  33. j=judge(box);
  34.  
  35. if(j==0){
  36. sleep(1);
  37. i=oxpoint(box);
  38. if(i==120){
  39. k=0;
  40. break;
  41. }else{
  42. box[i]= -2;
  43. oxapp(box);
  44. printf("\033[6A");
  45.  
  46. j=judge(box);
  47. if(j== -2){
  48. printf("\n\n\n\n\n\n\nYou Lost.\n");
  49. k=0;
  50. break;
  51. }
  52. }
  53. }else if(j== -1){
  54. sleep(1);
  55. printf("\n\n\n\n\n\nYou Win!!\n");
  56. k=0;
  57. break;
  58. }else if(j== -2){
  59. sleep(1);
  60. printf("\n\n\n\n\n\nYou Lost.\n");
  61. k=0;
  62. break;
  63. }
  64. }
  65. }
  66. return 0;
  67. }
  68.  
  69. int oxpoint(int p[9]){
  70. int a, b=0, c[8];
  71. srand(time(NULL));
  72. rand(); rand(); rand(); rand();
  73.  
  74. for(a=0; a<9; a++){
  75. if(p[a]==0){
  76. c[b]=a;
  77. b++;
  78. }
  79. }
  80. if(b==0){
  81. printf("\n\n\n\n\n\nDraw...\n");
  82. return 120;
  83. }else{
  84. return c[rand()%b];
  85. }
  86. }
  87. void oxapp(int b[9]){
  88. int m;
  89. for(m=0; m<9; m++){
  90. switch(m){
  91. case 0:
  92. case 3:
  93. case 6:
  94. if(b[m]==0){
  95. printf(" |");
  96. break;
  97. }else if(b[m]== -1){
  98. printf("O |");
  99. break;
  100. }else if(b[m]== -2){
  101. printf("X |");
  102. break;
  103. }else{
  104. printf("%d |", b[m]);
  105. break;
  106. }
  107. case 1:
  108. case 4:
  109. case 7:
  110. if(b[m]==0){
  111. printf(" |");
  112. break;
  113. }else if(b[m]== -1){
  114. printf(" O |");
  115. break;
  116. }else if(b[m]== -2){
  117. printf(" X |");
  118. break;
  119. }else{
  120. printf(" %d |", b[m]);
  121. break;
  122. }
  123. case 2:
  124. case 5:
  125. if(b[m]==0){
  126. printf(" \n---------\n");
  127. break;
  128. }else if(b[m]== -1){
  129. printf(" O\n---------\n");
  130. break;
  131. }else if(b[m]== -2){
  132. printf(" X\n---------\n");
  133. break;
  134. }else{
  135. printf(" %d\n---------\n", b[m]);
  136. break;
  137. }
  138. case 8:
  139. if(b[m]==0){
  140. printf(" \n");
  141. break;
  142. }else if(b[m]== -1){
  143. printf(" O\n");
  144. break;
  145. }else if(b[m]== -2){
  146. printf(" X\n");
  147. break;
  148. }else{
  149. printf(" %d\n", b[m]);
  150. break;
  151. }
  152. }
  153. }
  154. }
  155.  
  156. int judge(int x[9]){
  157. int a;
  158.  
  159. for(a=-1; a>-3; a--){
  160. if(x[0]==a && x[1]==a && x[2]==a){
  161. return a;
  162. }else if(x[3]==a && x[4]==a && x[5]==a){
  163. return a;
  164. }else if(x[6]==a && x[7]==a && x[8]==a){
  165. return a;
  166. }else if(x[0]==a && x[3]==a && x[6]==a){
  167. return a;
  168. }else if(x[1]==a && x[4]==a && x[7]==a){
  169. return a;
  170. }else if(x[2]==a && x[5]==a && x[8]==a){
  171. return a;
  172. }else if(x[0]==a && x[4]==a && x[8]==a){
  173. return a;
  174. }else if(x[2]==a && x[4]==a && x[6]==a){
  175. return a;
  176. }
  177. }
  178. return 0;
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement