public KikiBan(KikiBan src) { yomiKikiBan = new YomiKikiBan(this); BB_kikiKomabetu = new KikiKomabetuBitboardItiran(src.BB_kikiKomabetu); BB_kikiZenbu = new KikiZenbuBitboardItiran(src.BB_kikiZenbu); CB_kikisuKomabetu = new KikisuKomabetuCountboardItiran(src.CB_kikisuKomabetu); CB_kikisuZenbu = new KikisuZenbuCountboardItiran(src.CB_kikisuZenbu); bbVar_kiki_forOku = new Bitboard(src.bbVar_kiki_forOku); bbVar_forTorinozokuMethod = new Bitboard(src.bbVar_forTorinozokuMethod); }
/// <summary> /// 駒別の利き を先に作っておいて、それをまとめるだけだぜ☆(^~^) /// </summary> /// <param name="bb_sourceKomabetuKiki"></param> public void Tukurinaosi_Remake(KikiKomabetuBitboardItiran bb_sourceKomabetuKiki) { Util_Bitboard.ClearBitboards(valueTai); foreach (Piece km_all in Conv_Koma.itiran) { Taikyokusya tai = Med_Koma.KomaToTaikyokusya(km_all); //Komasyurui ks = Med_Koma.KomaToKomasyurui(km); bb_sourceKomabetuKiki.ToStandup(km_all, valueTai[(int)tai]); //valueTai[(int)tai].Standup(bb_sourceKomabetuKiki.RefBB_Kiki(km)); } }
//public bool Equals(Koma km_key, Bitboard bb_target) //{ // return valuesKm[(int)km_key].Equals(bb_target); //} public bool Equals(Piece km_key, KikiKomabetuBitboardItiran sameObject_target) { return(valuesKm[(int)km_key].Equals(sameObject_target.valuesKm[(int)km_key])); }
public void Tukurinaosi_Copy(KikiKomabetuBitboardItiran src) { valuesKm = new Bitboard[src.valuesKm.Length]; Array.Copy(src.valuesKm, valuesKm, src.valuesKm.Length); }
public KikiKomabetuBitboardItiran(KikiKomabetuBitboardItiran src) { Tukurinaosi_Copy(src); }