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.

80 lines
2.2 KiB

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "Schachbrett.h"
  4. #include "Bauer.h"
  5. #include "Spieler.h"
  6. #include "Historie.h"
  7. void speichern_spielstand_historie(int** Historie, int anzahl_Zuege, const char* dateiName) {
  8. int ZUG_INFO = 5;
  9. FILE* datei = fopen(dateiName, "wb");
  10. if (datei == NULL) {
  11. printf("Fehler beim Öffnen der Datei zum Speichern.\n");
  12. return;
  13. }
  14. // Schreibe die Anzahl der Züge in die Datei
  15. fwrite(&anzahl_Zuege, sizeof(int), 1, datei);
  16. // Schreibe die Historie in die Datei
  17. fwrite(*Historie, sizeof(int), ZUG_INFO * (anzahl_Zuege + 1), datei);
  18. fclose(datei);
  19. }
  20. int laden_spielstand_historie(int*** Historie, int* anzahl_Zuege, const char* dateiName) {
  21. int ZUG_INFO = 5;
  22. FILE* datei = fopen(dateiName, "rb");
  23. if (datei == NULL) {
  24. printf("Fehler beim Öffnen der Datei zum Laden.\n");
  25. return 0; // Rückgabewert 0 bedeutet Fehler
  26. }
  27. // Lese die Anzahl der Züge aus der Datei
  28. fread(anzahl_Zuege, sizeof(int), 1, datei);
  29. // Allokiere Speicher für die Historie basierend auf der gelesenen Anzahl der Züge
  30. *Historie = (int**)malloc((*anzahl_Zuege + 1) * sizeof(int*));
  31. if (*Historie == NULL) {
  32. printf("Fehler bei der Speicherzuweisung.\n");
  33. fclose(datei);
  34. return 0;
  35. }
  36. // Lese die Historie aus der Datei
  37. fread(**Historie, sizeof(int), ZUG_INFO * (*anzahl_Zuege + 1), datei);
  38. fclose(datei);
  39. return 1; // Rückgabewert 1 bedeutet Erfolg
  40. }
  41. void speichern_spielstand_schachbrett(char** Brett, const char* dateiName){
  42. FILE* datei = fopen(dateiName, "wb");
  43. if (datei == NULL) {
  44. printf("Fehler beim Öffnen der Datei zum Speichern.\n");
  45. return;
  46. }
  47. // Schreibe das Schachbrett in die Datei
  48. for (int i = 0; i < 8; i++) {
  49. fwrite(Brett[i], sizeof(char), 8, datei);
  50. }
  51. fclose(datei);
  52. }
  53. void laden_spielstand_schachbrett(){
  54. /*
  55. Binäre Datei muss geöffnet werden
  56. Daten müsseneingelesen werden
  57. Daten werden in extra array gespeichert werden
  58. Spielfeldarray wird auf den Stand von Speichern gebracht
  59. */
  60. }