2次元配列で結果を管理する

三流君(TOP) /ASPで遊ぶ /記事一覧
If文の羅列から、2次元配列で結果を管理する処理に変更してみた。
ポイントは、
    '結果の判断
    '         グー(1)  チョキ(2)  パー(3)  ←コンピュータの手
    'グー(1)    2引き分け 1勝ち    3負け
    'チョキ(2) 3負け   2引き分け  1勝ち
    'パー(3)  1勝ち     3負け       2引き分け
    '↑自分の手

    '勝負の結果表を作る
    Dim strCHK(3, 3)  '3x3の結果の表
    strCHK(1, 1) = 2 : strCHK(1, 2) = 1 : strCHK(1, 3) = 3
    strCHK(2, 1) = 3 : strCHK(2, 2) = 2 : strCHK(2, 3) = 1
    strCHK(3, 1) = 1 : strCHK(3, 2) = 3 : strCHK(3, 3) = 2
と、勝敗表をそのまま2次元の配列にしてみました。

じゃんけんゲーム


あなたのお名前は?




コーヒーブレイク たまには寄り道、休憩も(↓広告です):
広告:[Blogで商品紹介] ← 足跡から人気を判断?
[本日発売の商品] ← 発売日が当日の商品を紹介、、、するが効果が無いので → [先週発売の商品] ← を作成して、先走らないで、少し落ち着いてみます(笑)

ASPサンプルソース(プログラムのソースコード)

詳細解説は[http:/asp/backno/asp065.html]を見てください
下記、/cgi-bin/test/test065-2.aspのソース(中身)です

を 使った ソースコードを紹介する

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードは です。 <%@LANGUAGE=VBScript%> <html> <head> <title>2次元配列で結果を管理する</title> </head> <body> <h2>2次元配列で結果を管理する</h2> If文の羅列から、2次元配列で結果を管理する処理に変更してみた。<br> ポイントは、<br> <pre> '結果の判断 '   グー(1) チョキ(2) パー(3) ←コンピュータの手 'グー(1) 2引き分け 1勝ち    3負け 'チョキ(2) 3負け   2引き分け  1勝ち 'パー(3)  1勝ち 3負け 2引き分け '↑自分の手 '勝負の結果表を作る Dim strCHK(3, 3) '3x3の結果の表 strCHK(1, 1) = 2 : strCHK(1, 2) = 1 : strCHK(1, 3) = 3 strCHK(2, 1) = 3 : strCHK(2, 2) = 2 : strCHK(2, 3) = 1 strCHK(3, 1) = 1 : strCHK(3, 2) = 3 : strCHK(3, 3) = 2 </pre> と、<b>勝敗表</b>をそのまま<b>2次元の配列</b>にしてみました。<hr> <h3>じゃんけんゲーム</h3> <% 'ユーザー名が送られていたら、セッション変数にセットする D = Request.QueryString("UNAME") 'データを代入 If Len(D) <> 0 Then 'データあり Session("USERNAME") = D '名前の代入 End If 'パラメータをチェックする、セッション変数に名前が入っているか? USER_NAME = Session("USERNAME") 'Lenで変数の長さをチェックする If Len(Trim(USER_NAME)) = 0 Then '名前が未入力なら Call INPUT_NAME() '名前入力フォームの表示 Else D = Request.QueryString("DATA") 'データを代入(選択された手) If Len(D) = 1 Then 'データあり Call HANTEI(D) '判断用の関数を呼ぶ End If Call INPUT_FORM() '入力用のフォームを表示する、再度入力させる End If %> <hr> </body> </html> <% '名前入力フォームの表示 Sub INPUT_NAME() Response.Write "<HR>" Response.Write "<FORM ACTION='test065-2.asp' METHOD='GET'>" Response.Write "あなたのお名前は?<br>" Response.Write "<INPUT TYPE='text' NAME='UNAME'><br>" Response.Write "<INPUT TYPE='submit' VALUE='名前の登録'><br>" Response.Write "</FORM>" End Sub %> <% '入力フォームの表示(勝負する手を入力) Sub INPUT_FORM() Response.Write "<HR>" Response.Write "<FORM ACTION='test065-2.asp' METHOD='GET'>" Response.Write "<b>" & USER_NAME & "</b>さん、あなたの手は?<br>" Response.Write "<INPUT TYPE='RADIO' NAME='DATA' VALUE='1'>1.グー<br>" Response.Write "<INPUT TYPE='RADIO' NAME='DATA' VALUE='2'>2.チョキ<br>" Response.Write "<INPUT TYPE='RADIO' NAME='DATA' VALUE='3'>3.パー<br>" Response.Write "<INPUT TYPE='submit' VALUE='勝負する'><br>" Response.Write "</FORM>" End Sub %> <% '乱数を発生させて勝負する Sub HANTEI(strNO) 'ユーザーの手を受取り判断する Dim nCON 'コンピュータの手1〜3の数値が入る Dim nPC 'ユーザーさんの手 Dim strTE(3) '(*1)配列変数を宣言 strTE(1) = "グー" '(*2)配列にメッセージを代入 strTE(2) = "チョキ" strTE(3) = "パー" Dim nMSGNO 'メッセージの番号 Dim strMSG(3) 'メッセージ表示用の配列 strMSG(1) = "アナタの勝ちです<br>" 'メッセージの代入 strMSG(2) = "引き分けです<br>" strMSG(3) = "私(コンピュータ)の勝ちです<br>" '入力値の判断、エラーならメッセージを表示させ抜ける '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 USER_NAME & "さんの手は、" Response.Write strTE(nPC) & "です<br>" '(*3)ここでnPC番目を表示 '(*4)同様にコンピュータの手を表示する Response.Write "コンピュータの手は" & strTE(nCON) & "です<br>" '結果の判断 '   グー(1) チョキ(2) パー(3) ←コンピュータの手 'グー(1) 2引き分け 1勝ち    3負け 'チョキ(2) 3負け   2引き分け  1勝ち 'パー(3)  1勝ち 3負け 2引き分け '↑自分の手 '勝負の結果表を作る Dim strCHK(3, 3) '3x3の結果の表 strCHK(1, 1) = 2 : strCHK(1, 2) = 1 : strCHK(1, 3) = 3 strCHK(2, 1) = 3 : strCHK(2, 2) = 2 : strCHK(2, 3) = 1 strCHK(3, 1) = 1 : strCHK(3, 2) = 3 : strCHK(3, 3) = 2 '結果を代入 nMSGNO = strCHK(nPC, nCON) '結果表の値を代入 '結果のメッセージを表示する(メッセージ番号を使用して) Response.Write strMSG(nMSGNO) End Sub %>

最近発売の雑誌を紹介する

今週発売の男性誌です。プログラミング以外にも興味を持って???
  1. カジカジ 2008年 06月号
  2. BEST CLUB (ベストクラブ) 2008年 06月号
  3. SpyMaster (スパイマスター) 東海版 2008年 06月号
  4. KING (キング) 2008年 06月号
  5. men's egg (メンズエッグ) 2008年 06月号
  6. Ollie (オーリー) 2008年 06月号
  7. BRUTUS (ブルータス) 2008年 6/1号
  8. Pen (ペン) 2008年 6/1号
  9. おとなの週末 2008年 06月号

人気の書籍を紹介します

  1. [4000281623]- 魂(アニマ)への態度──古代から現代まで(双書 哲学塾)
  2. [4093877661]- アイドルのウエストはなぜ58センチなのか―数のサブリミナル効果
  3. [4140911093]- 刺青とヌードの美術史―江戸から近代へ (NHKブックス 1109)
  4. [4756911994]- 視覚マーケティングのススメ
  5. [4094082549]- 受験のシンデレラ (小学館文庫 わ 8-1)
  6. [4121019369]- アダム・スミス―「道徳感情論」と「国富論」の世界 (中公新書 1936)

評価や感想気軽に送っていただけると嬉しいです

HPを読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る(気軽に質問・感想書いてください)
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります
※Ken3への連絡先 → [http://ken3-info.blog.ocn.ne.jp/day/2007/06/ken3_b6ba.html] 気軽に問い合わせてください

Googleで関連項目を検索する

LANGUAGE=VBScript + [キーワード:] Sub|Function プログラム|プログラミング
↓で検索するとプログラムの例 Sub/Function でまとまったHP

Google

あれ?私のページが検索に載ってない(笑)一度お試しを(私のページに、また戻ってきてね(爆))

三流解説とリンクページを紹介

ASP系の解説を項目ごとにまとめてみました

[ASP Form等を使用したデータのやり取り]
[ASP その他処理サンプル]
[ASP テキストファイル処理]
[ASP VBScript関数関係の説明]
[ASP ADOでMdbファイルを使う]
[ASP ADOでExcelと接続してみた]

その他:blogや広告↓
[日記的なblog]← あまり更新してないけど・・・
[三流なプログラムコード]← 恥ずかしいのであまり載せてないけど・・・
[通販商品の足跡を紹介]←通販商品などを紹介してます



旅行ガイドブックを購入する

ハードなプロジェクトが完了したら、少しリフレッシュしてみては?
[旅行情報・ガイドブックを探す]
最近聞かなくなったけど、システムの打ち合わせを合宿でやる・・・とか
※実際は旅館で一杯、親睦会って感じだけど。
現在時刻は、2008/05/17 15:59:45です。
[Topへ戻る] −−>[ASP系へ戻る] −−>[バックナンバーを見る]