Browse Source

Merge branch 'Luis-Branch' into 'main'

Hinzufügen der Bauernumwandlung

See merge request fdai7834/taktikmeister!7
remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7834 11 months ago
parent
commit
8eb2f5f2a6
  1. 54
      src/Bauernumwandlung.c
  2. 11
      src/Bauernumwandlung.h
  3. 38
      test/test_Bauernumwandlung.c

54
src/Bauernumwandlung.c

@ -0,0 +1,54 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "spieler.h"
#include "Moving.h"
#include "Bauer.h"
#include "Input.h"
bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) {
if((player == PLAYER_WHITE) && (endY == 7) && (Brett[startY][startX] == 'P')){
return true;
}else if((player == PLAYER_BLACK) && (endY == 0) && (Brett[startY][startX] == 'p')){
return true;
}else{
return false;
}
}
char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int endY, Player player){
if(ist_umwandlung_gerlaubt_Bauer(Brett ,startX,startY,endX,endY,player) == true){
char* Figur;
printf("Welche Figur soll erstellt werden?");
if(player == PLAYER_WHITE){
printf("Q für Dame, R für Turm, B für Läufer oder N für Springer");
Figur = getUserInput();
}else{
printf("q für Dame, r für Turm, b für Läufer oder n für Springer");
Figur = getUserInput();
}
if((player == PLAYER_WHITE && (Figur == 'Q' || Figur == 'R' || Figur == 'B' || Figur == 'N')) ||
(player == PLAYER_BLACK && (Figur == 'q' || Figur == 'r' || Figur == 'b' || Figur == 'n'))){
return Figur;
}else{
return 'W';
}
}
}
void bauer_umwandeln(char** Brett, int startX, int startY, int endX, int endY, Player player){
char* Figur = bauer_umwandel_abfrage(Brett,startX,startY,endX,endY,player);
if(Figur != 'W'){
Brett[endY][endX] = Figur;
Brett[startY][startX] = ' ';
}else{
printf("Zug ungültig");
}
}

11
src/Bauernumwandlung.h

@ -0,0 +1,11 @@
#ifndef BAUER_UM_H
#define BAUER_UM_H
#include <stdbool.h>
#include "spieler.h"
bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player);
char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int endY, Player player);
void bauer_umwandeln(char** Brett, int startX, int startY, int endX, int endY, Player player);
#endif // BAUER_UM_H

38
test/test_Bauernumwandlung.c

@ -0,0 +1,38 @@
#ifdef TEST
#include "unity.h"
#include <stdlib.h>
#include "Schachbrett.h"
#include "Bauer.h"
#include "Input.h"
#include "Bauernumwandlung.h"
void setUp(void) {
}
void tearDown(void) {
}
void test_Bauernumwandlung_erlaubt(void) {
char** brett = Schachbrett_erstellen();
int startX = 6;
int startY = 6;
int endX = 6;
int endY = 7;
Player player = PLAYER_WHITE;
TEST_ASSERT_NOT_NULL(brett);
brett[6][6] = 'P';
brett[7][6] = ' ';
TEST_ASSERT_TRUE(ist_umwandlung_gerlaubt_Bauer( brett, startX, startY, endX, endY, player));
for (int i = 0; i < 8; i++) {
free(brett[i]);
}
free(brett);
}
#endif // TEST
Loading…
Cancel
Save