pub struct MoveGenerator;Expand description
合法手の列挙の実装(王手を回避する実装なし)
Implementations§
Source§impl MoveGenerator
impl MoveGenerator
Sourcepub fn generate_drop(
teban: Teban,
state: &State,
mc: &MochigomaCollections,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop( teban: Teban, state: &State, mc: &MochigomaCollections, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
持ち駒を置く指し手を生成する
§Arguments
teban- 手番state- 盤面の状態mc- 持ち駒mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_fu<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_fu<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
歩を進める差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_kyou<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_kyou<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
香車を進める差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_kei<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_kei<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
桂馬を進める差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_gin<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_gin<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
銀を動かす差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_kin<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_kin<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
金を動かす差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_kaku<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_kaku<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
角を動かす差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_hisha<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_hisha<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
飛車を動かす差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_ou<'a, B, AS: AppendStrategy>(
teban: Teban,
state: &State,
move_builder: &B,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_ou<'a, B, AS: AppendStrategy>( teban: Teban, state: &State, move_builder: &B, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
王を動かす差し手を生成する
§Arguments
teban- 手番state- 盤面の状態move_builder- LegalMoveを生成するためのコールバックmvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_fu(
teban: Teban,
state: &State,
count: usize,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_fu( teban: Teban, state: &State, count: usize, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
歩を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 歩の持ち駒の個数mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_kyou(
teban: Teban,
state: &State,
count: usize,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_kyou( teban: Teban, state: &State, count: usize, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
香車を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 香車の持ち駒の個数mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_kei(
teban: Teban,
state: &State,
count: usize,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_kei( teban: Teban, state: &State, count: usize, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
桂馬を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 桂馬の持ち駒の個数mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_common(
teban: Teban,
state: &State,
m: MochigomaKind,
count: usize,
shared_candidatebits: &mut BitBoard,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_common( teban: Teban, state: &State, m: MochigomaKind, count: usize, shared_candidatebits: &mut BitBoard, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
銀、金、角、飛車を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態m- 持ち駒の種類count- 歩の持ち駒の個数shared_candidatebits- 生成された差し手のビットボード(銀、金、角、飛車の差し手の列挙で共有される)mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_gin(
teban: Teban,
state: &State,
count: usize,
shared_candidatebits: &mut BitBoard,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_gin( teban: Teban, state: &State, count: usize, shared_candidatebits: &mut BitBoard, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
銀を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 銀の持ち駒の個数shared_candidatebits- 生成された差し手のビットボード(銀、金、角、飛車の差し手の列挙で共有される)mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_kin(
teban: Teban,
state: &State,
count: usize,
shared_candidatebits: &mut BitBoard,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_kin( teban: Teban, state: &State, count: usize, shared_candidatebits: &mut BitBoard, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
金を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 金の持ち駒の個数shared_candidatebits- 生成された差し手のビットボード(銀、金、角、飛車の差し手の列挙で共有される)mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_kaku(
teban: Teban,
state: &State,
count: usize,
shared_candidatebits: &mut BitBoard,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_kaku( teban: Teban, state: &State, count: usize, shared_candidatebits: &mut BitBoard, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
角を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 角の持ち駒の個数shared_candidatebits- 生成された差し手のビットボード(銀、金、角、飛車の差し手の列挙で共有される)mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Sourcepub fn generate_drop_hisha(
teban: Teban,
state: &State,
count: usize,
shared_candidatebits: &mut BitBoard,
mvs: &mut impl MovePicker<LegalMove>,
) -> Result<(), LimitSizeError>
pub fn generate_drop_hisha( teban: Teban, state: &State, count: usize, shared_candidatebits: &mut BitBoard, mvs: &mut impl MovePicker<LegalMove>, ) -> Result<(), LimitSizeError>
飛車を置く差し手を生成する
§Arguments
teban- 手番state- 盤面の状態count- 飛車の持ち駒の個数shared_candidatebits- 生成された差し手のビットボード(銀、金、角、飛車の差し手の列挙で共有される)mvs- 生成された指し手を格納するバッファ
§Errors
この関数は以下のエラーを返すケースがあります。
LimitSizeErrorバッファのサイズの上限を超えて指し手を格納しようとした
Auto Trait Implementations§
impl Freeze for MoveGenerator
impl RefUnwindSafe for MoveGenerator
impl Send for MoveGenerator
impl Sync for MoveGenerator
impl Unpin for MoveGenerator
impl UnwindSafe for MoveGenerator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more