Data Structures | Typedefs | Enumerations | Functions

chess.h File Reference

This graph shows which files directly or indirectly include this file:

Data Structures

struct  ChessPiece
struct  ChessSquare

Typedefs

typedef struct ChessSquare ChessBoard [8][8]
typedef char File
typedef int Rank

Enumerations

enum  PieceType {
  Pawn, Rook, Knight, Bishop,
  Queen, King, NoPiece
}
enum  PieceColor { White, Black }
enum  MoveType { NormalMove, CaptureMove }

Functions

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)

Typedef Documentation

typedef struct ChessSquare ChessBoard[8][8]

ChessBoard beschreibt ein Schachbrett und ist eine Matrix von 8 mal 8 ChessSquare.

typedef char File

File bezeichnet eine Spalte eines Schachbrettes und wird mit den Buchstaben 'a' - 'h' identifiziert.

typedef int Rank

Rank bezeichnet eine Zeile eines Schachbrettes und wird mit den Ziffern '1' - '8' identifiziert.


Enumeration Type Documentation

enum MoveType

Art eines Zuges

Enumerator:
NormalMove 

Zug bei der KEINE gegnerische Figur geschlagen wird.

CaptureMove 

Zug bei der eine gegnerische Figur geschlagen wird.

enum PieceColor

Farbe einer Figur.

Enumerator:
White 
Black 
enum PieceType

PieceType beschreibt verschiedene Schachfiguren mit deren englischen Namen. Ein weiterer Typ NoPiece wird dazu verwendet, wenn eine Figur in einem Feld angesprochen werden soll, auf der gar keine Figur steht.

Enumerator:
Pawn 

Bauer

Rook 

Turm

Knight 

Springer

Bishop 

Läufer

Queen 

Dame

King 

König

NoPiece 

Keine Figur


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_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 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