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.

78 lines
2.0 KiB

#include <stdio.h>
#include <stdlib.h>
#include "Schachbrett.h"
#include "Bauer.h"
#include "Spieler.h"
int** erstellen_historie() {
int MAX_ZUEGE = 70;
int ZUG_INFO = 5;
// Dynamisch Platz zuweisen für Historie
int** Historie = (int**)malloc(MAX_ZUEGE * sizeof(int*));
if (Historie == NULL) {
// Fehler bei Speicherzuweisung
return NULL;
}
for (int i = 0; i < MAX_ZUEGE; i++) {
Historie[i] = (int*)malloc(ZUG_INFO * sizeof(int));
if (Historie[i] == NULL) {
// Speicherfehlerbehebung
for (int j = 0; j < i; j++) {
free(Historie[j]);
}
free(Historie);
return NULL;
}
}
return Historie;
}
void Historie_freigeben(int** Historie) {
// Speicher freigeben für Historie
int MAX_ZUEGE = 70;
for (int i = 0; i < MAX_ZUEGE; i++) {
free(Historie[i]);
}
free(Historie);
}
void hinzufuegen_historie(int** Historie, int startX, int startY, int endX, int endY, Player player, int anzahl_Zuege) {
// Hier kannst du die Zuginformationen in die Historie eintragen
Historie[anzahl_Zuege][0] = startX;
Historie[anzahl_Zuege][1] = startY;
Historie[anzahl_Zuege][2] = endX;
Historie[anzahl_Zuege][3] = endY;
if(player == PLAYER_WHITE){
Historie[anzahl_Zuege][4] = 0;
}else{
Historie[anzahl_Zuege][4] = 1;
}
}
void print_Historie(int** Historie, int anzahl_Zuege) {
printf("Historie der Züge:\n");
for (int i = 0; i <= anzahl_Zuege; i++) {
if(Historie[i][4] == 0){
printf("%d. Zug: Von (%d, %d) nach (%d, %d) von Spieler Weiß\n", i + 1,
Historie[i][0], Historie[i][1],
Historie[i][2], Historie[i][3]);
}else{
printf("%d. Zug: Von (%d, %d) nach (%d, %d) von Spieler Schwarz\n", i + 1,
Historie[i][0], Historie[i][1],
Historie[i][2], Historie[i][3]);
}
}
printf("\n");
}