 			if 駒種.指定段に打つ事は可能か(先後: 先後, 段: 指定位置.段) {
 				switch 駒種.駒面 {
 				case .歩:
-					// TODO: 打ち歩詰め
 					if self[指定位置] == .空 {
 						return 指定位置に歩を打つ事は可能か(手番: 先後, 位置: 指定位置) // 二歩・打ち歩詰めの確認
 					}

		}
	}

	func 減駒(駒: 駒種型) {
		switch (駒) {
		case .歩: self.歩 -= 1; assert(self.歩 >= 0)
		case .香: self.香 -= 1; assert(self.香 >= 0)


	public func 持駒(先後: 先手後手型) -> 持駒型 {
		return 持駒辞書[先後]!
	}
	
	public func 持駒に加える(先後: 先手後手型, _ 駒種: 駒種型) {
		持駒辞書[先後]?.駒を加える(駒種)
	}

	public func 持駒を減らす(先後: 先手後手型, _ 駒種: 駒種型) {
		持駒辞書[先後]?.駒を減らす(駒種)
	}

	public func 指定位置の駒の移動可能位置列(指定位置: 位置型) -> [位置型] {
