|
|
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "spieler.h"
#include "Bauer.h"
#include "Turm.h"
#include "Springer.h"
#include "Koenig.h"
#include "Dame.h"
#include "Laeufer.h"
bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player) { if ((endX >= 8 || endY >= 8) || (endX < 0 || endY < 0)){ return false; } if (player == PLAYER_WHITE && (Brett[endY][endX] == 'R' || Brett[endY][endX] == 'N' || Brett[endY][endX] == 'Q' || Brett[endY][endX] == 'B' || Brett[endY][endX] == 'K' || Brett[endY][endX] == 'P')){ return false; } if (player == PLAYER_BLACK && (Brett[endY][endX] == 'r' || Brett[endY][endX] == 'n' || Brett[endY][endX] == 'q' || Brett[endY][endX] == 'b' || Brett[endY][endX] == 'k' || Brett[endY][endX] == 'p')){ return false; }
if (player == PLAYER_WHITE){
switch (Brett[startY][startX]) { case 'R': //Datei von Turm aufrufen
return (istzugerlaubt_Turm(Brett, startX,startY,endX,endY,player)); break; case 'N': //Datei von Springer aufrufen
break; case 'B': //Datei von Läufer aufrufen
return (istzugerlaubt_Laeufer(Brett, startX,startY,endX,endY,player)); break; case 'Q': //Datei von Dame aufrufen
return (istzugerlaubt_Dame(Brett, startX,startY,endX,endY,player)); break; case 'K': //Datei von König aufrufen
return (istzugerlaubt_Koenig(Brett, startX,startY,endX,endY,player)); break; case 'P': //Datei von Bauer aufrufen
return (istzugerlaubt_Bauer(Brett, startX,startY,endX,endY,player)); break; default: break; } } else { switch (Brett[startY][startX]) { case 'r': //Datei von Turm aufrufen
return (istzugerlaubt_Turm(Brett, startX,startY,endX,endY,player)); break; case 'n': //Datei von Springer aufrufen
break; case 'b': //Datei von Läufer aufrufen
return (istzugerlaubt_Laeufer(Brett, startX,startY,endX,endY,player)); break; case 'q': //Datei von Dame aufrufen
return (istzugerlaubt_Dame(Brett, startX,startY,endX,endY,player)); break; case 'k': //Datei von König aufrufen
break; case 'p': //Datei von Bauer aufrufen
return (istzugerlaubt_Bauer(Brett, startX,startY,endX,endY,player)); break; default: break; } }
/* Regeln hierhin
z.B. schauen ob der zug auch innerhalb vom spielbrett ist, schauen ob auf dem zielfeld keine eigene Figur steht, schauen ob von der startposition aus der zug auch für die ausgewählte figur möglich ist.
return true wenn möglich oder false falls nicht. */ return true; } void machezug(char** Brett, int startX, int startY, int endX, int endY,Player player) { //wenn istzugerlaubt true ist wird das hier ausgeführt
if(istzugerlaubt(Brett,startX,startY,endX,endY,player) == true){ Brett[endY][endX] = Brett[startY][startX]; Brett[startY][startX] = ' '; } }
|