 
 	public func 持駒(先後: 先手後手型) -> 持駒型 {
 		return 持駒辞書[先後]!
+	}
+	
+	public func 持駒に加える(先後: 先手後手型, _ 駒種: 駒種型) {
+		持駒辞書[先後]?.駒を加える(駒種)
+	}
+
+	public func 持駒を減らす(先後: 先手後手型, _ 駒種: 駒種型) {
+		持駒辞書[先後]?.駒を減らす(駒種)
 	}
 
 	public func 指定位置の駒の移動可能位置列(指定位置: 位置型) -> [位置型] {

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

	public func 指手を実行(指手: 指手型) -> 局面型? {
		print(指手)
	
		let 次局面 = 局面型(局面: self)
		次局面.前の局面 = self
		if let 手数 = self.手数 {
			次局面.手数 = 手数 + 1
		}
		
		switch 指手 {
