Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Überprüft welche Spielfigur sich an der angegebenen Position befindet, weißt die activePiece zu und läd sie in die Move-Funktion
- int move::testLocation(piece *activePiece, const bool turn, int *board, int posIdent, pos endPos);
- {
- // Wenn der Wert auf dem Feld mit dem Ident-Wert eines Bauern übereinstimmt, dann werden die Bauern der Reihe nach abgefragt
- // z.B. 661/10 == 660/10 -> 66 == 66
- if ((posIdent / 10) == (setArray[turn].bauerA.ident / 10))
- {
- // Finde heraus ob die aktuelle Position von 'bauerA' die gleiche wie die eingegebene ist.
- // 660 = 660
- if (posIdent == setArray[turn].bauerA.ident)
- {
- // activePiece wird zu bauerA
- activePiece = &setArray[turn].bauerA;
- }
- else if (posIdent == setArray[turn].bauerB.ident)
- {
- activePiece = &setArray[turn].bauerB;
- }
- else if (posIdent == setArray[turn].bauerC.ident)
- {
- activePiece = &setArray[turn].bauerC;
- }
- else if (posIdent == setArray[turn].bauerD.ident)
- {
- activePiece = &setArray[turn].bauerD;
- }
- else if (posIdent == setArray[turn].bauerE.ident)
- {
- activePiece = &setArray[turn].bauerE;
- }
- else if (posIdent == setArray[turn].bauerF.ident)
- {
- activePiece = &setArray[turn].bauerF;
- }
- else if (posIdent == setArray[turn].bauerG.ident)
- {
- activePiece = &setArray[turn].bauerG;
- }
- else if (posIdent == setArray[turn].bauerH.ident)
- {
- activePiece = &setArray[turn].bauerH;
- }
- else
- {
- return -1;
- }
- // Übergebene Werte noMovement im Falle dass hier ein Gegner geprüft werden soll noMovement -> endPos
- if (endPos.row != -1)
- {
- // Die ausgewählte Figur wird in die Funktion 'moveBauer' geschoben und gibt 1 zurück wenn der Zug gültig ist, 0 für ungültig und -1 für Fehler
- *activePiece = moveBauer(*activePiece);
- // Die Zielposition wird zur Ziel-Position der gewählten aktiven Figur
- activePiece->destPos = endPos;
- }
- }
- else if ((posIdent / 10) == (setArray[turn].turmA.ident / 10))
- {
- if (posIdent == setArray[turn].turmA.ident)
- {
- activePiece = &setArray[turn].turmA;
- }
- else if (posIdent == setArray[turn].turmH.ident)
- {
- activePiece = &setArray[turn].turmH;
- }
- else
- {
- return -1;
- }
- if (endPos.row != -1)
- {
- *activePiece = moveTurm(*activePiece);
- activePiece->destPos = endPos;
- }
- }
- else if ((posIdent / 10) == (setArray[turn].pferdB.ident / 10))
- {
- if (posIdent == setArray[turn].pferdB.ident)
- {
- activePiece = &setArray[turn].pferdB;
- }
- else if (posIdent == setArray[turn].pferdG.ident)
- {
- activePiece = &setArray[turn].pferdG;
- }
- else
- {
- return -1;
- }
- if (endPos.row != -1)
- {
- *activePiece = movePferd(*activePiece);
- activePiece->destPos = endPos;
- }
- }
- else if ((posIdent / 10) == (setArray[turn].laeuferC.ident / 10))
- {
- if (posIdent == setArray[turn].laeuferC.ident)
- {
- activePiece = &setArray[turn].laeuferC;
- }
- else if (posIdent == setArray[turn].laeuferF.ident)
- {
- activePiece = &setArray[turn].laeuferF;
- }
- else
- {
- return -1;
- }
- if (endPos.row != -1)
- {
- *activePiece = moveLaeufer(*activePiece);
- activePiece->destPos = endPos;
- }
- }
- else if ((posIdent / 10) == (setArray[turn].koenig.ident / 10))
- {
- activePiece = &setArray[turn].turmA;
- if (endPos.row != -1)
- {
- *activePiece = moveKoenig(*activePiece);
- activePiece->destPos = endPos;
- }
- }
- else if ((posIdent / 10) == (setArray[turn].dame.ident / 10))
- {
- activePiece = &setArray[turn].dame;
- if (endPos.row != -1)
- {
- *activePiece = moveDame(*activePiece);
- activePiece->destPos = endPos;
- }
- }
- else
- {
- // Es gab einen Fehler
- return -1;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement