ハズレ/小役/ボーナス/重複(小役優先)の全フラグ状態で、合法スベリを引き込み優先順(役を揃える→取りこぼし目→リーチ目/チャンス目→通常目)で返す制御を生成・網羅検証。成果物は JSON / C#(ValidSlips(state,…))。何コマ滑らせるか(採用)はゲーム側が決めます。
BIG中:ハズレ/BIG中:小役:〇〇 が生成されます。「通常時のみ」の小役はBIG中では見た目にも揃えません(蹴飛ばし)。
BIG中:小役:〇〇)だけで揃い、通常時は不可視(並んでもただのハズレ目=禁止目にはなりません)。「通常時のみ」はBIG中では見た目にも揃えません(蹴飛ばす=禁止目)。取りこぼし目は対象小役のモードでのみ参照されます(BIG専用小役の取りこぼし目はBIG中のみ)。BIG中の禁止目は「ボーナス図柄の整列+通常時のみ小役の整列」で、リーチ目/チャンス目は出ても構いません(狙っては出しません)。ReelStopValidator.cs が保存され、Unity等にファイルを1つ追加するだけで使えます。何コマ滑らせるか(採用)はゲーム側が決めます。int[] 合法スベリ = ReelStopValidator.ValidSlips(state, order, 停止番号, 既に止めた位置, 押した位置[, スベリ優先]);state(状態)… "ハズレ" / "小役:<名>" / "ボーナス:<名>" / "ボーナス:<名>+小役:<名>"(重複)/ "BIG中:ハズレ" / "BIG中:小役:<名>"(BIG中モード)。定義済みキーは Control.Keysorder(押し順)… "順押し" "ハサミ"1、2本目=2、3本目=3new int[0]){0,1,2,3,4}CanAlign / AlignSlips / MissSlips / ReachSlips / LoseSlips(state, order, step, prior, push) で tier別にも取得可。var a=AlignSlips(...); int s = a.Length>0 ? a[0] : ReachSlips(...)[0];s から
止める位置 = (押した位置 - s + リール長) % リール長(上→下回転=index 降順に滑る)、基準段の図柄 = Reels[リール][止める位置]。var seq = Control[state][order].Seq;int n0=Reels[seq[0]].Length; int s1 = ValidSlips(state, order, 1, new int[0], p1)[0]; int stop1 = ((p1-s1)%n0+n0)%n0;int n1=Reels[seq[1]].Length; int s2 = ValidSlips(state, order, 2, new[]{stop1}, p2)[0]; int stop2 = ((p2-s2)%n1+n1)%n1;int n2=Reels[seq[2]].Length; int s3 = ValidSlips(state, order, 3, new[]{stop1, stop2}, p3)[0]; int stop3 = ((p3-s3)%n2+n2)%n2;Control[state][order].Seq(0=左,1=中,2=右)。[0] 以外の任意のスベリを選んでも、その状態の禁止目は出ません。互換用に旧 Haz[...]/ValidSlips(order,…)(ハズレ専用)も併載。