HSP3 ゲームのプログラミング | |
○×・ゲーム制作 |
(6) 勝敗判定の処理
勝敗判定の処理はサブルーチンhanteiに作成する。リーチかどうか判定したとき、縦横斜めの合計が2または-2のときリーチと判定した。したがって、勝敗は合計が3または-3のとき勝敗が決定したと判定できる。
処理の概要は次の通りである。
- 勝敗を判定する。勝ち、負けのメッセージを表示する。変数rhanteiを1にして戻る。
- 置き場所があるか調べる。置き場所があれば、変数rhanteiを0にして戻る。
置き場所がなければ、引き分けである。
「1.勝敗判定」は、リーチ判定の計算がそのまま使える。
rhantei = 0 ;勝敗未決
repeat 8
cnt1 = cnt * 3
gk = ff(chk(cnt1)) + ff(chk(cnt1 + 1)) + ff(chk(cnt1 + 2))
if gk = -3 {
dialog "コンピュータの勝ちです。"
rhantei = 1
break
}
if gk = 3 {
dialog "あなたの勝ちです。"
rhantei = 1
break
}
loop
if rhantei = 1 : return
「2.置き場所を調べる」は、変数rhanteiを1にしておき、9カ所順に調べ、1カ所でも空きがあれば、変数rhanteiを0にして戻る。
空きがなければ、引き分けである。
rhantei = 1 ;勝敗決定
repeat 9
if ff(cnt) = 0 : rhantei = 0 : break ;空きあれば勝敗未決
loop
if rhantei = 0 : return
dialog "引き分けです。"
return
.
(ox65.hsp)
勝敗判定の処理を追加する。
(ox66.hsp)
ゲーム開始前に、先攻・後攻・終了が選択できるように処理を追加する。
dialog命令には、[OK]ボタンが1つ、[はい]、[いいえ]ボタンが2つのダイアログしかないので、ここでは、ウィンドウにボタンのオブジェクトを配置して、先攻・後攻・終了が選択できるようにする。
button
○×・ゲーム制作 | |
2007 © Hiroshi Masuda |