You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
2.9 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. int Zaehler = 1;
  6. // Funktion, um das Spielfeld zu initialisieren
  7. void Brett(char Feld[3][3]) {
  8. for (int i = 0; i < 3; i++) {
  9. for (int j = 0; j < 3; j++) {
  10. Feld[i][j] = '_';
  11. }
  12. }
  13. }
  14. void Bild(char Feld[3][3]) {
  15. #ifdef _WIN32
  16. system("cls");
  17. #else
  18. system("clear");
  19. #endif
  20. for (int i = 0; i < 3; i++) {
  21. for (int j = 0; j < 3; j++) {
  22. printf("%c ", Feld[i][j]);
  23. }
  24. printf("\n");
  25. }
  26. }
  27. int Winner(char Feld[3][3]) {
  28. // �berpr�fen Sieg
  29. // �berpr�fen Reihen
  30. for (int i = 0; i < 3; i++) {
  31. if (Feld[i][0] == Feld[i][1] && Feld[i][1] == Feld[i][2] && Feld[i][0] != '_') {
  32. if (Feld[i][0] == 'X') {
  33. return 1;
  34. }
  35. else return 2;
  36. }
  37. }
  38. // �berpr�fen Spalten
  39. for (int j = 0; j < 3; j++) {
  40. if (Feld[0][j] == Feld[1][j] && Feld[1][j] == Feld[2][j] && Feld[0][j] != '_') {
  41. if (Feld[0][j] == 'X') {
  42. return 1;
  43. }
  44. else return 2;
  45. }
  46. }
  47. // �berpr�fen Diagonalen
  48. if ((Feld[0][0] == Feld[1][1] && Feld[1][1] == Feld[2][2]) || (Feld[0][2] == Feld[1][1] && Feld[1][1] == Feld[2][0])) {
  49. if (Feld[1][1] != '_') {
  50. if (Feld[1][1] == 'X') {
  51. return 1;
  52. }
  53. else return 2;
  54. }
  55. }
  56. //�berpr�fe Runde
  57. for (int k = 0; k < 3; k++) {
  58. for (int l = 0; l < 3; l++) {
  59. if (Feld[k][l] == '_') {
  60. return 9;
  61. }
  62. }
  63. }
  64. //Best�tige Unendschieden
  65. printf("Es ist ein Unendschieden\n");
  66. return 0;
  67. }
  68. void Zuege(char Feld[3][3], int row, int col) {
  69. if (Zaehler % 2 == 0) {
  70. if (Feld[row][col] == '_') {
  71. Feld[row][col] = 'O';
  72. }
  73. else {
  74. printf("Das Feld ist schon besetzt. Gib ein anderes Feld ein:\n");
  75. printf("[Reihe Spalte]:");
  76. scanf("%d %d");
  77. row -= 1;
  78. col -= 1;
  79. Zuege(Feld, row, col);
  80. }
  81. }
  82. else {
  83. if (Feld[row][col] == '_') {
  84. Feld[row][col] = 'X';
  85. }
  86. else {
  87. printf("Das Feld ist schon besetzt. Gib ein anderes Feld ein:\n");
  88. printf("[Reihe Spalte]:");
  89. scanf("%d %d");
  90. row -= 1;
  91. col -= 1;
  92. Zuege(Feld, row, col);
  93. }
  94. }
  95. }
  96. // Hauptfunktion zum Spielen des Tic Tac Toe-Spiels
  97. int mainx() {
  98. int row;
  99. int col;
  100. char Feld[3][3];
  101. Brett(Feld);
  102. Bild(Feld);
  103. if (Zaehler % 2 != 0) {
  104. printf("Spieler 1 gebe das Feld an wo du dein X setzen willst.\n");
  105. }
  106. else printf("Spieler 2 gebe das Feld an wo du dein O setzen willst.\n");
  107. printf("Reihe:");
  108. scanf("%d", &row);
  109. printf("Spalte:");
  110. scanf("%d", &col);
  111. row -= 1;
  112. col -= 1;
  113. Zuege(Feld, row, col);
  114. }