资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 编程开发 >
Advertisement
文章正文

用ASP实现网上“五子棋”大赛_编程

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   
  • ASP开发准则 
  • asp简介和五大内置对象 
  • 在ASP中使用Oracle数据库技巧(2) 
  • 利用ASP存取各种常用类型数据库(3) 
  • 利用ASP存取各种常用类型数据库(目录) 
  • 用ASP编写网上调查投票系统(转自赛迪网) 
  • 用ASP自动生成SQL数据库的安装源程序 
  • 数据输出到WORD文件或EXCEL文件的路 
  • 通过ASP记录进行分页 
  • 用ASP生成XBM数字图片 
  • 页面导航:

    正文内容:


    “五子棋”是大家都非常熟悉的一种益智类游戏,相关的游戏软件也非常多,在此我向大家隆重推出一款新的纯“网络版”的五子棋,它利用asp做为开发环境,因此在internet上对战的时候无需下载客户端软件,只要你有一个浏览器就可以了。你也可以在局域网上进行这个游戏。
    对于asp,我不想做过多的说明,在以前的文章中,我已经说过很多。
    游戏的过程是这样的,我们首先登录,然后可以选择战场,有“金星”、“木星”、“水星”、“火星”、“土星”等五个战场,如果你自认为是一个高手,可以选择金星,否则可以依次选择其它几个星球做为战场。如果这个星球上没有擂主,你就应该以擂主的身份进入,然后别人就可以和你进行对战了。当然,如果所有的星球上都已经开始了战争,那么你就只能等一会儿了。
    如果你是以擂主身份进入的,你可以等待别人来和你对战,如果你是以攻擂手的身份登录,你可以很快的和擂主展开战斗。开始战斗后,由擂主执黑先行,然后由攻擂手出招,如此这般。当最后决出胜负的时候,会有相应的提示。
    该站点有几个主要的文件是:
    index.html 登录文件:
    index0.html中间文件:
    match.html 比赛文件:
    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.html?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.html?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.html?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.html?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.html?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.html?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.html?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.html?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.html?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.html?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.html,这是一个中间交换文件,在里面进行一些变量的处理及赋值,然后再进入match.html,进行正式的比赛。我们来看一下index0.html的内容:
    <%@ 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.html"
    end if
     
     
    end if
     
    %>
    <html>
    </html>
    该程序中,用session(“nice”)来记录您登录的大名,以后的处理中,很多都要用到它,用它来区分很多的用户。如果您是从擂主的位置进入,则您的权利是
    first,否则是second,用session("class")来记录位于哪个战场场,“金”“木”
    “水”“火”“土”分别表示为1、2、3、4、5,因为有多个战场可能同时开战,如果不能正确地区分开,则可能导致一片混乱。application(session("nice"))是一个逻辑型变量,用真假来表示您是否可以出棋,如果是假,您要等待一个,如果是真,您就可以下棋了。只有一个战场上的两个人都进入了以后,擂主方可以下棋,而且只有当擂主出子以后,攻擂手才可以下棋。准备好以后,下面就进入赛场,请看文件match.html

     

    <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.html?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>
    以上就是几个主要的文件,大家可以一试。什么,想做围棋?把棋盘改一下就可以了。
    祝大家成功!



     

     
    热门推荐笔记本: IBM笔记本
    相关文章:
    webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
    ©2007 popbb.net All Rights Reserved