Guest User

Untitled

a guest
Nov 16th, 2020
69
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. /*WARNUNGEN SCANF ABSCHALTEN*/
  3. #define _CRT_SECURE_NO_WARNINGS
  4.  
  5. /*KONSTANTEN*/
  6. #define ZEILEN 6
  7. #define SPALTEN 7
  8. #define MAX_FELDER (7*6)
  9.  
  10. /*EINBINDEN BENÖTIGTER HEADER*/
  11. #include <stdio.h>
  12.  
  13. /*PROTOTYPEN*/
  14. int eingabe_spieler(int array[ZEILEN][SPALTEN], int eingabe_x);
  15. void zahl_erlaubt(int array[ZEILEN][SPALTEN], int eingabe_x,char spielfigur_x, int zeilenstand);
  16. void feld_drucken(int array[ZEILEN][SPALTEN], char hilfs_array[ZEILEN][SPALTEN], char spielfigur_x);
  17.  
  18. // Hilfsfunktion um den Eingabepuffer zu leeren
  19. void flashStandardInput(void)
  20. {
  21.     int intCharacter;
  22.     while ((intCharacter = getchar()) != '\n' && intCharacter != EOF);
  23. }
  24.  
  25. int array[6][7];
  26. char hilfs_array[6][7];
  27.  
  28. /*BEGINN DER HAUPTFUNKTION*/
  29. int main(void)
  30. {
  31.     /*BENÖTIGTE VARIABLEN*/
  32.    
  33.     int eingabe_a = 0, eingabe_b = 0, eingabe_c = 0;
  34.     char spielfigur_a = 'A', spielfigur_b = 'B', spielfigur_c = 'C', spielfigur_platzhalter = 0;
  35.     int runde;
  36.     int zeilenstand = (ZEILEN-1);
  37.     /*DRUCKE FELD AUS*/
  38.     feld_drucken(array, hilfs_array, spielfigur_platzhalter);
  39.  
  40.     /*BEGINNE MIT DER ABFRAGE*/
  41.     for (runde = 0; runde < MAX_FELDER; runde++) {
  42.         printf("EINGABE SPIELER A. Bitte Spalte waehlen\t");
  43.         eingabe_a = (eingabe_spieler(array, eingabe_a) - 1);  
  44.         zahl_erlaubt(array, eingabe_a, spielfigur_a, zeilenstand);
  45.  
  46.         printf("EINGABE SPIELER B. Bitte Spalte waehlen\t");
  47.         eingabe_b = (eingabe_spieler(array, eingabe_b) - 1);
  48.         zahl_erlaubt(array, eingabe_b, spielfigur_b, zeilenstand);
  49.  
  50.         printf("EINGABE SPIELER C. Bitte Spalte waehlen\t");
  51.         eingabe_c = (eingabe_spieler(array, eingabe_c) - 1);
  52.         zahl_erlaubt(array, eingabe_c, spielfigur_c, zeilenstand);
  53.     }
  54.    
  55.     return 0;
  56. }
  57.  
  58. /*BEGINN DER NEBENFUNKTIONEN*/
  59.  
  60. /*EINGABE DER SPIELER*/
  61. int eingabe_spieler(int array[ZEILEN][SPALTEN], int eingabe_x)
  62. {
  63.     scanf_s("%d", &eingabe_x);
  64.     while (eingabe_x > SPALTEN)
  65.     {
  66.         flashStandardInput();
  67.         printf("BITTE EINEN GUELTIGEN BEREICH ANGEBEN!\n");
  68.         scanf_s("%d", &eingabe_x);
  69.     }
  70.     return eingabe_x;
  71. }
  72.  
  73. /*FELD DRUCKEN*/
  74. void feld_drucken(int array[ZEILEN][SPALTEN], char hilfs_array[ZEILEN][SPALTEN], char spielfigur_x) {
  75.     int i, j;
  76.     printf("\n");
  77.     printf("  1   2   3   4   5   6   7  \n");
  78.     for (i = 0; i < 6; i++)
  79.     {
  80.         printf("_____________________________\n");
  81.  
  82.         for (j = 0; j < 7; j++)
  83.         {
  84.             printf("| %c ", hilfs_array[i][j]);
  85.         }
  86.         printf("|\n");
  87.     }
  88.     printf("_____________________________\n");
  89. }
  90.  
  91.  
  92. /*AUSGABE DES FELDES*/
  93. void zahl_erlaubt(int array[ZEILEN][SPALTEN], int eingabe_x, char spielfigur_x, int zeilen_stand)
  94. {
  95.     printf("%d\n", array[5][0]);
  96.     printf("%d", array[5][1]);
  97.  
  98.     if (array[zeilen_stand][eingabe_x] > 0)
  99.     {
  100.         if (array[(zeilen_stand - 1)][eingabe_x] == 0)                              //Zeilenstand -1, da wir von 5 abwärts zählen.
  101.         {
  102.             array[(zeilen_stand-1)][eingabe_x] = eingabe_x;
  103.             hilfs_array[(zeilen_stand-1)][eingabe_x] = spielfigur_x;
  104.             feld_drucken(array, hilfs_array, spielfigur_x);
  105.         }
  106.         else if (array[(zeilen_stand - 2)][eingabe_x] == 0 && (array[(zeilen_stand - 1)][eingabe_x] > 0))
  107.         {
  108.             array[(zeilen_stand - 2)][eingabe_x] = eingabe_x;
  109.             hilfs_array[(zeilen_stand - 2)][eingabe_x] = spielfigur_x;
  110.             feld_drucken(array, hilfs_array, spielfigur_x);
  111.         }
  112.         else if (array[(zeilen_stand - 3)][eingabe_x] == 0 && array[(zeilen_stand - 2)][eingabe_x] > 0 && (array[(zeilen_stand - 1)][eingabe_x] > 0))
  113.         {
  114.             array[(zeilen_stand - 3)][eingabe_x] = eingabe_x;
  115.             hilfs_array[(zeilen_stand - 3)][eingabe_x] = spielfigur_x;
  116.             feld_drucken(array, hilfs_array, spielfigur_x);
  117.         }
  118.         else if (array[(zeilen_stand - 4)][eingabe_x] == 0 && array[(zeilen_stand - 3)][eingabe_x] > 0 && array[(zeilen_stand - 2)][eingabe_x] > 0 && (array[(zeilen_stand - 1)][eingabe_x] > 0))
  119.         {
  120.             array[(zeilen_stand - 4)][eingabe_x] = eingabe_x;
  121.             hilfs_array[(zeilen_stand - 4)][eingabe_x] = spielfigur_x;
  122.             feld_drucken(array, hilfs_array, spielfigur_x);
  123.         }
  124.         else if (array[(zeilen_stand - 5)][eingabe_x] == 0 && array[(zeilen_stand - 4)][eingabe_x] > 0 && array[(zeilen_stand - 3)][eingabe_x] > 0 && array[(zeilen_stand - 2)][eingabe_x] > 0 && (array[(zeilen_stand - 1)][eingabe_x] > 0))
  125.         {
  126.             array[(zeilen_stand - 5)][eingabe_x] = eingabe_x;
  127.             hilfs_array[(zeilen_stand - 5)][eingabe_x] = spielfigur_x;
  128.             feld_drucken(array, hilfs_array, spielfigur_x);
  129.         }
  130.     }
  131.     else if(array[zeilen_stand][eingabe_x] == 0)
  132.     {
  133.         array[zeilen_stand][eingabe_x] = eingabe_x;
  134.         hilfs_array[zeilen_stand][eingabe_x] = spielfigur_x;
  135.         feld_drucken(array, hilfs_array, spielfigur_x);
  136.     }
  137. }
RAW Paste Data