[explorer] make command no longer requires specifying a piece

This commit is contained in:
Eryn Wells 2025-05-19 08:38:52 -07:00
parent 6e0e33b5f9
commit 00c4aa38f0

View file

@ -42,7 +42,6 @@ fn command_line() -> Command {
.subcommand(Command::new("fen").about("Print the current position as a FEN string"))
.subcommand(
Command::new("make")
.arg(Arg::new("piece").required(true))
.arg(Arg::new("from").required(true))
.arg(Arg::new("to").required(true))
.about("Make a move"),
@ -95,11 +94,6 @@ fn respond(line: &str, state: &mut State) -> Result<CommandResult, String> {
result.should_print_position = false;
}
Some(("make", matches)) => {
let shape = matches
.get_one::<String>("piece")
.ok_or("Missing piece descriptor")?;
let shape = Shape::try_from(shape).map_err(|_| "Invalid piece descriptor")?;
let from_square = Square::from_algebraic_str(
matches.get_one::<String>("from").ok_or("Missing square")?,
)
@ -110,17 +104,16 @@ fn respond(line: &str, state: &mut State) -> Result<CommandResult, String> {
)
.map_err(|_| "Error: invalid square specifier")?;
let mv = MoveBuilder::new()
let ply = MoveBuilder::new()
.from(from_square)
.to(to_square)
.build()
.map_err(|err| format!("Error: cannot build move: {:?}", err))?;
.map_err(|err| format!("Error: {err:?}"))?;
state.position = MakeMoveBuilder::new(&state.position)
.make(&mv)
.map_err(|err| format!("Error: cannot make move: {:?}", err))?
.build();
state.builder = PositionBuilder::from_position(&state.position);
state
.position
.make_move(ply, ValidateMove::Yes)
.map_err(|err| format!("Error: {err}"))?;
}
Some(("place", matches)) => {
let color = matches