public void Move(BoardPosition toPosition, bool doTransform) { if (doTransform && !KomaType.CanBeTransformed) { throw new InvalidProgramException("この駒は成ることができません."); } State = State.ToBoard(toPosition, doTransform); }
public void Taken() { if (IsInHand) { throw new InvalidProgramException("持ち駒を取ることはできません."); } Player = Player.Opponent; State = InHand.State; }
public Koma(PlayerType player, KomaType komaType, IKomaState state) { Player = player; KomaType = komaType; State = state; }