[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.050 値を受取り、判断を行う 簡単なじゃんけんゲーム

値を受取り、判断を行う 簡単なじゃんけんゲーム



本文(発行内容)


<値を受取り、判断を行う 簡単なじゃんけんゲーム>

こんにちは、三流プログラマーのKen3です。 今回は、少し発行感覚が開いたので、 復習兼ねて、乱数を使ったじゃんけんゲームを作成してみます。 拾い読みして、何かの参考となれば幸いです。

/* * 1.やりたいことをまとめる、仕様を書く */

ユーザーから1.グー2.チョキ3.パーを受け取り、 コンピュータは乱数1〜3(グー、チョキ、パー)を発生させる。 勝敗を判断して、画面に表示する。 へぇ〜 で、データはどうやって受け取るの? いつものGETでクエリーに載せて受け取りたいと思います。 入力 ユーザーから1.グー2.チョキ3.パー 処理 乱数を発生させ、コンピュータの手を決める 勝敗の判断 出力 勝敗を出力する エラー処理(チェック処理) ユーザーからの手が1〜3かチェックする

/* * 2.処理を書く */

1グー、2チョキ、3パーの値を受取りコンピュータとジャンケンを行います。 HTMLでフォームのやりとりは、、 <FORM ACTION="XXX"> で行います。 <FORM ACTION="g001.asp" METHOD="GET"> あなたの手は?<br> <INPUT TYPE="RADIO" NAME="DATA" VALUE="1">1.グー<br> <INPUT TYPE="RADIO" NAME="DATA" VALUE="2">2.チョキ<br> <INPUT TYPE="RADIO" NAME="DATA" VALUE="3">3.パー<br> <INPUT TYPE="submit" VALUE="勝負する"><br> </FORM> こんな感じで、ラジオボタンの選択にしてみました。 GETで送信しているので、 D = Request.QueryString("DATA") 'データを代入 とQueryStringで受けます。 あとは、乱数でコンピュータの手1から3を発生させて判断してます。 http://www.ken3.org/cgi-bin/g/g001.asp?DATA=1 グー http://www.ken3.org/cgi-bin/g/g001.asp?DATA=2 チョキ http://www.ken3.org/cgi-bin/g/g001.asp?DATA=3 パー と、アンケートのようにメールのURLクリックしてもOKにします。 <%@LANGUAGE=VBScript%> <html> <head> <title>ジャンケンゲームで遊ぶ</title> </head> <body> <h2>ジャンケンゲームで遊ぶ</h2> 受取ったパラメータは<br>[<%=Request.QueryString("DATA")%>]<hr> <% 'Lenで変数の長さをチェックする D = Request.QueryString("DATA") 'データを代入 If Len(D) = 1 Then 'データあり Call HANTEI(D) '判断用の関数を呼ぶ End If %> <HR> <FORM ACTION="g001.asp" METHOD="GET"> あなたの手は?<br> <INPUT TYPE="RADIO" NAME="DATA" VALUE="1">1.グー<br> <INPUT TYPE="RADIO" NAME="DATA" VALUE="2">2.チョキ<br> <INPUT TYPE="RADIO" NAME="DATA" VALUE="3">3.パー<br> <INPUT TYPE="submit" VALUE="勝負する"><br> </FORM> <br> </body> </html> <% '乱数を発生させて勝負する
Sub HANTEI(strNO)  'ユーザーの手を受取り判断する

    Dim nCON  'コンピュータの手1〜3の数値が入る
    Dim nPC   'ユーザーさんの手
    Dim strTE(3) '(*1)配列変数を宣言

    strTE(1) = "グー"   '(*2)配列にメッセージを代入
    strTE(2) = "チョキ"
    strTE(3) = "パー"

    '入力値の判断、エラーならメッセージを表示させ抜ける
    'If文で1,2,3以外を判断する
    If strNO <> "1" And strNO <> "2" And strNO <> "3" Then
        Response.Write "[" & strNO & "]は不正な入力です"
        Exit Sub  '<--Exit Subを使用してここでプログラムを抜ける
    End If

    'コンピュータの手を決定
    Randomize   ' 乱数発生ルーチンを初期化します。
    nCON = Int((3 * Rnd) + 1)  '1 から 3 までの乱数を発生させます。

    '結果判断と表示
    'ユーザーの手を表示する
    nPC = CInt(strNO) 'CInt関数で数値型に変換する
    Response.Write "あなたの手は" & strTE(nPC) & "です<br>" '(*3)ここでnPC番目を表示

    '(*4)同様にコンピュータの手を表示する
    Response.Write "コンピュータの手は" & strTE(nCON) & "です<br>"

    '結果の判断
    'まず、引き分けを判断
    If nPC = nCON Then Response.Write "引き分けです<br>"

    '次に自分が勝ちの手を判断 グーvsチョキ,チョキvsパー,パーvsグー
    If nPC = 1 And nCON = 2 Then Response.Write "アナタの勝ちです<br>"
    If nPC = 2 And nCON = 3 Then Response.Write "アナタの勝ちです<br>"
    If nPC = 3 And nCON = 1 Then Response.Write "アナタの勝ちです<br>"

    'コンピュータが勝ちか判断 グーvsパー,チョキvsグー,バーvsチョキ
    If nPC = 1 And nCON = 3 Then Response.Write "私(コンピュータ)の勝ちです<br>"
    If nPC = 2 And nCON = 1 Then Response.Write "私(コンピュータ)の勝ちです<br>"
    If nPC = 3 And nCON = 2 Then Response.Write "私(コンピュータ)の勝ちです<br>"

End Sub
%>
こんな感じです。

/* * 3.ポイントは? */

まず、頭に<script>タグを書き、 <%@ LANGUAGE=VBScript %> あとは、普通にHTMLを書いて、 サーバー側の処理を記述したい場合は、 <% と   ここの間がサーバーで処理される %> で囲えばいいんだぁ。 <% 〜 %>内に、VBScript(VBAに似てるけど微妙に違う)を記述する。 [No.01 Response.Writeで遊ぶ] ( http://www.ken3.org/backno/backno_asp01.html#1 を参照) で、そんな説明をいきなりしてました(笑) [No.03 乱数を使用して今日の運を表示] ( http://www.ken3.org/backno/backno_asp01.html#3 を参照) では、 Response.Write n は <%=変数%> と書ける方法を紹介、乱数Rnd関数を使ってみました。 今回は、 'コンピュータの手を決定 Randomize ' 乱数発生ルーチンを初期化します。 nCON = Int((3 * Rnd) + 1) '1 から 3 までの乱数を発生させます。 で、使いました。 [No.16 入力、結果表示を1つに、Subで関数分割] ( http://www.ken3.org/backno/backno_asp04.html#16 を参照) で関数を使用して、分割しCallで呼ぶ方法を解説してます 自分自身を呼ぶプログラムを説明しました。 [No.08 URLに付けたパラメータを参照(クエリ情報)] ( http://www.ken3.org/backno/backno_asp02.html#8 を参照) では、 URLに付けた情報 test007-2.asp?ID=123 ?の後ろがパラメーターを取出す Request.QueryString("項目名")をやりました。 GETで送ると、 http://www.ken3.org/cgi-bin/g/g001.asp?DATA=1 グー http://www.ken3.org/cgi-bin/g/g001.asp?DATA=2 チョキ http://www.ken3.org/cgi-bin/g/g001.asp?DATA=3 パー と、アンケートのようにメールのURLクリックしてもOKになることを [No.09 URLに付けたパラメータを参照(クエリ情報)] ( http://www.ken3.org/backno/backno_asp02.html#9 を参照) でフォームの値をURLに載せて、ASPが呼ばれてることを説明しました。

/* * 4.終わりの挨拶 </HTML> */

今回は、軽く過去のメルマガをまとめてみました。 単体じゃなく、そろそろつなげて1本システムもどきを作りたいですね。 そんな話しの続きは(自分のメルマガ宣伝) http://www.ken3.org/backno/backno_guchi28.html#142 で、[トンネルの話、貫通後、横に広げるのは簡単?] といいかげんなこと書いてます。お時間のある人は見て笑ってください。 ファイルやDB関係がからんでいない処理なので、 わかりやすかったと思います。 次は、DB関係をまとめよう。。。といいつつ、また違うネタにしたり(笑) ※次回をお楽しみに。。。 ASP、VBScript勉強中の三流プログラマーのKen3でした。


ページフッター

ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、

三流君へ メッセージを送る

感想や質問・要望・苦情など 三流君へメッセージを送る。
返信例 XXXXさんへ
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)

種類別のリンク や 広告など

[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


Blogとリンク:[三流君のMemo別館]/ [ASP 三流君のソースコード置き場]/ [Ken3Video YouTubeで動画解説]
広告:

気になった ジャンル ↓を選択してください。

まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。

次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません

広告:



DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く

VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。



[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


広告: