程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 用ASP實現網上“五子棋”大賽

用ASP實現網上“五子棋”大賽

編輯:關於ASP編程

    “五子棋”是大家都非常熟悉的一種益智類游戲,相關的游戲軟件也非常多,在此我向大家隆重推出一款新的純“網絡版”的五子棋,它利用ASP做為開發環境,因此在Internet上對戰的時候無需下載客戶端軟件,只要你有一個浏覽器就可以了。你也可以在局域網上進行這個游戲。

      對於ASP,我不想做過多的說明,在以前的文章中,我已經說過很多。

      游戲的過程是這樣的,我們首先登錄,然後可以選擇戰場,有“金星”、“木星”、“水星”、“火星”、“土星”等五個戰場,如果你自認為是一個高手,可以選擇金星,否則可以依次選擇其它幾個星球做為戰場。如果這個星球上沒有擂主,你就應該以擂主的身份進入,然後別人就可以和你進行對戰了。當然,如果所有的星球上都已經開始了戰爭,那麼你就只能等一會兒了。

      如果你是以擂主身份進入的,你可以等待別人來和你對戰,如果你是以攻擂手的身份登錄,你可以很快的和擂主展開戰斗。開始戰斗後,由擂主執黑先行,然後由攻擂手出招,如此這般。當最後決出勝負的時候,會有相應的提示。

      該站點有幾個主要的文件是:

      Index.asp 登錄文件:

      Index0.asp中間文件:

      Match.asp 比賽文件:

      Back0.jpg white0.jpg black0.jpg 中間用到的圖形文件,分別指的棋盤,白子和黑子,如下圖:

      在程序的初始化的時候,將棋盤上分成若干的表格,將背景圖片放入其中,形成一個棋盤,然後在放上一個棋子後,再將圖片換上相應的白子或黑子就可以了。

      先看看登錄文件:

      <%@ Language=VBScript %>

      <HTML>

      <HEAD>

      <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

      <title>星球大戰之“五子連珠”大賽!</title>

      </HEAD>

      <BODY>

      <p align=center><font size=6>星球大戰</font></P>

      <table border=1 width=80% align=center>

      <tr><td>星球</td><td>擂主</td><td>大戰</td><td>攻擂</td></tr>

      <tr>

      <td>金星</td>

      <td>

      <%

      if application("first1")="" then

      %>

      <form action=index0.asp?flag=First1 method=post>

      <INPUT id=text1 name=txtFirst1 size=10><INPUT id=submit1 name=submit1

      type=submit value=進入>

      </form>

      <%

      else

      response.write application("first1")

      end if

      %>

      </td>

      <td>大戰</td>

      <td>

      <%

      if application("second1")="" then

      %>

      <form action=index0.asp?flag=second1 method=post>

      <INPUT id=text1 name=txtSecond1 size=10><INPUT id=submit1

      name=submit1 type=submit value=進入>

      </form>

      <%

      else

      response.write application("Second1")

      end if

      %>

      </td>

      </tr>

      <tr>

      <td>木星</td>

      <td>

      <%

      if application("first2")="" then

      %>

      <form action=index0.asp?flag=First2 method=post>

      <INPUT id=text1 name=txtFirst2 size=10><INPUT id=submit1 name=submit1

      type=submit value=進入>

      </form>

      <%

      else

      response.write application("first2")

      end if

      %>

      </td>

      <td>大戰</td>

      <td>

      <%

      if application("second2")="" then

      %>

      <form action=index0.asp?flag=second2 method=post>

      <INPUT id=text1 name=txtSecond2 size=10><INPUT id=submit1

      name=submit1 type=submit value=進入>

      </form>

      <%

      else

      response.write application("Second2")

      end if

      %>

      </td>

      </tr>

      <tr>

      <td>金星</td>

      <td>

      <%

      if application("first3")="" then

      %>

      <form action=index0.asp?flag=First3 method=post>

      <INPUT id=text1 name=txtFirst3 size=10><INPUT id=submit1 name=submit1

      type=submit value=進入>

      </form>

      <%

      else

      response.write application("first3")

      end if

      %>

      </td>

      <td>大戰</td>

      <td>

      <%

      if application("second3")="" then

      %>

      <form action=index0.asp?flag=second3 method=post>

      <INPUT id=text1 name=txtSecond3 size=10><INPUT id=submit1

      name=submit1 type=submit value=進入>

      </form>

      <%

      else

      response.write application("Second3")

      end if

      %>

      </td>

      </tr>

      <tr>

      <td>金星</td>

      <td>

      <%

      if application("first4")="" then

      %>

      <form action=index0.asp?flag=First4 method=post>

      <INPUT id=text1 name=txtFirst4 size=10><INPUT id=submit1 name=submit1

      type=submit value=進入>

      </form>

      <%

      else

      response.write application("first4")

      end if

      %>

      </td>

      <td>大戰</td>

      <td>

      <%

      if application("second4")="" then

      %>

      <form action=index0.asp?flag=second4 method=post>

      <INPUT id=text1 name=txtSecond4 size=10><INPUT id=submit1

      name=submit1 type=submit value=進入>

      </form>

      <%

      else

      response.write application("Second4")

      end if

      %>

      </td>

      </tr>

      <tr>

      <td>金星</td>

      <td>

      <%

      if application("first5")="" then

      %>

      <form action=index0.asp?flag=First5 method=post>

      <INPUT id=text1 name=txtFirst5 size=10><INPUT id=submit1 name=submit1

      type=submit value=進入>

      </form>

      <%

      else

      response.write application("first5")

      end if

      %>

      </td>

      <td>大戰</td>

      <td>

      <%

      if application("second5")="" then

      %>

      <form action=index0.asp?flag=second5 method=post>

      <INPUT id=text1 name=txtSecond5 size=10><INPUT id=submit1

      name=submit1 type=submit value=進入>

      </form>

      <%

      else

      response.write application("Second5")

      end if

      %>

      </td>

      </tr> 

      </table>

      </BODY>

      </HTML>

      這個文件不用做過多的說明,就是一個大的表格,大家可以從那裡進入,如果某個位置已經被使用,則它會變成該大 俠的名字,不允許重復登錄。在登錄後進入

      index0.asp,這是一個中間交換文件,在裡面進行一些變量的處理及賦值,然後再進入match.asp,進行正式的比賽。我們來看一下index0.asp的內容:

      <%@ Language=VBScript %>

      <%

      if Request.Form("txt" & request.querystring("flag"))<>"" then

      'response.write "in!" & ""

      session("nice")=Request.Form("txt" & request.querystring("flag"))

      'response.write session("nice") & ""

      'response.write application(request.querystring("flag"))

      if application(request.querystring("flag"))="" then

      application(request.querystring("flag"))=session("nice")

      session("class")=right(request.querystring("flag"),1)

      if left(request.querystring("flag"),1)="f" then

      application(session("nice"))=false

      elseif left(request.querystring("flag"),1)="s" then

      application(session("nice"))=false

      application(application("first" & session("class")))=true

      end if

      Response.Redirect "match.asp"

      end if

       

      end if

      %>

      <HTML>

      </HTML>

      該程序中,用session(“nice”)來記錄您登錄的大名,以後的處理中,很多都要用到它,用它來區分很多的用戶。如果您是從擂主的位置進入,則您的權利是

      first,否則是second,用session("class")來記錄位於哪個戰場場,“金”“木”

      “水”“火”“土”分別表示為1、2、3、4、5,因為有多個戰場可能同時開戰,如果不能正確地區分開,則可能導致一片混亂。application(session("nice"))是一個邏輯型變量,用真假來表示您是否可以出棋,如果是假,您要等待一個,如果是真,您就可以下棋了。只有一個戰場上的兩個人都進入了以後,擂主方可以下棋,而且只有當擂主出子以後,攻擂手才可以下棋。准備好以後,下面就進入賽場,請看文件match.asp

      <html>

      <head>

      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

      <meta name="GENERATOR" content="Microsoft FrontPage 4.0">

      <meta name="ProgId" content="FrontPage.Editor.Document">

      <META http-equiv=refresh content=3>

      <title>連珠大賽...</title>

      </head>

      <%

      Response.Write "擂主:" & application("first" & session("class"))

      & "    攻擂:" & application("second" & session

      ("class"))

      if Request.QueryString("pos")<>"" then

      application("pos" & session("class") & Request.QueryString("pos"))

      =true

      end if

      %>

      <body>

      <%

      'Response.Write application("aaa")

      if application("first" & session("class"))=session("nice") then

      color="black"

      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("second" & session("class"))<>"" then application

      (application("second" & session("class")))=true

      session("last")=Request.QueryString("pos")

      END IF

      end if

      else

      if application("second" & session("class"))=session("nice") then

      color="white"

      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("second" & session("class")))=false

      session("last")=Request.QueryString("pos")

      END IF

      end if

      else

      if application("second" & session("class"))="" then

      application("second" & session("class"))=session("nice")

      color="white"

      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("second" & session("class")))=false

      session("last")=Request.QueryString("pos")

      END IF

      end if

      else

      color=""

      end if

      end if

      end if

      Response.Write "<table width=400 height=400 border=0 cellspacing=0

      cellpadding=0>"

      for i=1 to 16

      Response.Write "<tr>"

      for j=1 to 16

      if application("pos" & session("class") & cstr(i) & "_" & cstr(j))=""

      then

      application("color" & session("class") & "_" & Request.QueryString

      ("pos"))=color

      Response.Write "<td width=25 height=25>"

      'response.write application(application("first" & session("class")))

      if application(session("nice"))=true then

      response.write "<a href=match.asp?pos=" & cstr(i) & "_" & cstr(j)

      & "><img border=0 src=back0.jpg width=25 height=25></a>"

      else

      response.write "<img border=0 src=back0.jpg width=25 height=25>"

      end if

      response.write "</td>"

      else

      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)

      end if

      next

      Response.Write "</tr>"

      next

      Response.Write "</table>"

      '判斷輸贏

      if application("first" & session("class"))=session("nice") then

      m="black"

      h="white"

      else

      h="black"

      m="white"

      end if

      '橫向判斷"-"

      for i=1 to 15

      win=false

      loss=false

      five_me=0

      five_he=0

      for j=1 to 15

      if application("color" & session("class") & "_" & cstr(i) & "_" & cstr

      (j))=m then

      five_me=five_me+1

      five_he=0

      elseif application("color" & session("class") & "_" & cstr(i) & "_" &

      cstr(j))=h then

      five_me=0

      five_he=five_he+1

      else

      five_me=0

      five_he=0

      end if

      if five_me=5 then

      win=true

      loss=false

      exit for

      elseif five_he=5 then

      win=false

      loss=true

      exit for

      end if

      next

      if win or loss then exit for

      next

      if win then

      response.write "你贏了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      if loss then

      response.write "對不起,你輸了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      '列向判斷"|"

      for j=1 to 15

      win=false

      loss=false

      five_me=0

      five_he=0

      for i=1 to 15

      if application("color" & session("class") & "_" & cstr(i) & "_" & cstr

      (j))=m then

      five_me=five_me+1

      five_he=0

      elseif application("color" & session("class") & "_" & cstr(i) & "_" &

      cstr(j))=h then

      five_me=0

      five_he=five_he+1

      else

      five_me=0

      five_he=0

      end if

      if five_me=5 then

      win=true

      loss=false

      exit for

      elseif five_he=5 then

      win=false

      loss=true

      exit for

      end if

      next

      if win or loss then exit for

      next

      if win then

      response.write "你贏了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      if loss then

      response.write "對不起,你輸了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      '斜向判斷"/"

      for i=1 to 11

      win=false

      loss=false

      five_me=0

      five_he=0

      for j=i+4 to 1 step -1

      if application("color" & session("class") & "_" & cstr(j) & "_" & cstr

      (i+5-j))=m then

      five_me=five_me+1

      five_he=0

      elseif application("color" & session("class") & "_" & cstr(j) & "_" &

      cstr(i+5-j))=h then

      five_me=0

      five_he=five_he+1

      else

      five_me=0

      five_he=0

      end if

      if five_me=5 then

      win=true

      loss=false

      exit for

      elseif five_he=5 then

      win=false

      loss=true

      exit for

      end if

      next

      if win or loss then exit for

      next

      if win then

      response.write "你贏了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      if loss then

      response.write "對不起,你輸了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      '斜向判斷""

      for i=1 to 11

      win=false

      loss=false

      five_me=0

      five_he=0

      for j=12-i to 15

      if application("color" & session("class") & "_" & cstr(13-i-j) & "_"

      & cstr(j))=m then

      five_me=five_me+1

      five_he=0

      elseif application("color" & session("class") & "_" & cstr(13-i-j)

      & "_" & cstr(j))=h then

      five_me=0

      five_he=five_he+1

      else

      five_me=0

      five_he=0

      end if

      if five_me=5 then

      win=true

      loss=false

      exit for

      elseif five_he=5 then

      win=false

      loss=true

      exit for

      end if

      next

      if win or loss then exit for

      next

      if win then

      response.write "你贏了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      if loss then

      response.write "對不起,你輸了!"

      application(application("first" & session("class")))=false

      application(application("second" & session("class")))=false

      end if

      %>

      </body>

      </html>

      如果某點沒有棋子,則加上一個超連接,根據擂主與攻擂手的區別放上一個不同顏色的棋子。最後的一段是用來判斷輸與贏,分為橫,列和兩個斜線方向。具體內容看一下就可以明白。

      最後要說的一點就是global.asa ,這是站點上的一個核心文件,為了在退出棋局後,將位置留給別人,需要在sesison_onend中加入代碼進行處理,如下:

      <script language=vbscript runat = server>

      sub application_onstart

      session.timeout=1

      end sub

      sub session_onstart

      if application("num")="" then

      application("num")=0

      end if

      application("num")=application("num")+1

      end sub

      </script>

      <script language=vbscript runat = server>

      sub session_onend

      if application("num")="" then

      application("num")=0

      end if

      application("num")=application("num")-1

      if application("first1")=session("nice") then

      application("first1")=""

      elseif application("second1")=session("nice") then

      application("second1")=""

      elseif application("first2")=session("nice") then

      application("first2")=""

      elseif application("second2")=session("nice") then

      application("second2")=""

      elseif application("first3")=session("nice") then

      application("first3")=""

      elseif application("second3")=session("nice") then

      application("second3")=""

      elseif application("first4")=session("nice") then

      application("first4")=""

      elseif application("second4")=session("nice") then

      application("second4")=""

      elseif application("first5")=session("nice") then

      application("first5")=""

      elseif application("second5")=session("nice") then

      application("second5")=""

      end if

      for i=1 to 15

      for j=1 to 15

      application("color" & session("class") & "_" & cstr(i) & "_" & cstr

      (J))=""

      application("pos" & session("class") & cstr(i) & "_" & cstr(j))=""

      next

      next

      application(session("nice"))=""

      end sub

      </script>

      以上就是幾個主要的文件,大家可以一試。什麼,想做圍棋?把棋盤改一下就可以了。

    以上是三聯網為您介紹的用ASP實現網上“五子棋”大賽,希望對您有所幫助。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved