Functions

chess.cpp File Reference

#include <stdlib.h>
#include "general.h"
#include "chess.h"
Include dependency graph for chess.cpp:

Functions

bool is_square_ok (File file, Rank rank)
int nr (Rank rank)
int nf (File file)
bool is_move_from_base_line (enum PieceColor color, Rank rank)
bool is_piece (struct ChessPiece pc, enum PieceColor color, enum PieceType type)
void init_chess_board (ChessBoard chess_board)
struct ChessSquareget_square (ChessBoard chess_board, File file, Rank rank)
bool is_square_occupied (ChessBoard chess_board, File file, Rank rank)
bool add_piece (ChessBoard chess_board, File file, Rank rank, struct ChessPiece piece)
struct ChessPiece get_piece (ChessBoard chess_board, File file, Rank rank)
void setup_chess_board (ChessBoard chess_board)
bool remove_piece (ChessBoard chess_board, File file, Rank rank)
bool squares_share_file (File s1_f, Rank s1_r, File s2_f, Rank s2_r)
bool squares_share_rank (File s1_f, Rank s1_r, File s2_f, Rank s2_r)
bool squares_share_diagonal (File s1_f, Rank s1_r, File s2_f, Rank s2_r)
bool squares_share_knights_move (File s1_f, Rank s1_r, File s2_f, Rank s2_r)
bool squares_share_pawns_move (enum PieceColor color, enum MoveType move, File s1_f, Rank s1_r, File s2_f, Rank s2_r)
bool squares_share_queens_move (File s1_f, Rank s1_r, File s2_f, Rank s2_r)
bool squares_share_kings_move (File s1_f, Rank s1_r, File s2_f, Rank s2_r)

Function Documentation

bool add_piece ( ChessBoard  chess_board,
File  file,
Rank  rank,
struct ChessPiece  piece 
)

Setzt eine neue Figur auf ein bestimmtes Feld auf dem Schachbrett.

Parameters:
chess_board Schachbrett.
file Spaltenbezeichner.
rank Zeilenbezeichner.
piece Die neu zu setzende Figur.
Returns:
true wenn die Figur erfolgreich gesetzt werden konnte, false wenn (file/rank) Angabe ungültig ist oder das Feld bereits besetzt ist.

Here is the call graph for this function:

struct ChessPiece get_piece ( ChessBoard  chess_board,
File  file,
Rank  rank 
) [read]

Liefert die Figur auf einem spezifischen Feld eines Schachbrettes

Parameters:
chess_board Schachbrett.
file Spaltenbezeichner.
rank Zeilenbezeichner.
Returns:
Die Figur auf dem angegebenen Feld des Schachbretts. Wenn das Feld nicht besetzt ist oder die (file/rank) Angabe ungültig ist, dann ist der Typ der zurückgegebenen Figur NoPiece und der Wert von color ist nicht definiert.
See also:
NoPiece

Here is the call graph for this function:

struct ChessSquare* get_square ( ChessBoard  chess_board,
File  file,
Rank  rank 
) [read]

Liefert einen Pointer auf ein spezifisches Feld.

Parameters:
chess_board Schachbrett.
file Spaltenbezeichner für das Feld.
rank Zeilenbezeichner für das Feld.
Returns:
Pointer auf das geforderte Feld. Wenn (file/rank) außerhalb der gültigen Wertebreiche liegen wird 0 zurückgegeben.

Here is the call graph for this function:

void init_chess_board ( ChessBoard  chess_board  ) 

Löscht alle Figuren vom Schachbrett.

Parameters:
chess_board Das zu initialisierende Schachbrett.
bool is_move_from_base_line ( enum PieceColor  color,
Rank  rank 
)
bool is_piece ( struct ChessPiece  pc,
enum PieceColor  color,
enum PieceType  type 
)

Prüft, ob die übergebene Schachfigur die angegebene Farbe und den angegebenen Typ hat.

Parameters:
pc Die zu überprüfende Schachfigur.
color Die geforderte Farbe.
type Der geforderte Figurtyp.
Returns:
true, wenn pc von geforderter Farbe und Typ ist, false sonst.
bool is_square_occupied ( ChessBoard  chess_board,
File  file,
Rank  rank 
)

Prüft, ob ein spezifisches Feld durch eine Figur besetzt ist.

Parameters:
chess_board Schachbrett.
file Spaltenbezeichner.
rank Zeilenbezeichner.
Returns:
true wenn das angebene Feld besetzt ist, false sonst.

Here is the call graph for this function:

bool is_square_ok ( File  file,
Rank  rank 
)
int nf ( File  file  ) 
int nr ( Rank  rank  ) 
bool remove_piece ( ChessBoard  chess_board,
File  file,
Rank  rank 
)

Nimmt die Figur an der angegebenen Position vom Schachbrett.

Parameters:
chess_board Schachbrett.
file Spaltenbezeichner.
rank Zeilenbezeichner.
Returns:
true wenn die Figur erfolgreich vom Brett genommen werden konnte, false wenn die (file/rank) Angabe ungültig war oder das Feld mit keiner Figur besetzt war.

Here is the call graph for this function:

void setup_chess_board ( ChessBoard  chess_board  ) 

Initialisiert das Schachbrett und stellt alle Figuren auf ihre Anfangsposition.

Parameters:
chess_board Das aufzustellende Schachbrett.

Here is the call graph for this function:

bool squares_share_diagonal ( File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob sich zwei Felder in der gleichen Diagonale befinden.

Parameters:
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder sich in der gleichen Diagonale befinden, false sonst.

Here is the call graph for this function:

bool squares_share_file ( File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob sich zwei Felder in der gleichen Spalte befinden.

Parameters:
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder sich in der gleichen Spalte befinden, false sonst.

Here is the call graph for this function:

bool squares_share_kings_move ( File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob zwei Felder einen Königzug voneinander entfernt sind.

Parameters:
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder einen Königzug voneinander entfernt sind, false sonst.
bool squares_share_knights_move ( File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob zwei Felder einen Springerzug voneinander entfernt sind.

Parameters:
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder einen Springerzug voneinander entfernt sind, false sonst.

Here is the call graph for this function:

bool squares_share_pawns_move ( enum PieceColor  color,
enum MoveType  move,
File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob zwei Felder einen Bauernzug voneinander entfernt sind.

Parameters:
color Farbe des Bauern.
move Art des Zugs (normaler Zug oder schlagender Zug).
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder einen Bauernzug voneinander entfernt sind, false sonst.

Here is the call graph for this function:

bool squares_share_queens_move ( File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob zwei Felder einen Damenzug voneinander entfernt sind.

Parameters:
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder einen Damenzug voneinander entfernt sind, false sonst.

Here is the call graph for this function:

bool squares_share_rank ( File  s1_f,
Rank  s1_r,
File  s2_f,
Rank  s2_r 
)

Überprüft, ob sich zwei Felder in der gleichen Zeile befinden.

Parameters:
s1_f Spaltenbezeichner des ersten Feldes.
s1_r Zeilenbezeichner des ersten Feldes.
s1_f Spaltenbezeichner des zweiten Feldes.
s1_r Zeilenbezeichner des zweiten Feldes.
Returns:
true wenn die Felder sich in der gleichen Zeile befinden, false sonst.

Here is the call graph for this function:

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines