public static void MukiToOffsetSujiDan(Hogaku muki, Playerside pside, out int offsetSuji, out int offsetDan) { offsetSuji = 0; offsetDan = 0; switch (muki)//先手の場合 { case Hogaku.: offsetDan = -1; break; case Hogaku.昇: offsetSuji = -1; offsetDan = -1; break; case Hogaku.射: offsetSuji = -1; break; case Hogaku.沈: offsetSuji = -1; offsetDan = +1; break; case Hogaku.引: offsetDan = +1; break; case Hogaku.降: offsetSuji = +1; offsetDan = +1; break; case Hogaku.滑: offsetSuji = +1; break; case Hogaku.浮: offsetSuji = +1; offsetDan = -1; break; default: break; } if (pside == Playerside.P2) { offsetSuji *= -1; offsetDan *= -1; } }
/// <summary> /// ************************************************************************************************************************ /// 1マス上、のように指定して、マスを取得します。 /// ************************************************************************************************************************ /// </summary> /// <param name="offsetSuji"></param> /// <param name="offsetDan"></param> /// <returns></returns> public static SyElement Offset(Okiba okiba, SyElement masu, Playerside pside, Hogaku muki) { int offsetSuji; int offsetDan; Util_Muki.MukiToOffsetSujiDan(muki, pside, out offsetSuji, out offsetDan); int suji; int dan; Util_MasuNum.MasuToSuji(masu, out suji); Util_MasuNum.MasuToDan(masu, out dan); return(Util_Masu.OkibaSujiDanToMasu( okiba, suji + offsetSuji, dan + offsetDan)); }