MoveFlagをインクリメントした時
https://gyazo.com/d1053f1cc69f81a7274bc60aaeff7b4f
Q1: MoveFlagでフラグの移動先をMoveFlagにできるか
Q2: MoveFlagにインクリメントトークンが置かれていて {2} 以上になっており、かつ移動元のコマンドにフラグが4つ置かれている状態の時、そのコマンドをもう一方のフラグの移動先として選ぶことができるか
Q3: また、上記ができる場合、2つの移動元コマンドが4つのフラグで埋まっており、移動先をお互いが選ぶようなデッドロックのような状況の時は移動可能かどうか
MoveFlagの効果を詳細に書くと以下のようになります。
1: このコマンド以外のコマンドを1枚選ぶ(X)。
2: Xの上にあるフラグ1個を選ぶ(A)
3: X以外のコマンドを1枚選ぶ(Y)。
4: AをYの末尾へ移動する。
5: 1〜4を{1}回繰り返す。
Q1: MoveFlagでフラグの移動先をMoveFlagにできるか
できます
Q2: MoveFlagにインクリメントトークンが置かれていて {2} 以上になっており、かつ移動元のコマンドにフラグが4つ置かれている状態の時、そのコマンドをもう一方のフラグの移動先として選ぶことができるか
2回の移動は順次行われるので、最初Xに4枚フラグが乗っていたとしても、MoveFlagの1回目の実行でXのフラグが3枚に減ったのなら、2回目の実行でXを移動先にできます
Q3: 2つの移動元コマンドが4つのフラグで埋まっており、移動先をお互いが選ぶようなデッドロックのような状況の時は移動可能か
XとYがそれぞれ4枚のフラグを持っている場合、XとYのフラグを交換するような移動はできません。
2回の移動は順次行われます。「1回目の実行」に注目しましょう
XとYがそれぞれ4枚のフラグを持っている場合、1回目の実行でXもYも既にフラグが4枚あるから移動先に選べません。