public void Tukurinaosi_Copy(KikisuKomabetuCountboardItiran source) { valueKmMs = new int[source.valueKmMs.Length][]; for (int i = 0; i < valueKmMs.Length; i++) { valueKmMs[i] = new int[source.valueKmMs[i].Length]; Array.Copy(source.valueKmMs[i], valueKmMs[i], source.valueKmMs[i].Length); } }
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); }
public void Import(KikisuKomabetuCountboardItiran src) { for (int iKm = 0; iKm < Conv_Koma.itiran.Length; iKm++) { int length = Math.Min(valueKmMs[iKm].Length, src.GetArrayLength((Piece)iKm)); for (int iMs = 0; iMs < length; iMs++) { this.valueKmMs[iKm][iMs] = src.Get((Piece)iKm, (Masu)iMs); } } }
/// <summary> /// 引き算 /// </summary> /// <param name="km"></param> /// <param name="cbKomabetu_clear">こっちはクリアーされる</param> public void Substruct(Piece km, KikisuKomabetuCountboardItiran cbKomabetu_clear) { Taikyokusya tai = Med_Koma.KomaToTaikyokusya(km); for (int iMs = 0; iMs < valueTaiMs[(int)tai].Length; iMs++) { int num = cbKomabetu_clear.Get(km, (Masu)iMs); valueTaiMs[(int)tai][iMs] -= num; valueTai[(int)tai] -= num; } cbKomabetu_clear.Tukurinaosi_Clear(km); }
public KikisuKomabetuCountboardItiran(KikisuKomabetuCountboardItiran src) { Tukurinaosi_Copy(src); }