コード例 #1
0
 public Piece(PieceType pieceType, IBoardPosition pieceActualBoardPosition,
              IPlayer piecePlayerOwner)
 {
     this.Identifier    = pieceType.ToString() + "-" + pieceActualBoardPosition.ToString() + "-" + piecePlayerOwner?.ToString();
     this.Type          = pieceType;
     this.PiecePosition = pieceActualBoardPosition;
     this.HasMoved      = false;
     this.Player        = piecePlayerOwner;
 }
コード例 #2
0
        public bool AddShip(IBattleShip ship, IBoardPosition position)
        {
            var y       = position.Row - 1;
            var x       = position.Column - 1;
            var counter = 0;

            for (int i = y; i < y + ship.Height; i++)
            {
                for (int j = x; j < x + ship.Width; j++, counter++)
                {
                    this[i, j] = ship.Parts[counter];
                }
            }
            return(true);
        }
コード例 #3
0
 public static IBoardPosition DistanceBetweenBoardPositions(IBoardPosition p1, IBoardPosition p2)
 {
     return(new BoardPosition(Math.Abs(p1.X - p2.X), Math.Abs(p1.Y - p2.Y)));
 }
コード例 #4
0
 public static bool PieceDistanceFromPositionLessThan(IPiece piece,
                                                      IBoardPosition positionFromWhichCalculateDistance, int distanceMathModule)
 {
     return(DistanceBetweenBoardPositions(piece.PiecePosition, positionFromWhichCalculateDistance).X <= distanceMathModule &&
            DistanceBetweenBoardPositions(piece.PiecePosition, positionFromWhichCalculateDistance).Y <= distanceMathModule);
 }
コード例 #5
0
 public InfoPanelViewModel(IBoardPosition boardPosition)
 {
     _boardPosition = boardPosition;
     RegisterEventHandler();
 }
コード例 #6
0
 public PieceMovement(IPiece piece, IBoardPosition origin, IBoardPosition destination)
 {
     this.PieceInvolved = piece;
     this.Origin        = origin;
     this.Destination   = destination;
 }
コード例 #7
0
 void OnAddTile(IRuntimeCharacter tile, IBoardPosition pos)
 {
 }
コード例 #8
0
 /// <summary>
 ///     Adds a character to the board into a specific position.
 /// </summary>
 /// <param name="character"></param>
 /// <param name="pos"></param>
 public void AddCharacter(IRuntimeCharacter character, IBoardPosition pos)
 {
 }
コード例 #9
0
 public bool RemoveAtPosition(IBoardPosition positionToRemove)
 {
     return(this.GetPieceAtPosition(positionToRemove) != null && this.Remove(this.GetPieceAtPosition(positionToRemove)));
 }
コード例 #10
0
 public IPiece Pawn(IBoardPosition piecePosition)
 {
     return(this.PieceFromPieceType(PieceType.PAWN, piecePosition));
 }
コード例 #11
0
 public IPiece Knight(IBoardPosition piecePosition)
 {
     return(this.PieceFromPieceType(PieceType.KNIGHT, piecePosition));
 }
コード例 #12
0
 public IPiece King(IBoardPosition piecePosition)
 {
     return(this.PieceFromPieceType(PieceType.KING, piecePosition));
 }
コード例 #13
0
 public IPiece Bishop(IBoardPosition piecePosition)
 {
     return(this.PieceFromPieceType(PieceType.BISHOP, piecePosition));
 }
コード例 #14
0
 public PieceMovement(IPiece piece, IBoardPosition destination) : this(piece, piece.PiecePosition, destination)
 {
 }
コード例 #15
0
 public bool Contains(IBoardPosition positionToCheck)
 {
     return(positionToCheck.X < this.Columns && positionToCheck.Y < this.Rows && positionToCheck.X >= 0 && positionToCheck.Y >= 0);
 }
コード例 #16
0
 public IPiece GetPieceAtPosition(IBoardPosition boardPosition)
 {
     return(this._piecesOnBoard.FirstOrDefault(piece => piece.PiecePosition.Equals(boardPosition)));
 }
コード例 #17
0
 public IPiece PieceFromPieceType(PieceType type, IBoardPosition piecePosition)
 {
     return(new Piece(type, piecePosition, this.player));
 }
コード例 #18
0
 public IPiece Queen(IBoardPosition piecePosition)
 {
     return(this.PieceFromPieceType(PieceType.QUEEN, piecePosition));
 }
コード例 #19
0
 public IPiece Rook(IBoardPosition piecePosition)
 {
     throw new NotImplementedException();
 }
コード例 #20
0
 /// <summary>
 ///     Removes a character from a specific position.
 /// </summary>
 /// <param name="character"></param>
 /// <param name="pos"></param>
 public void RemoveTile(IRuntimeCharacter character, IBoardPosition pos)
 {
 }
コード例 #21
0
 public BasicMovement(IBoardPosition origin, IBoardPosition destination)
 {
     this.Origin      = origin;
     this.Destination = destination;
 }
コード例 #22
0
 void OnRemoveTile(IRuntimeCharacter tile, IBoardPosition pos)
 {
 }
コード例 #23
0
 public BoardPosition(IBoardPosition pos) : this(pos.X, pos.Y)
 {
 }