Browse Source

Merge branch 'Luis-Branch' into 'main'

Luis branch

See merge request fdai7834/taktikmeister!4
remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7834 11 months ago
parent
commit
7e444ec5be
  1. 13
      src/Moving.c
  2. 6
      src/Schachbrett.c
  3. 2
      src/Turm.c
  4. 62
      test/test_Moving.c
  5. 27
      test/test_Turm.c

13
src/Moving.c

@ -3,6 +3,8 @@
#include <stdbool.h> #include <stdbool.h>
#include "spieler.h" #include "spieler.h"
#include "Bauer.h" #include "Bauer.h"
#include "Turm.h"
#include "Springer.h"
bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player) { bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player) {
@ -25,9 +27,11 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla
switch (Brett[startY][startX]) { switch (Brett[startY][startX]) {
case 'R': case 'R':
//Datei von Turm aufrufen //Datei von Turm aufrufen
return (istzugerlaubt_Turm(Brett, startX,startY,endX,endY,player));
break; break;
case 'N': case 'N':
//Datei von Springer aufrufen //Datei von Springer aufrufen
return (istzugerlaubt_Springer(Brett, startX,startY,endX,endY,player));
break; break;
case 'B': case 'B':
//Datei von Läufer aufrufen //Datei von Läufer aufrufen
@ -39,11 +43,8 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla
//Datei von König aufrufen //Datei von König aufrufen
break; break;
case 'P': case 'P':
/* if(istzugerlaubt_Bauer(Brett,startX,startY,endX,endY,player) == true){
return true;
}else{
return false;
}*/
//Datei von Bauer aufrufen
return (istzugerlaubt_Bauer(Brett, startX,startY,endX,endY,player));
break; break;
default: default:
break; break;
@ -53,6 +54,7 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla
switch (Brett[startY][startX]) { switch (Brett[startY][startX]) {
case 'r': case 'r':
//Datei von Turm aufrufen //Datei von Turm aufrufen
return (istzugerlaubt_Turm(Brett, startX,startY,endX,endY,player));
break; break;
case 'n': case 'n':
//Datei von Springer aufrufen //Datei von Springer aufrufen
@ -68,6 +70,7 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla
break; break;
case 'p': case 'p':
//Datei von Bauer aufrufen //Datei von Bauer aufrufen
return (istzugerlaubt_Bauer(Brett, startX,startY,endX,endY,player));
break; break;
default: default:
break; break;

6
src/Schachbrett.c

@ -47,12 +47,18 @@ char** Schachbrett_erstellen() {
} }
void print_Schachfeld(char** Brett) { void print_Schachfeld(char** Brett) {
int counter = 1;
printf(" - 1 2 3 4 5 6 7 8 \n");
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
printf(" %d " , counter);
counter++;
for (int j = 0; j < 8; j++) { for (int j = 0; j < 8; j++) {
printf(" %c ", Brett[i][j]); printf(" %c ", Brett[i][j]);
} }
printf("\n"); printf("\n");
} }
printf("\n");
printf("\n");
} }
void Schachbrettspeicher_freigeben(char** Brett) { void Schachbrettspeicher_freigeben(char** Brett) {

2
src/Turm.c

@ -48,6 +48,8 @@ int counter = 0;
return true; return true;
} }
}else{
return false;
} }

62
test/test_Moving.c

@ -3,6 +3,9 @@
#include "Schachbrett.h" #include "Schachbrett.h"
#include "Moving.h" #include "Moving.h"
#include "Spieler.h" #include "Spieler.h"
#include "Turm.h"
#include "Bauer.h"
#include "Springer.h"
#include <stdlib.h> #include <stdlib.h>
void setUp(void) { void setUp(void) {
@ -36,6 +39,40 @@ void test_Bauern_bewegen(void) {
free(brett); free(brett);
} }
void test_Bauer_Y_Verknuepfung_Bewegung(void) {
char** brett = Schachbrett_erstellen();
int startX = 1;
int startY = 1;
int endX = 1;
int endY = 2;
Player player = PLAYER_WHITE;
TEST_ASSERT_NOT_NULL(brett);
TEST_ASSERT_TRUE(istzugerlaubt( brett, startX, startY, endX, endY, player));
for (int i = 0; i < 8; i++) {
free(brett[i]);
}
free(brett);
}
void test_istzugerlaubt_Springer_Verknuepfung(void) {
char **Brett = Schachbrett_erstellen();
// Viele Test um legale Züge zu prüfen
TEST_ASSERT_TRUE(istzugerlaubt(Brett, 1, 0, 0, 2, PLAYER_WHITE));
TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 3, 6, 2, PLAYER_BLACK));
Schachbrettspeicher_freigeben(Brett);
}
void test_istzugerlaubt(void){ void test_istzugerlaubt(void){
char** brett = Schachbrett_erstellen(); char** brett = Schachbrett_erstellen();
int startX = 1; int startX = 1;
@ -56,4 +93,29 @@ void test_istzugerlaubt(void){
} }
void test_istzugerlaubt_Turm(void){
char** brett = Schachbrett_erstellen();
int startX = 0;
int startY = 4;
int endX = 0;
int endY = 2;
Player player = PLAYER_WHITE;
TEST_ASSERT_NOT_NULL(brett);
brett[4][0] = 'r';
print_Schachfeld(brett);
TEST_ASSERT_TRUE(istzugerlaubt(brett, startX, startY, endX, endY, player));
for (int i = 0; i < 8; i++) {
free(brett[i]);
}
free(brett);
}
#endif // TEST #endif // TEST

27
test/test_Turm.c

@ -38,6 +38,8 @@ void test_Turm_Y_Bewegung(void) {
free(brett); free(brett);
} }
void test_Turm_X_Bewegung(void) { void test_Turm_X_Bewegung(void) {
char** brett = Schachbrett_erstellen(); char** brett = Schachbrett_erstellen();
@ -88,6 +90,31 @@ void test_Turm_negative_Y_Bewegung(void) {
free(brett); free(brett);
} }
void test_Turm_Falsche_Bewegung(void) {
char** brett = Schachbrett_erstellen();
int startX = 0;
int startY = 0;
int endX = 1;
int endY = 3;
Player player = PLAYER_WHITE;
TEST_ASSERT_NOT_NULL(brett);
print_Schachfeld(brett);
TEST_ASSERT_FALSE(istzugerlaubt_Turm( brett, startX, startY, endX, endY, player));
for (int i = 0; i < 8; i++) {
free(brett[i]);
}
free(brett);
}
#endif // TEST #endif // TEST

Loading…
Cancel
Save