You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.6 KiB
95 lines
2.6 KiB
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdbool.h>
|
|
#include "spieler.h"
|
|
#include "Bauer.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
|
|
break;
|
|
case 'N':
|
|
//Datei von Springer aufrufen
|
|
break;
|
|
case 'B':
|
|
//Datei von Läufer aufrufen
|
|
break;
|
|
case 'Q':
|
|
//Datei von Dame aufrufen
|
|
break;
|
|
case 'K':
|
|
//Datei von König aufrufen
|
|
break;
|
|
case 'P':
|
|
/* if(istzugerlaubt_Bauer(Brett,startX,startY,endX,endY,player) == true){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}*/
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
switch (Brett[startY][startX]) {
|
|
case 'r':
|
|
//Datei von Turm aufrufen
|
|
break;
|
|
case 'n':
|
|
//Datei von Springer aufrufen
|
|
break;
|
|
case 'b':
|
|
//Datei von Läufer aufrufen
|
|
break;
|
|
case 'q':
|
|
//Datei von Dame aufrufen
|
|
break;
|
|
case 'k':
|
|
//Datei von König aufrufen
|
|
break;
|
|
case 'p':
|
|
//Datei von Bauer aufrufen
|
|
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] = ' ';
|
|
}
|
|
}
|