/// <summary> /// 合法手レベル1 /// </summary> /// <returns></returns> public static SySet <SyElement> Create_01Fu(Playerside pside, SyElement masu_ji) { //---------------------------------------- // 歩 //---------------------------------------- SySet_Default <SyElement> dst = new SySet_Default <SyElement>("歩の移動先"); if (Okiba.ShogiBan == Conv_SyElement.ToOkiba(masu_ji)) { //---------------------------------------- // 将棋盤上の歩の移動先 //---------------------------------------- dst.AddSupersets(KomanoKidou.DstIppo_上(pside, masu_ji)); } else if ((Okiba.Sente_Komadai | Okiba.Gote_Komadai).HasFlag( Conv_SyElement.ToOkiba(masu_ji))) { //---------------------------------------- // 駒台上の歩の移動先 //---------------------------------------- dst.AddSupersets(KomanoKidou.Dst_歩打面(pside)); } return(dst); }
/// <summary> /// 合法手レベル1 /// </summary> /// <returns></returns> public static SySet <SyElement> Create_02Kyo(Playerside pside, SyElement masu_ji) { SySet_Default <SyElement> dst = new SySet_Default <SyElement>("香の移動先"); if (Okiba.ShogiBan == Util_Masu.Masu_ToOkiba(masu_ji)) { dst.AddSupersets(KomanoKidou.DstKantu_上(pside, masu_ji)); } else if ((Okiba.Sente_Komadai | Okiba.Gote_Komadai).HasFlag( Util_Masu.Masu_ToOkiba(masu_ji))) { dst.AddSupersets(KomanoKidou.Dst_歩打面(pside));//香も同じ } return(dst); }
/// <summary> /// 合法手レベル1 /// </summary> /// <returns></returns> public static SySet <SyElement> Create_03Kei(Playerside pside, SyElement masu_ji) { SySet_Default <SyElement> dst = new SySet_Default <SyElement>("桂の移動先"); if (Okiba.ShogiBan == Util_Masu.Masu_ToOkiba(masu_ji)) { dst.AddSupersets(KomanoKidou.DstKeimatobi_駆(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKeimatobi_跳(pside, masu_ji)); } else if ((Okiba.Sente_Komadai | Okiba.Gote_Komadai).HasFlag( Util_Masu.Masu_ToOkiba(masu_ji))) { dst.AddSupersets(KomanoKidou.Dst_桂打面(pside)); } return(dst); }
/// <summary> /// 合法手レベル1 /// </summary> /// <returns></returns> public static SySet <SyElement> Create_08Kaku(Playerside pside, SyElement masu_ji) { SySet_Default <SyElement> dst = new SySet_Default <SyElement>("角の移動先"); if (Okiba.ShogiBan == Conv_SyElement.ToOkiba(masu_ji)) { dst.AddSupersets(KomanoKidou.DstKantu_昇(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_沈(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_降(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_浮(pside, masu_ji)); } else if ((Okiba.Sente_Komadai | Okiba.Gote_Komadai).HasFlag( Conv_SyElement.ToOkiba(masu_ji))) { dst.AddSupersets(KomanoKidou.Dst_全打面(pside)); } return(dst); }
/// <summary> /// 合法手レベル1 /// </summary> /// <returns></returns> public static SySet <SyElement> Create_05Kin(Playerside pside, SyElement masu_ji) { SySet <SyElement> dst = new SySet_Default <SyElement>("金の移動先"); if (Okiba.ShogiBan == Util_Masu.Masu_ToOkiba(masu_ji)) { dst = Rule01_PotentialMove_15Array.CreateKin_static(pside, masu_ji); } else if ((Okiba.Sente_Komadai | Okiba.Gote_Komadai).HasFlag( Util_Masu.Masu_ToOkiba(masu_ji))) { dst.AddSupersets(KomanoKidou.Dst_全打面(pside)); } return(dst); }
/// <summary> /// 合法手レベル1 /// </summary> /// <returns></returns> public static SySet <SyElement> Create_10Uma(Playerside pside, SyElement masu_ji) { SySet_Default <SyElement> dst = new SySet_Default <SyElement>("馬の移動先"); if (Okiba.ShogiBan == Util_Masu.Masu_ToOkiba(masu_ji)) { dst.AddSupersets(KomanoKidou.DstIppo_上(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_昇(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_射(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_沈(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_引(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_降(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_滑(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstKantu_浮(pside, masu_ji)); } else if ((Okiba.Sente_Komadai | Okiba.Gote_Komadai).HasFlag( Util_Masu.Masu_ToOkiba(masu_ji))) { dst.AddSupersets(KomanoKidou.Dst_全打面(pside)); } return(dst); }
public static SySet <SyElement> CreateKin_static(Playerside pside, SyElement masu_ji) { SySet_Default <SyElement> dst = new SySet_Default <SyElement>("カナゴマの移動先"); if (Okiba.ShogiBan == Util_Masu.Masu_ToOkiba(masu_ji)) { dst.AddSupersets(KomanoKidou.DstIppo_上(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_昇(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_射(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_引(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_滑(pside, masu_ji)); dst.AddSupersets(KomanoKidou.DstIppo_浮(pside, masu_ji)); } return(dst); }