public void Tukurinaosi_Clear() { BB_kikiKomabetu.Tukurinaosi_Clear(); BB_kikiZenbu.Tukurinaosi_Clear(); CB_kikisuKomabetu.Tukurinaosi_Clear(); CB_kikisuZenbu.Tukurinaosi_Clear(); }
public void Tukurinaosi_Copy(KikiBan source) { BB_kikiKomabetu.Tukurinaosi_Copy(source.BB_kikiKomabetu); BB_kikiZenbu.Tukurinaosi_Copy(source.BB_kikiZenbu); CB_kikisuKomabetu.Tukurinaosi_Copy(source.CB_kikisuKomabetu); CB_kikisuZenbu.Tukurinaosi_Copy(source.CB_kikisuZenbu); }
public void Tukurinaosi_Remake() { BB_kikiKomabetu.Tukurinaosi_Remake(); BB_kikiZenbu.Tukurinaosi_Remake(BB_kikiKomabetu); CB_kikisuKomabetu.Tukurinaosi_Remake(); CB_kikisuZenbu.Tukurinaosi(); }
/// <summary> /// /// </summary> /// <param name="km_target"></param> /// <param name="bbVar_add">注意、このメソッド実行後に0になるぜ☆(^~^)</param> /// <param name="yomiKy"></param> /// <param name="reigai1"></param> /// <returns></returns> public void OkuKiki(Piece km_target, Bitboard bbVar_add) { Taikyokusya tai = Med_Koma.KomaToTaikyokusya(km_target); // ビットボードは、一気に更新するぜ☆(^~^) Standup_Kiki(km_target, bbVar_add); Standup_KikiZenbu(tai, bbVar_add); // カウントボードは、1升ずつ、足していくぜ☆(^~^) Masu ms_hit; while (bbVar_add.Ref_PopNTZ(out ms_hit)) { int result_zenbu; CB_kikisuZenbu.Increase1(tai, ms_hit, out result_zenbu); int result_komabetu; CB_kikisuKomabetu.Increase1(km_target, ms_hit, out result_komabetu); } }
/// <summary> /// /// </summary> /// <param name="km_removed"></param> /// <param name="bbVer_remove">注意、このメソッド実行後に0になるぜ☆(^~^)</param> /// <param name="yomiKy"></param> /// <param name="dbg_reigai"></param> /// <param name="hint"></param> /// <param name="changing"></param> /// <returns></returns> public void TorinozokuKiki(Piece km_removed, Bitboard bbVer_remove) { Taikyokusya teban = Med_Koma.KomaToTaikyokusya(km_removed); // 1マスずつ、利きを減らしていくぜ☆(^~^) Masu ms_cur; while (bbVer_remove.Ref_PopNTZ(out ms_cur)) { //──────────────────── // まず 駒別を 減らす //──────────────────── // (1)カウントボードの数字を減らす int result_komabetu; CB_kikisuKomabetu.Decrease1(km_removed, ms_cur, out result_komabetu); // (2)「カウントが無くなったら」ビットをOFFにするんだぜ☆(^~^)まるごとOFFにしてはいけないぜ☆(^~^) if (result_komabetu < 1) { Sitdown_Kiki(km_removed, ms_cur); } //──────────────────── // 次に 対局者別を 減らす //──────────────────── // (1)カウントボードの数字を減らす int result_zenbu; CB_kikisuZenbu.Decrease1(teban, ms_cur, out result_zenbu); // (2)「カウントが無くなったら」ビットをOFFにするんだぜ☆(^~^)まるごとOFFにしてはいけないぜ☆(^~^) if (result_zenbu < 1) { Sitdown_KikiZenbu(teban, ms_cur); } } // 現局面より、利きの数が減っているのが正解 }
public Bitboard RefBB_FromKikisuZenbuPositiveNumber(Taikyokusya tai) { return(CB_kikisuZenbu.CreateBitboard_PositiveNumber(tai)); }
public void SubstructFromKikisuZenbu(Piece km) { CB_kikisuZenbu.Substruct(km, CB_kikisuKomabetu // こっちはクリアーされる ); }