WindowsにはVBスクリプトという簡易プログラム実行環境が標準で備わっていて、例えばここから下のテキストを拡張子vbsで保存して実行すると簡単な数当てゲームが楽しめます '------------ 数当てゲーム ------------ '定数宣言 const S_ipbox_title ="[数当てゲーム]" const S_msg_title = "[数当てゲーム結果]" '-----mainルーチン呼び出し----- game_main() '-----GAME MAIN ルーチン------ Sub game_main() '--変数宣言 Dim iAnsData '--解答データ(数値) Dim iInputData '--入力データ(数値) Dim iInputCnt '--入力回数(数値) '--変数型を明確にする為に数字で初期化(これで数値を扱う変数として認識される) iAnsData = 0 iInputData = 0 iInputCnt = 0 '--ついでに入力回数初期化 iAnsData = make_data() '--解答データ作成 Do '--処理ループ(無限ループ) iInputData = input_data() '--データ入力:キャンセル時は強制終了する iInputCnt = iInputCnt + 1 '--入力回数インクリメント If iInputData < iAnsData Then '--入力データが答えより小さかったとき Msgbox "答えはもっと大きい数です",vbInformation,S_msg_title ElseIf iInputData > iAnsData Then '--入力データが答えより大きかったとき Msgbox "答えはもっと小さい数です",vbInformation,S_msg_title Else '--入力データが正解のとき Call ans_retry(iAnsData , iInputCnt) '--正解処理:リトライ確認時[いいえ]選択で強制終了する iAnsData = make_data() '--解答データ作成 iInputCnt = 0 '--入力回数初期化 End If Loop End Sub '-----解答データ作成ルーチン----- Function make_data() Dim iMakeDat Randomize '--乱数の初期値設定 iMakeDat = Int(Rnd * 100)+1 '--解答データ生成(1~100) make_data = iMakeDat '--戻り値設定 End Function '-----データ入力ルーチン:入力範囲確認処理つき----- Function input_data() Dim iInData Do '--入力用無限ループ '--数値入力 iInData = inputbox("パソコンが用意した1~100の"& vbCrLf & "数値を当ててね!" _ & vbCrLf & vbCrLf & "数値はいくつですか" ,S_ipbox_title) If iInData = "" Then '--入力キャンセル処理:ゲーム終了 WScript.Quit ElseIf IsNumeric(iInData) = False Then '--禁則入力:数値ではない入力判定 Msgbox "入力は1~100の数値のみ有効です"& vbCrLf &"再入力してください", _ vbExclamation,S_msg_title ElseIf iInData > 100 Then '--禁則入力:範囲外(大)判定 Msgbox "入力範囲外です"& vbCrLf &"再入力してください",vbExclamation,S_msg_title ElseIf iInData =< 0 Then '--禁則入力:範囲外(小)判定 Msgbox "入力範囲外です"& vbCrLf &"再入力してください",vbExclamation,S_msg_title Else Exit Do '--正しい範囲の入力データのときループを抜ける End If Loop input_data = Int(iInData) '--戻り値設定:整数値に変換して戻す End Function '-----正解&リトライ確認処理----- Sub ans_retry(iAnsData , iInputCnt) Dim bRetry '--リトライ確認結果 bRetry=Msgbox ("正解です!!" & vbCrLf & vbCrLf &"答えは" & iAnsData & "でした"& vbCrLf & iInputCnt _ & "回で正解です" & vbCrLf & vbCrLf & "もう一度挑戦しますか?",vbYesNo,S_msg_title) If bRetry=vbNo Then '--リトライ確認[いいえ]選択時の処理 WScript.Quit '--ゲーム終了 End If End Sub
ちゃーりー