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