[explorer] Add zobrist
command
It prints the hash of the board!
This commit is contained in:
parent
d44c5d6a11
commit
fb8a8d6110
1 changed files with 15 additions and 0 deletions
|
@ -90,6 +90,7 @@ fn command_line() -> Command {
|
|||
)
|
||||
.subcommand(Command::new("print").about("Print the board"))
|
||||
.subcommand(Command::new("quit").alias("exit").about("Quit the program"))
|
||||
.subcommand(Command::new("zobrist").about("Print the Zobrist hash of the current board"))
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Error, Eq, PartialEq)]
|
||||
|
@ -175,6 +176,7 @@ fn respond(line: &str, state: &mut State) -> anyhow::Result<CommandResult> {
|
|||
Some(("moves", matches)) => result = do_moves_command(state, matches)?,
|
||||
Some(("movement", matches)) => result = do_movement_command(state, matches)?,
|
||||
Some(("reset", matches)) => result = do_reset_command(state, matches)?,
|
||||
Some(("zobrist", matches)) => result = do_zobrist_command(state, matches),
|
||||
Some((name, _matches)) => unimplemented!("{name}"),
|
||||
None => unreachable!("Subcommand required"),
|
||||
}
|
||||
|
@ -269,6 +271,19 @@ fn do_movement_command(
|
|||
})
|
||||
}
|
||||
|
||||
fn do_zobrist_command(state: &mut State, _matches: &clap::ArgMatches) -> CommandResult {
|
||||
if let Some(hash) = state.position.zobrist_hash() {
|
||||
println!("hash:{hash}");
|
||||
} else {
|
||||
println!("No Zobrist hash available");
|
||||
}
|
||||
|
||||
CommandResult {
|
||||
should_continue: true,
|
||||
should_print_position: false,
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<(), String> {
|
||||
let mut editor = DefaultEditor::new().map_err(|err| format!("Error: {err}"))?;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue