Advertisement
Guest User

TicTacToe

a guest
Feb 19th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* nicht gleiche feld setzen
  5. gewonnen dirkt anzeigen
  6. wie das spiel beendet  gewonnen oder zuende
  7.  
  8.  
  9. neu gleiche spiel nur mit direkt eingabe zum beispiel a1 a3 b2
  10. */
  11.  
  12. char feld[3][3];            // Airways erstellt
  13. int pos1=0;
  14. int pos2=0;
  15. int counter=0;              // zähler für speilzuge
  16. const int x = 1, y = 2;
  17.   int random;
  18.  
  19.  
  20.  
  21. int dreier(){               // funktion drei in einer reihe spieler o und x
  22. if(feld[0][0]=='o'){
  23.   if(feld[1][0]=='o'){
  24.    if(feld[2][0]=='o'){
  25.    return 2;
  26. }
  27. }
  28. }
  29. if(feld[0][1]=='o'){
  30.   if(feld[1][1]=='o'){
  31.    if(feld[2][1]=='o'){
  32.     return 2;
  33. }
  34. }
  35. }
  36. if(feld[0][2]=='o'){
  37.   if(feld[1][2]=='o'){
  38.    if(feld[2][2]=='o'){
  39.     return 2;
  40. }
  41. }
  42. }
  43. if(feld[0][0]=='o'){
  44.   if(feld[0][1]=='o'){
  45.    if(feld[0][2]=='o'){
  46.    return 2;
  47. }
  48. }
  49. }
  50. if(feld[1][0]=='o'){
  51.   if(feld[1][1]=='o'){
  52.    if(feld[1][2]=='o'){
  53.     return 2;
  54. }
  55. }
  56. }
  57. if(feld[2][0]=='o'){
  58.   if(feld[2][1]=='o'){
  59.    if(feld[2][2]=='o'){
  60.     return 2;
  61. }
  62. }
  63. }
  64. if(feld[0][0]=='o'){
  65.   if(feld[1][1]=='o'){
  66.    if(feld[2][2]=='o'){
  67.     return 2;
  68. }
  69. }
  70. }
  71. if(feld[0][2]=='o'){
  72.   if(feld[1][1]=='o'){
  73.    if(feld[2][0]=='o'){
  74.     return 1;
  75. }
  76. }
  77. }
  78. if(feld[0][0]=='x'){
  79.   if(feld[1][0]=='x'){
  80.    if(feld[2][0]=='x'){
  81.    return 1;
  82. }
  83. }
  84. }
  85. if(feld[0][1]=='x'){
  86.   if(feld[1][1]=='x'){
  87.    if(feld[2][1]=='x'){
  88.     return 1;
  89. }
  90. }
  91. }
  92. if(feld[0][2]=='x'){
  93.   if(feld[1][2]=='x'){
  94.    if(feld[2][2]=='x'){
  95.     return 1;
  96. }
  97. }
  98. }
  99. if(feld[0][0]=='x'){
  100.   if(feld[0][1]=='x'){
  101.    if(feld[0][2]=='x'){
  102.    return 1;
  103. }
  104. }
  105. }
  106. if(feld[1][0]=='x'){
  107.   if(feld[1][1]=='x'){
  108.    if(feld[1][2]=='x'){
  109.     return 1;
  110. }
  111. }
  112. }
  113. if(feld[2][0]=='x'){
  114.   if(feld[2][1]=='x'){
  115.    if(feld[2][2]=='x'){
  116.     return 1;
  117. }
  118. }
  119. }
  120. if(feld[0][0]=='x'){
  121.   if(feld[1][1]=='x'){
  122.    if(feld[2][2]=='x'){
  123.     return 1;
  124. }
  125. }
  126. }
  127. if(feld[0][2]=='x'){
  128.   if(feld[1][1]=='x'){
  129.    if(feld[2][0]=='x'){
  130.     return 1;
  131. }
  132. }
  133. }
  134.  
  135. return 0;
  136. }
  137.  
  138.  
  139. int main()                                  // hauptprogramm
  140. {
  141. srand (time (NULL));
  142. random = (rand () % ((y + 1) - x)) + x;
  143.  
  144. for(int x=0;x<3;x++){                       // for schleife zum erstellen des feldes
  145.     for(int i=0;i<3;i++){
  146.     feld[i][x]='-';
  147.     }
  148. }
  149.  
  150. for(int x=0;x<3;x++){                       // ausgabe des feldes
  151.  
  152.     for(int i=0;i<3;i++){
  153.     printf("%c",feld[i][x]);
  154.     }
  155.     printf("\n");
  156. }
  157.  
  158. do{                                         // do while schleife für maximal anzahl der züge
  159. //---------------------------------------------------Spieler 1
  160.     if(random==1){
  161.  
  162.     do{
  163.         do{                                             // do while für richtigkeit der X position
  164.             printf(" SP1 Bitte geben sie x ein\n");
  165.             scanf("%i", &pos1);
  166.             printf("Sie haben eingegeben:\n");
  167.             printf("%i\n",pos1);
  168.         }while(pos1>3);
  169.         printf("Gut gemacht\n");
  170.         do{                                             // do while für richtigkeit der y position
  171.             printf("Bitte geben sie y ein\n");
  172.             scanf("%i", &pos2);
  173.             printf("Sie haben eingegeben:\n");
  174.             printf("%i\n",pos2);
  175.         }while(pos2>3);
  176.     }while(feld[pos1-1][pos2-1]!='-');
  177.     printf("Gut gemacht\n");
  178.     counter++;                                      // zähler für spielrunde
  179.     feld[pos1-1][pos2-1]='o';                       //neues feld erstellen
  180.     for(int x=0;x<3;x++){
  181.         for(int i=0;i<3;i++){
  182.         printf("%c",feld[i][x]);                    // ausgabe feld
  183.     }
  184.     printf("\n");
  185.     }
  186.     random=2;
  187.     }
  188.  
  189.     if(dreier()==2){
  190.        printf("Spieler 1 hat gewonnen\n");
  191.        return 1;
  192.     }
  193. //---------------------------------------------------Spieler 2
  194.     if(random==2){
  195.     do{
  196.         do{                                             // Spieler zwei
  197.             printf(" SP2 Bitte geben sie x ein\n");
  198.             scanf("%i", &pos1);
  199.             printf("Sie haben eingegeben:\n");
  200.             printf("%i\n",pos1);
  201.         }while(pos1>3);
  202.         printf("Gut gemacht\n");
  203.         do{
  204.             printf("Bitte geben sie y ein\n");
  205.             scanf("%i", &pos2);
  206.             printf("Sie haben eingegeben:\n");
  207.             printf("%i\n",pos2);
  208.         }while(pos2>3);
  209.     }while(feld[pos1-1][pos2-1]!='-');
  210.     printf("Gut gemacht\n");
  211.     counter++;
  212.     feld[pos1-1][pos2-1]='x';
  213.     for(int x=0;x<3;x++){
  214.         for(int i=0;i<3;i++){
  215.         printf("%c",feld[i][x]);
  216.     }
  217.     printf("\n");
  218.     }
  219.     random=1;
  220.     }
  221.     if(dreier()==1){
  222.        printf("Spieler 2 hat gewonnen\n");
  223.        return 1;
  224.     }
  225. }while(counter<9);                 // spiel beendung  max züge oder dreier
  226.  
  227.  
  228.  
  229. printf("das spiel hat keiner gewonnen \n");
  230.  
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement