今回、扱うのはゲームの終了判定の部分です。
ゲームが終了するのは1~15までの数字とブランクパネルが
初期状態に配置され直したときです。
まず、どのタイミングでゲームの終了判定をするかということを
考えなければいけません。プログラマーには、プレーヤーの何回目の
パネル移動でゲームが終了するかをしることはできません。1回目で
あがりになるかもしれないし、100回目かもしれません。
したがって、プレーヤーのパネル操作1回ごとにゲームの終了判定を
しなければなりません。
厳密に言えばゲームの開始時にすでにあがっている状態、
すなわち麻雀で言えば天和ということも、可能性としてはあります。したがって
そこまで考慮するならば、最初のパネルシャッフル時に天和の時には
さらにシャッフルを繰り返すというコードを付け加えた方がいいのですが
天和は滅多にあることではないので、今回はそこまでは致しません。
コードは下のようになります。
Function IsGameOver() As Boolean
%i=1
IsGameOver=True
For %y = 5 To 8
For %x = 2 To 5
If %i = 16 Then
%i = ""
End If
If Cells(%y, %x)<> %i Then
IsGameOver=False
End If
%i=%i+1
Next
Next
End Function
いよいよ、15パズルの最終回がちかくなってきました。
次回は全コードを掲示します。
sympa mais aujourd’hui” il faut “a visiter mon site immobilier
投稿情報: Bella | 2014年1 月24日 (金曜日) 午前 06時47分