Browse Source
refactoring: löschen des alten code, Anton Lohrey
remotes/origin/Läufer-fertig,-Hendrik-Voß
refactoring: löschen des alten code, Anton Lohrey
remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492
11 months ago
3 changed files with 2 additions and 212 deletions
-
4src/main.c
-
195src/schach.c
-
15src/schach.h
@ -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); |
|
||||
} |
|
||||
|
|
||||
|
|
@ -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 |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue