 		case (.先手, .金): self = .先金
 		case (.先手, .角): self = .先角
 		case (.先手, .飛): self = .先飛
-		case (.先手, .王): self = .先玉
+		case (.先手, .玉): self = .先玉
 		case (.先手, .と): self = .先と
 		case (.先手, .杏): self = .先杏
 		case (.先手, .圭): self = .先圭

		switch self {
		case 空: return nil
		case 先歩, 先香, 先桂, 先銀, 先金, 先角, 先飛, 先玉, 先と, 先杏, 先圭, 先全, 先馬, 先竜: return .先手
		case 後歩, 後香, 後桂, 後銀, 後金, 後角, 後飛, 後王, 後と, 後杏, 後圭, 後全, 後馬, 後竜: return .後手
		}
	}


		case 銀: return 全
		case 角: return 馬
		case 飛: return 竜
		case 金, 玉: fatalError("should have checked")
		case と, 杏, 圭, 全, 馬, 竜: return self
		}
	}
