home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-10-05 | 2.4 KB | 116 lines | [TEXT/PJMM] |
- unit ChessSubs;
-
- { ©1991 Quinn "The Eskimo" }
-
- interface
-
- uses
- Failure, {}
- ChessTypes;
-
- function Opposite (p: playerType): playerType;
- function BaseRow (p: playerType): boardYNdx;
- function PawnBaseRow (p: playerType): boardYNdx;
- function Pawn_dy (p: playerType): integer;
- function PieceToPlayer (p: pieceType): playerType;
- function PieceInMyTeam (player: playerType; p: pieceType): boolean;
- function PlayerToKing (p: playerType): pieceType;
- function PlayerPiece (p: playerType; piece: pieceType): pieceType;
-
- implementation
-
- function Opposite (p: playerType): playerType;
- begin
- if p = Pwhite then begin
- Opposite := Pblack
- end
- else begin
- Opposite := Pwhite;
- end; { if }
- end; { Opposite }
-
- function BaseRow (p: playerType): boardYNdx;
- begin
- case p of
- Pblack:
- BaseRow := 0;
- Pwhite:
- BaseRow := kBoardYMax;
- end; { case }
- end; { BaseRow }
-
- function PawnBaseRow (p: playerType): boardYNdx;
- begin
- case p of
- Pblack:
- PawnBaseRow := 1;
- Pwhite:
- PawnBaseRow := kBoardYMax - 1;
- end; { case }
- end; { PawnBaseRow }
-
- function Pawn_dy (p: playerType): integer;
- begin
- case p of
- Pblack:
- Pawn_dy := 1;
- Pwhite:
- Pawn_dy := -1;
- end; { case }
- end; { Pawn_dy }
-
- function PieceToPlayer (p: pieceType): playerType;
- begin
- case p of
- OpawnB..OqueenB:
- PieceToPlayer := Pblack;
- OpawnW..OqueenW:
- PieceToPlayer := Pwhite;
- otherwise
- Failure('PieceToPlayer with empty');
- end; { case }
- end; { PieceToPlayer }
-
- function PieceInMyTeam (player: playerType; p: pieceType): boolean;
- begin
- case player of
- Pblack:
- PieceInMyTeam := (p in [OpawnB..OqueenB]);
- Pwhite:
- PieceInMyTeam := (p in [OpawnW..OqueenW]);
- end; { case }
- end; { PieceInMyTeam }
-
- function PlayerToKing (p: playerType): pieceType;
- begin
- case p of
- Pblack:
- PlayerToKing := OkingB;
- Pwhite:
- PlayerToKing := OkingW;
- end; { case }
- end; { PlayerToKing }
-
- function PlayerPiece (p: playerType; piece: pieceType): pieceType;
- begin
- case piece of
- OpawnW..OqueenW:
- case p of
- Pblack:
- PlayerPiece := pieceType(ord(piece) - ord(OpawnW) + ord(OpawnB));
- Pwhite:
- PlayerPiece := piece;
- end; { case }
- OpawnB..OqueenB:
- case p of
- Pblack:
- PlayerPiece := piece;
- Pwhite:
- PlayerPiece := pieceType(ord(piece) - ord(OpawnB) + ord(OpawnW));
- end; { case }
- Oempty:
- PlayerPiece := piece;
- end; { case }
- end; { PlayerPiece }
-
- end. { ChessSubs }