バックギャモンは誰もがよく知っているパズル ゲームで、関連するゲーム ソフトウェアも多数あります。開発環境として ASP を使用しているため、インターネット上で非常に人気のある新しいバックギャモンを厳粛に紹介します。 . ブラウザさえあれば、対戦時にクライアントソフトをダウンロードする必要はありません。このゲームはローカル エリア ネットワーク上でもプレイできます。
ASP については、これまでの記事ですでに多くのことを述べてきましたので、あまり説明したくありません。
ゲームの流れはこんな感じです。まずログインすると、戦場が金星、木星、火星、土星の5つから選べます。金星、そうでない場合は、他の惑星を順番に選択できます。この惑星に挑戦者がいない場合は、あなたが挑戦者として参加する必要があります。そうすれば、他の人があなたと競うことができます。もちろん、すべての惑星で戦争が始まっている場合は、しばらく待つ必要があります。
挑戦者としてログインすると、他のプレイヤーが戦うのを待つことができます。攻撃者としてログインすると、すぐに挑戦者との戦闘を開始できます。戦闘が始まったら、リングリーダーが黒で先手を取り、その後攻撃側が動き出す、という具合に進みます。最終的な決定が下されると、対応するプロンプトが表示されます。
サイトにはいくつかのメイン ファイルがあります。
Index.asp ログイン ファイル:
Index0.asp 中間ファイル:
Match.asp 一致ファイル:
Back0.jpg white0.jpg black0.jpg 中央で使用されているグラフィック ファイルは、以下に示すように、それぞれチェス盤、白石、黒石を参照しています。
プログラムの初期化中に、チェス盤をいくつかのテーブルに分割し、その中に背景画像を入れてチェス盤を形成し、チェスの駒を配置した後、その画像を対応する白または黒の駒に置き換えます。
まずログイン ファイルを見てみましょう。
<%@ 言語=VBScript %>
<HTML>
<頭>
<メタ名=GENERATOR コンテンツ=Microsoft Visual Studio 6.0>
<タイトル>スター・ウォーズ:5人の息子コンテスト! </タイトル>
</頭>
<ボディ>
<p align=center><font size=6>スター・ウォーズ</font></P>
<表の境界線=1 幅=80% 整列=中央>
<tr><td>プラネット</td><td>チャレンジ</td><td>バトル</td><td>アタック</td></tr>
<tr>
<td>ヴィーナス</td>
<td>
<%
if application(first1)= then
%>
<フォームアクション=index0.asp?flag=First1メソッド=ポスト>
<INPUT id=text1 name=txtFirst1 size=10><INPUT id=submit1 name=submit1
タイプ=送信値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(最初の1)
終了する場合
%>
</td>
<td>戦争</td>
<td>
<%
if application(2 番目 1)= then
%>
<フォームアクション=index0.asp?flag=秒1メソッド=ポスト>
<INPUT id=text1 name=txtSecond1 size=10><INPUT id=submit1
名前=送信1 タイプ=送信 値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(Second1)
終了する場合
%>
</td>
</tr>
<tr>
<td>ジュピター</td>
<td>
<%
if application(first2)= then
%>
<フォームアクション=index0.asp?flag=First2メソッド=ポスト>
<INPUT id=text1 name=txtFirst2 size=10><INPUT id=submit1 name=submit1
タイプ=送信値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(first2)
終了する場合
%>
</td>
<td>戦争</td>
<td>
<%
if application(second2)= then
%>
<フォームアクション=index0.asp?flag=セカンド2メソッド=ポスト>
<INPUT id=text1 name=txtSecond2 size=10><INPUT id=submit1
名前=送信1 タイプ=送信 値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(Second2)
終了する場合
%>
</td>
</tr>
<tr>
<td>ヴィーナス</td>
<td>
<%
if application(first3)= then
%>
<フォームアクション=index0.asp?flag=First3メソッド=ポスト>
<INPUT id=text1 name=txtFirst3 size=10><INPUT id=submit1 name=submit1
タイプ=送信値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(最初の3)
終了する場合
%>
</td>
<td>戦争</td>
<td>
<%
if application(second3)= then
%>
<フォームアクション=index0.asp?flag=second3メソッド=ポスト>
<INPUT id=text1 name=txtSecond3 size=10><INPUT id=submit1
名前=送信1 タイプ=送信 値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(Second3)
終了する場合
%>
</td>
</tr>
<tr>
<td>ヴィーナス</td>
<td>
<%
if application(first4)= then
%>
<フォームアクション=index0.asp?flag=First4メソッド=ポスト>
<INPUT id=text1 name=txtFirst4 size=10><INPUT id=submit1 name=submit1
タイプ=送信値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(最初の4)
終了する場合
%>
</td>
<td>戦争</td>
<td>
<%
if application(second4)= then
%>
<フォームアクション=index0.asp?flag=second4メソッド=ポスト>
<INPUT id=text1 name=txtSecond4 size=10><INPUT id=submit1
名前=送信1 タイプ=送信 値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(Second4)
終了する場合
%>
</td>
</tr>
<tr>
<td>ヴィーナス</td>
<td>
<%
if application(first5)= then
%>
<フォームアクション=index0.asp?flag=First5メソッド=ポスト>
<INPUT id=text1 name=txtFirst5 size=10><INPUT id=submit1 name=submit1
タイプ=送信値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(最初の5)
終了する場合
%>
</td>
<td>戦争</td>
<td>
<%
if application(second5)= then
%>
<フォームアクション=index0.asp?flag=セカンド5メソッド=ポスト>
<INPUT id=text1 name=txtSecond5 size=10><INPUT id=submit1
名前=送信1 タイプ=送信 値=入力>
</フォーム>
<%
それ以外
応答.書き込みアプリケーション(Second5)
終了する場合
%>
</td>
</tr>
</テーブル>
</BODY>
</HTML>
このファイルはあまり説明する必要はありませんが、特定の場所を使用した場合はそこから誰でも入力できる大きなテーブルであり、繰り返しのログインは許可されません。ログイン後に入力してください
index0.asp、これは中間交換ファイルであり、このファイル内でいくつかの変数が処理されて割り当てられ、その後、正式な一致のために match.asp が入力されます。 Index0.asp の内容を見てみましょう。
<%@ 言語=VBScript %>
<%
if Request.Form(txt & request.querystring(flag))<> then
'応答.書き込みしてください!
session(nice)=Request.Form(txt & request.querystring(flag))
'response.write セッション (素晴らしい) &
'response.write application(request.querystring(flag))
if application(request.querystring(flag))= then
application(request.querystring(flag))=session(nice)
セッション(クラス)=right(リクエスト.クエリ文字列(フラグ),1)
if left(request.querystring(flag),1)=f then
application(セッション(nice))=false
elseif left(request.querystring(flag),1)=s then
application(セッション(nice))=false
application(application(first & session(class)))=true
終了する場合
Response.リダイレクト match.asp
終了する場合
終了する場合
%>
<HTML>
</HTML>
このプログラムでは、セッション (nice) を使用してログイン名を記録し、今後の多くのプロセスで多くのユーザーを区別するために使用します。団長の立場から入った場合、あなたの権利は次のとおりです。
最初に、そうでない場合は 2 番目に、session(class) を使用して、どの戦場に位置しているかを記録します。
水、火、土はそれぞれ 1、2、3、4、5 で表されます。これは、複数の戦場が同時に戦っている可能性があるためです。これらを正しく区別できないと混乱が生じる可能性があります。 application(session(nice)) は、チェスをプレイできるかどうかを示す true または false を使用する論理変数です。 false の場合、チェスをプレイできます。戦場に2人が入って初めて挑戦者はチェスをすることができ、挑戦者が駒を出した後にのみ攻撃者はチェスを行うことができる。準備ができたら、競技フィールドに入力してください。ファイル match.asp を参照してください。
<html>
<頭>
<メタ http-equiv=コンテンツタイプ content=text/html;
<meta name=GENERATOR content=Microsoft FrontPage 4.0>
<メタ名=ProgId コンテンツ=FrontPage.Editor.Document>
<META http-equiv=refresh content=3>
<title>連珠コンテスト...</title>
</頭>
<%
Response.Write チャレンジャー: & application(first & session(class))
& 攻撃: & アプリケーション(2 番目 & セッション
(クラス))
if Request.QueryString(pos)<> then
application(pos & session(class) & Request.QueryString(pos))
=本当
終了する場合
%>
<本文>
<%
'応答.アプリケーションの書き込み(aaa)
if application(first & session(class))=session(nice) then
色=黒
if Request.QueryString(pos)<> then
if session(last)= then session(last)=abc
if session(last)<> Request.QueryString(pos) then
application(application(first & session(class)))=false
if application(2 番目 & session(class))<> then application
(アプリケーション(2番目&セッション(クラス)))=true
session(last)=Request.QueryString(pos)
終了 IF
終了する場合
それ以外
if application(2 番目 & session(class))=session(nice) then
色=白
if Request.QueryString(pos)<> then
' if session(last)= then session(last)=abc
if session(last)<> Request.QueryString(pos) then
application(application(first & session(class)))=true
application(application(2 番目 & session(class)))=false
session(last)=Request.QueryString(pos)
終了 IF
終了する場合
それ以外
if application(2 番目 & session(class))= then
application(2 番目 & session(class))=session(nice)
色=白
if Request.QueryString(pos)<> then
if session(last)= then session(last)=abc
if session(last)<> Request.QueryString(pos) then
application(application(first & session(class)))=true
application(application(2 番目 & セッション(クラス)))=false
session(last)=Request.QueryString(pos)
終了 IF
終了する場合
それ以外
色=
終了する場合
終了する場合
終了する場合
Response.Write <テーブル幅=400 高さ=400 ボーダー=0 セルスペース=0
セルパディング=0>
i=1 ~ 16 の場合
応答.書き込み <tr>
j=1~16の場合
if application(pos & session(class) & cstr(i) & _ & cstr(j))=
それから
application(color & session(class) & _ & Request.QueryString
(pos))=色
Response.Write <td width=25 height=25>
'response.write application(application(first & session(class)))
if application(session(nice))=true の場合
response.write <a href=match.asp?pos= & cstr(i) & _ & cstr(j)
& ><img border=0 src=back0.jpg width=25 height=25></a>
それ以外
response.write <img border=0 src=back0.jpg width=25 height=25>
終了する場合
応答.write </td>
それ以外
Response.Write <td width=25 height=25><img border=0 src= &
application(color & session(class) & _ & cstr(i) & _ & cstr
(j)) & 0.jpg width=25 height=25></td> & chr(13)
終了する場合
次
応答.書き込み </tr>
次
Response.Write </table>
「勝ち負けを判断する」
if application(first & session(class))=session(nice) then
m=黒
h=白
それ以外
h=黒
m=白
終了する場合
「水平の判断――」
i=1 ~ 15 の場合
勝利=偽
損失=偽
ファイブミー=0
5_彼=0
j=1~15の場合
if application(color & session(class) & _ & cstr(i) & _ & cstr
(j))=m の場合
ファイブミー=ファイブミー+1
5_彼=0
elseif application(color & session(class) & _ & cstr(i) & _ &
cstr(j))=h の場合
ファイブミー=0
五人=五人+1
それ以外
ファイブミー=0
5_彼=0
終了する場合
Five_me=5 の場合
勝利=真
損失=偽
のために出る
elseif 5_he=5 then
勝利=偽
損失=真
のために出る
終了する場合
次
勝っても負けても終了します
次
勝てばそれで
response.write あなたの勝ちです!
application(application(first & session(class)))=false
application(application(2 番目 & session(class)))=false
終了する場合
損失の場合は
response.write 残念ながら負けました!
application(application(first & session(class)))=false
application(application(2 番目 & session(class)))=false
終了する場合
'列方向判定|
j=1~15の場合
勝利=偽
損失=偽
ファイブミー=0
5_彼=0
i=1 ~ 15 の場合
if application(color & session(class) & _ & cstr(i) & _ & cstr
(j))=m の場合
ファイブミー=ファイブミー+1
5_彼=0
elseif application(color & session(class) & _ & cstr(i) & _ &
cstr(j))=h の場合
ファイブミー=0
五人=五人+1
それ以外
ファイブミー=0
5_彼=0
終了する場合
Five_me=5 の場合
勝利=真
損失=偽
のために出る
elseif 5_he=5 then
勝利=偽
損失=真
のために出る
終了する場合
次
勝っても負けても終了します
次
勝てばそれで
response.write あなたの勝ちです!
application(application(first & session(class)))=false
application(application(2 番目 & セッション(クラス)))=false
終了する場合
損失の場合は
response.write 残念ながら負けました!
application(application(first & session(class)))=false
application(application(2 番目 & セッション(クラス)))=false
終了する場合
「斜めの判断/
i=1 ~ 11 の場合
勝利=偽
損失=偽
ファイブミー=0
5_彼=0
j=i+4 から 1 ステップ -1 の場合
if application(color & session(class) & _ & cstr(j) & _ & cstr
(i+5-j))=m の場合
ファイブミー=ファイブミー+1
5_彼=0
elseif application(color & session(class) & _ & cstr(j) & _ &
cstr(i+5-j))=h の場合
ファイブミー=0
五人=五人+1
それ以外
ファイブミー=0
5_彼=0
終了する場合
Five_me=5 の場合
勝利=真
損失=偽
のために出る
elseif 5_he=5 then
勝利=偽
損失=真
のために出る
終了する場合
次
勝っても負けても終了します
次
勝てばそれで
response.write あなたの勝ちです!
application(application(first & session(class)))=false
application(application(2 番目 & セッション(クラス)))=false
終了する場合
損失の場合は
response.write 残念ながら負けました!
application(application(first & session(class)))=false
application(application(2 番目 & セッション(クラス)))=false
終了する場合
「斜めの判断/
i=1 ~ 11 の場合
勝利=偽
損失=偽
ファイブミー=0
5_彼=0
j=12-i ~ 15 の場合
if application(color & session(class) & _ & cstr(13-ij) & _
& cstr(j))=m の場合
ファイブミー=ファイブミー+1
5_彼=0
elseif application(color & session(class) & _ & cstr(13-ij)
& _ & cstr(j))=h その後
ファイブミー=0
五人=五人+1
それ以外
ファイブミー=0
5_彼=0
終了する場合
Five_me=5 の場合
勝利=真
損失=偽
のために出る
elseif 5_he=5 then
勝利=偽
損失=真
のために出る
終了する場合
次
勝っても負けても終了します
次
勝てばそれで
response.write あなたの勝ちです!
application(application(first & session(class)))=false
application(application(2 番目 & セッション(クラス)))=false
終了する場合
損失の場合は
response.write 残念ながら負けました!
application(application(first & session(class)))=false
application(application(2 番目 & セッション(クラス)))=false
終了する場合
%>
</本文>
</html>
ある時点で駒がない場合は、ハイパーコネクションを追加し、挑戦者と攻撃者の差に応じて異なる色の駒を配置します。最後の段落は勝敗を判定するもので、横、縦、斜め2方向に分かれています。具体的な内容を見れば分かります。
最後にお話したいのは、サイトのコア ファイルである global.asa です。チェス ゲームを終了した後にポジションを他の人に残すには、次のように処理用のコードを sesison_onend に追加する必要があります。
<スクリプト言語=vbscript runat=サーバー>
サブアプリケーション_開始時
セッション.タイムアウト=1
エンドサブ
サブセッション_開始時
if application(num)= then
アプリケーション(番号)=0
終了する場合
アプリケーション(番号)=アプリケーション(番号)+1
エンドサブ
</スクリプト>
<スクリプト言語=vbscript runat=サーバー>
サブセッション_ワンエンド
if application(num)= then
アプリケーション(番号)=0
終了する場合
アプリケーション(番号)=アプリケーション(番号)-1
if application(first1)=session(nice)
アプリケーション(最初の1)=
elseif application(2 番目 1)=session(nice) then
アプリケーション(秒1)=
elseif application(first2)=session(nice) then
アプリケーション(最初の2)=
elseif application(second2)=session(nice) then
アプリケーション(秒2)=
elseif application(first3)=session(nice) then
アプリケーション(最初の3)=
elseif application(second3)=session(nice) then
アプリケーション(秒3)=
elseif application(first4)=session(nice) then
アプリケーション(最初の4)=
elseif application(second4)=session(nice) then
アプリケーション(秒4)=
elseif application(first5)=session(nice) then
アプリケーション(first5)=
elseif application(second5)=session(nice) then
アプリケーション(秒5)=
終了する場合
i=1 ~ 15 の場合
j=1~15の場合
application(color & session(class) & _ & cstr(i) & _ & cstr
(J))=
application(pos & session(class) & cstr(i) & _ & cstr(j))=
次
次
アプリケーション(セッション(いい))=
エンドサブ
</スクリプト>
上記はいくつかの主要なファイルです。試してみてください。なんだ、囲碁をやりたいのか?チェス盤を変えるだけです。