Browse Source

refactoring: löschen des alten code, Anton Lohrey

remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492 11 months ago
parent
commit
9754f79055
  1. 4
      src/main.c
  2. 195
      src/schach.c
  3. 15
      src/schach.h

4
src/main.c

@ -1,10 +1,9 @@
#include <stdio.h>
#include <stdlib.h>
#include "schach.h"
int main() {
int x = 8;
/* int x = 8;
int y = 8;
int spieler = 0;
char** Spielfeld = create_Schachfeld(x, y);
@ -22,4 +21,5 @@ int main() {
free_Schachfeld(Spielfeld, x);
return 0;
*/
}

195
src/schach.c

@ -1,195 +0,0 @@
#include <stdlib.h>
#include <stdio.h>
#include "main.h"
/*
Spielablauf:
1. Ausgabe vom Spielfeld
2. Weiß nach Figur für Zug fragen
3. Weiß nach Ziel der Figur fragen
4. Überprüfen ob Eingabe möglich ist
4.1. falls nicht Schritt 2,3 und 4 Wiederholen
4.2. Schach überprüfen bzw Schachmatt
5. Figur bewegen
5.1. falls gegnerische Figur -> Schlagen
6. Wiederholung von 1-5 für Schwarz
Eingaben sind Koordinaten
Programmablauf:
1.Spielfeld in der create_Schachfeld erstellen
1.1 Schachfeld füllen
2.Spielfeld anzeigen mit print_Schachfeld
3.Eingabe mit choose_Figur
3.1 erst x dann y
4.Eingabe mit choose_destination_Figur
4.1 erst x dann y
5.Überprüfung der Figur mit check_Figur
5.1.bsp.: Eingabe choose_Figur x=0 y=0 temp. char welcher die eingabe des Spielfeldarray
an der Stelle 0 0 speichert
5.2. if abfrage welche Figur da steht
5.2.1. wechsel in die seperaten Figuren-Funktionen(Datein)
5.3. Prüfen ob schwarz oder weiß durch groß und kleinschreibung
6.In den seperaten Figuren-Funktionen wird überprüft ob der Zug möglich ist
6.1 wenn möglich wird die Figur an die stelle gesetzt
6.2 wenn es nicht möglich ist dann wird Schritt 2-6 wiederholt
7.(Schachmatt wird in check_checkmate überprüft)
8.Schritt 2-8 wird Wiederholt
*/
int checkmate(){
return 0;
}
int read_input(){
int koordinate = 0;
scanf("%d", &koordinate);
if(koordinate < 9){
return koordinate - 1;
}
else{
read_input();
}
}
void choose_Figur(char active_Player, char** spielfeld){
int x,y;
printf("Spieler %c ist an der Reihe!\nX-Koordinaten der Figur die bewegt werden soll eingeben:\n", active_Player);
x = read_input();
printf("X-Koordinaten der Figur der bewegt werden soll eingeben:\n");
y = read_input();
char ausgewählte_Figur = spielfeld[x][y];
if (active_Player == 'w'){
switch(ausgewählte_Figur){
case 'D' :
//dame.c;
break;
case 'K' :
//könig.c;
break;
case 'L' :
//läufer.c;
break;
case 'T' :
//turm.c;
break;
case 'P' :
//pferd.c;
break;
case 'B' :
//bauer.c;
break;
default :
printf("Wrong Input");
choose_Figur(active_Player,spielfeld);
break;
}
}else{
switch(ausgewählte_Figur){
case 'd' :
//dame.c;
break;
case 'k' :
//könig.c;
break;
case 'l' :
//läufer.c;
break;
case 't' :
//turm.c;
break;
case 'p' :
//pferd.c;
break;
case 'b' :
//bauer.c;
break;
default :
printf("Wrong Input");
choose_Figur(active_Player,spielfeld);
break;
}
}
}
void print_Schachfeld(char** Spielfeld, int x, int y) {
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
printf(" %c ", Spielfeld[i][j]);
}
printf ("\n");
}
}
char** create_Schachfeld(int x, int y) {
char** Spielfeld = (char**)malloc(x * sizeof(char*));
for (int i = 0; i < x; i++) {
Spielfeld[i] = (char*)malloc(y * sizeof(char));
for (int j = 0; j < y; j++) {
if ((i + j) % 2 == 0) {
Spielfeld[i][j] = 'W';
} else {
Spielfeld[i][j] = 'S';
}
}
}
Spielfeld[0][0] = 'T'; //Turm Weiß
Spielfeld[0][1] = 'P'; //Pferd Weiß
Spielfeld[0][2] = 'L'; //Laufer Weiß
Spielfeld[0][3] = 'D'; //Dame Weiß
Spielfeld[0][4] = 'K'; //König Weiß
Spielfeld[0][5] = 'L';
Spielfeld[0][6] = 'P';
Spielfeld[0][7] = 'T';
for(int l = 0;l<8;l++){ // Bauern Weiß
Spielfeld[1][l] = 'B';
}
Spielfeld[7][0] = 't'; //Turm Schwarz
Spielfeld[7][1] = 'p';
Spielfeld[7][2] = 'l';
Spielfeld[7][3] = 'd';
Spielfeld[7][4] = 'k';
Spielfeld[7][5] = 'l';
Spielfeld[7][6] = 'p';
Spielfeld[7][7] = 't';
for(int l = 0;l<8;l++){ //Bauern Schwarz
Spielfeld[6][l] = 'b';
}
return Spielfeld;
}
void free_Schachfeld(char** Spielfeld, int x) {
for (int i = 0; i < x; i++) {
free(Spielfeld[i]);
}
free(Spielfeld);
}

15
src/schach.h

@ -1,15 +0,0 @@
#ifndef SCHACH
#define SCHACH
#include "main.h"
void print_Schachfeld(char** , int , int );
char** create_Schachfeld(int , int );
void free_Schachfeld(char** , int );
int checkmate();
int read_input();
void choose_Figur(char, char**);
#endif
Loading…
Cancel
Save