移動先番号指定の`moveRank()`実行時、`$position`の値が検査されていません。 マイナスの値が入力された場合は`rank`の最大値を超えてしまう場合があります。 「1~`rank`最大値」の値が入力されたかを判定するべきかと思います。
移動先番号指定の
moveRank()実行時、$positionの値が検査されていません。マイナスの値が入力された場合は
rankの最大値を超えてしまう場合があります。「1~
rank最大値」の値が入力されたかを判定するべきかと思います。