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.

77 lines
2.0 KiB

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "Schachbrett.h"
  4. #include "Bauer.h"
  5. #include "Spieler.h"
  6. int** erstellen_historie() {
  7. int MAX_ZUEGE = 70;
  8. int ZUG_INFO = 5;
  9. // Dynamisch Platz zuweisen für Historie
  10. int** Historie = (int**)malloc(MAX_ZUEGE * sizeof(int*));
  11. if (Historie == NULL) {
  12. // Fehler bei Speicherzuweisung
  13. return NULL;
  14. }
  15. for (int i = 0; i < MAX_ZUEGE; i++) {
  16. Historie[i] = (int*)malloc(ZUG_INFO * sizeof(int));
  17. if (Historie[i] == NULL) {
  18. // Speicherfehlerbehebung
  19. for (int j = 0; j < i; j++) {
  20. free(Historie[j]);
  21. }
  22. free(Historie);
  23. return NULL;
  24. }
  25. }
  26. return Historie;
  27. }
  28. void Historie_freigeben(int** Historie) {
  29. // Speicher freigeben für Historie
  30. int MAX_ZUEGE = 70;
  31. for (int i = 0; i < MAX_ZUEGE; i++) {
  32. free(Historie[i]);
  33. }
  34. free(Historie);
  35. }
  36. void hinzufuegen_historie(int** Historie, int startX, int startY, int endX, int endY, Player player, int anzahl_Zuege) {
  37. // Hier kannst du die Zuginformationen in die Historie eintragen
  38. Historie[anzahl_Zuege][0] = startX;
  39. Historie[anzahl_Zuege][1] = startY;
  40. Historie[anzahl_Zuege][2] = endX;
  41. Historie[anzahl_Zuege][3] = endY;
  42. if(player == PLAYER_WHITE){
  43. Historie[anzahl_Zuege][4] = 0;
  44. }else{
  45. Historie[anzahl_Zuege][4] = 1;
  46. }
  47. }
  48. void print_Historie(int** Historie, int anzahl_Zuege) {
  49. printf("Historie der Züge:\n");
  50. for (int i = 0; i <= anzahl_Zuege; i++) {
  51. if(Historie[i][4] == 0){
  52. printf("%d. Zug: Von (%d, %d) nach (%d, %d) von Spieler Weiß\n", i + 1,
  53. Historie[i][0], Historie[i][1],
  54. Historie[i][2], Historie[i][3]);
  55. }else{
  56. printf("%d. Zug: Von (%d, %d) nach (%d, %d) von Spieler Schwarz\n", i + 1,
  57. Historie[i][0], Historie[i][1],
  58. Historie[i][2], Historie[i][3]);
  59. }
  60. }
  61. printf("\n");
  62. }