返回列表 发帖

[游戏娱乐] 人机对战五子棋批处理游戏

在网上看到多个关于五子棋的批处理游戏,已经可以做到,人与人对战,并判断胜负。但是大多数人认为批处理的效率有问题,都不敢做人与机对战的尝试。批处理的效率真的有那么低吗?出于对dos的热爱,我就不相信批处理真的就做不到真正的五字棋人机对战!于是,这个问题花了我二天的时间,功夫不负有心人,批处理人机对战游戏出来了! 此批处理的棋盘延用了batman的显示方案,但是在输出算法上有所不同。虽然,这个话题已经有很多人写了很多代码,但是,此批处理的算法关键部分由本人自己写出来,所以打上了原创,若有不妥,请大家指正改过。谢谢。(初版3.85K,已多次更新增强)

注:
一楼保持了第一版,是能实现的基本原理,不想改了。

以下为更新记录:
5.6 根据一些网友的意见,做了一点改进:
把棋盘搞大一点了,增加了悔棋功能,增加了音效,
把系统提示放到了更合理的地方,
并增加了一点电脑方的棋艺,(还是不够完善,没有做到多方考虑)

5.7 修改:增加了电脑方最后一手特别显示

5.10修改:固定为黑子先手,第一手固定下在天元 JJ10 位置增加了几行代码,却提速不少,

5.14 修改:提速100%(最主要是原来代码中的一个BUG改正)
以上修改在7楼)

5.17 修改(在20楼):电脑智能升级了,但速度却慢了,

5.21 更新(原在23楼):完善了电脑智能,并在有多个等效下法时进行随机取位,增加了可玩性,速度也不错。

5.25 增加了背景音乐《春江花月夜》,如高山流水般的声音,听着下五棋子,太爽了
6.2 小更新 (在23楼) 小更新:增强了一点点电脑棋艺。
      ***看到网上有人贴出,玩家先下时,九手就赢了电脑,特此改进。 ***
6.14 增加了可以用鼠标操作,但是用到了一个鼠标支持的三方工具,(请看32楼)

2009.8.14修改
修正一些bug,并更新三方鼠标工具,并组合了背景音乐。

2009.10.2 更新
修正了,存放路径中含有空格时出错的问题

请看一楼附件
@echo off&setlocal enabledelayedexpansion
set li0=┌───────────────────┐
set li1=│┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐│1
for /l %%a in (2,1,18) do (set li%%a=│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│%%a)
set li19=│└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘│19
set li20=└───────────────────┘
set li21=   A B C D E F G H I J K L M N O P Q R S
for %%a in (%li21%) do (set/a .+=1,%%a=.&set z!.!=%%a)
set z0= &set z20= &set "z21= "
set li5=!li5!   五 棋 子 人 机 对 战
set li7=!li7!        批 处 理
set li9=!li9!   电 脑 水 平 中 等
set li12=!li12!  由 netbenton 编写完成
set li14=!li14!  棋盘设计参照了 batman
title   批处理五子棋
set str=###################
set .=0
for /l %%a in (1,1,19) do (
set he%%a=!str!&set sh%%a=!str!
for /l %%b in (1,1,19) do set [%%a.%%b=0
)
set .=33
for /l %%a in (5,1,19) do (
set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
set/a .-=1
)
set ●=○&set a●=电脑
set ○=●&set a○=玩家
::设置电脑IQ
set idea=@@@@#1 #@@@@5 @#@@@4 @@@#@2 @@#@@3 $#$$$4 $$#$$3 $$$#$2 $$$$#1 #$$$$5 #$$#$#3 #$#$$#4 #@@@##2 ##@@@#5 #@@#@#3 #@#@@#4 #@@@#1
set idea=!idea! ##@@@4 @@@##2 ##$$$#5 #$$$##2 #$$$#1 ##@@#4 #@@##2 ##$$#4 #$$##2 #$#$#3 @@###3 ###@@3
set idea=!idea! ##@##2 ###@#3 #@###3 @####4 ####@2 ##############7 ###########6 ########4 #####3 ####2
set ttr=!idea:@=●!&set ttr=!ttr:$=○!
for %%a in (!ttr!) do (set var=%%a&set !var:~,-1!=!var:~-1!&set idea=!idea! !var:~,-1!)
set ttr=
::设置电脑IQ
:restart
for /l %%a in (0,1,21) do (echo    !z%%a!!li%%a!)
setlocal enabledelayedexpansion
set li21=!li21!      reboot重新开始,exit退出。
set /p var=选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
if /i "!var!" equ "Q" goto :eof
if /i "!var!" equ "W" (set zhi=●) else (set zhi=○)
echo.
:loop
if %zhi% equgoto :men
set .=&set put1=
for %%a in (!idea!) do (
for %%b in (he sh) do (
  for /l %%c in (1,1,19) do (
   if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
) )
for %%b in (pi ni) do (
  for /l %%c in (5,1,33) do (
   if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
) )
if defined put1 set put=%%a&goto :get
)
echo. 已经和棋了
pause
goto :restart
:men
for /l %%a in (0,1,21) do (echo    !z%%a!!li%%a!)
set /p user=[列前,行后]:
echo.
if "!user!" equ "reboot" endlocal&goto :restart
if "!user!" equ "exit" exit
set/a pos=!user:~0,1!,poh=!user:~1,2!,var=pos-1 2>nul
if not defined [!poh!.!pos! echo 输入点不存在&goto :men
if "!he%poh%:~%var%,1!" neq "#" echo 该点已经有子&goto men
goto :getok
:get
set /a .=!random!%%.+1
set put=!put%.%! !put!
::随机取最佳的走法
for /f "tokens=1-3" %%a in ("%put%") do (
set var=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
set/a var=!var:~19,1!+%%c
if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
if "%%a" equ "pi" (if %%b lss 19 (set/a pos=var,poh=%%b-var+1) else (set/a poh=20-var,pos=%%b-19+var))
if "%%a" equ "ni" (if %%b lss 19 (set/a pos=var,poh=19-%%b+var) else (set/a poh=var,pos=%%b-19+var))
)
echo  电脑最后下在:!z%pos%!!z%poh%!(%poh%)
:getok
set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
set/a piph=poh+pos-1,lips=pos+1,niph=19+pos-poh
if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
for %%a in ("li!poh! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
for /f "tokens=1,2" %%b in (%%a) do (
  if defined %%b (
   set/a .=%%c-1
   for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  if "!%%b:%win%=!" neq "!%%b!" set win=y
  )
)
)
set/a asc%zhi%+=1
if !win! neq y goto :loop
for /l %%a in (0,1,21) do (echo    !z%%a!!li%%a!)
set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手  胜出     <nul
pause
endlocal&goto :restartCOPY
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
6

评分人数

    • 基拉freedom: 支持!技术 + 1 PB + 5
    • Seter: 大大加油啊!PB + 10
    • 523066680: 这将改变一些人对批处理的观点。PB + 30 技术 + 1
    • 随风: 智能和效率都很不错啊!PB + 20 技术 + 1
    • yslyxqysl: 加入技术组吧技术 + 1

占位,发红包,发红包^_%

[ 本帖最后由 wjjy 于 2009-5-6 02:52 编辑 ]
1

评分人数

TOP

厉害,这个五子棋p的iq 很棒。

TOP

set idea 这个思路相当精彩!相当!
批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

TOP

       A B C D E F G H I J K L M N O P Q R S      reboot重新开始,exit退出。
   玩家 ○子 第10手  胜出     请按任意键继续. . .
    ┌───────────────────┐
   A│┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐│1
   B│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│2
   C│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│3
   D│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│4
   E│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│5   五 棋 子 人 机 对 战
   F│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│6
   G│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│7        批 处 理
   H│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│8
   I│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│9   电 脑 水 平 中 等
   J│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│10
   K│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│11
   L│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│12  由 netbenton 编写完成
   M│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│13
   N│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│14  棋盘设计参照了 batman
   O│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│15
   P│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│16
   Q│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│17
   R│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│18
   S│└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘│19
    └───────────────────┘
       A B C D E F G H I J K L M N O P Q R S
选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
少了cls不好看。
还有,电脑的智商还是不高,能不能像Flash那样把我下赢?

[ 本帖最后由 yslyxqysl 于 2009-5-6 16:55 编辑 ]

TOP

实在静不下心来研究楼主的算法,
测试了下,智能很不错,效率也很不错,佩服!
技术问题请到论坛发帖求助!

TOP

@echo off&setlocal enabledelayedexpansion
mode con: lines=43 cols=110
set li39=    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S
set  li0=  ┌─────────────────────────────────────┐
set  li1=A│┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐│A
set var=1
for %%a in (!li39:~5^,-1!) do (set/a var+=2&set li!var!=%%a│├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤│%%a)
for /l %%a in (2,2,36) do (set li%%a=  ││  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ││)
set li37=S│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘│S
set li38=  └─────────────────────────────────────┘
set str=a b c d e f g h i j k l m n o p q r s
for %%a in (%str%) do (set/a .+=1,%%a=.&set z!.!=%%a)
set li5=!li5!   五 棋 子 人 机 对 战
set li7=!li7!        批 处 理
set li10=!li10!      电 脑 水 平 中 等
set li31=!li31!  由 netbenton 编写完成
set li33=!li33!  棋盘设计参照了 batman
title   批处理五子棋
set str=###################
set .=0
for /l %%a in (1,1,19) do (
set he%%a=!str!&set sh%%a=!str!
for /l %%b in (1,1,19) do set [%%a.%%b=0
)
set .=33
for /l %%a in (5,1,19) do (
set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
set/a .-=1
)
set ●=○&set ○=●
set zhi=●
set say=say
::设置电脑IQ
set idea=@@@@#1 #@@@@5 @#@@@4 @@@#@2 @@#@@3 $$$$#1 #$$$$5 $$#$$3 $#$$$4 $$$#$2 #@@@##2 ##@@@#5 #@@#@#3 #@#@@#4 #@#@@3 @#@@#4 #@@@#1
set idea=!idea! ##@@@4 @@@##2 @##@@#4 #@##@@3 #@#@#@4 @#@#@#3 #$$#$#3 #$#$$#4 ##$$$#5 #$$$##2 #$$$#1 ##@@#4 #@@##2 #@#@#3 ##$$#4 #$$##2 #$#$#3 #$##$#3
set idea=!idea! @@###3 ###@@3 ##@##2 ###@#3 #@###3 @####4 ####@2 ##$##2 #####3
set idea=!idea! #$###3 $####3 ##$##2 ###$#3 ####$3 $$###3 ###$$3 $#$##2 ##$#$4 #$##$3 $##$#3 $###$3 $$$##2 #$$#$2 $$##$2 $#$$#4 $##$$3 ##$$$4
:restart
(
setlocal enabledelayedexpansion
for /l %%a in (0,1,39) do (echo    !li%%a!)
set li39=!li39!   reboot重新开始,exit退出。
set li37=!li37!       back 悔棋
set /p var=选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
if /i "!var!" equ "Q" goto :eof
if /i "!var!" equ "D" (set onez=○&set towz=●&set hou=☆) else (set onez=●&set towz=○&set hou=★)
set a!onez!=电脑&set a!towz!=玩家
)
(
set ttr=!idea:@=%onez%!&set ttr=!ttr:$=%towz%!
set idea=
for %%a in (!ttr!) do (set var=%%a&set !var:~,-1!=!var:~-1!&set idea=!idea! !var:~,-1!)
set ttr=
set li27=!li27!    !onez! !a%onez%!
set li25=!li25!    !towz! !a%towz%!
set/a pos=10,poh=10&goto :getok
)
:loop
(if %zhi% equ %onez% goto :men
set .=
for %%a in (!idea!) do (
for %%b in (he sh) do (
  set all=!%%b1!!%%b2!!%%b3!!%%b4!!%%b5!!%%b6!!%%b7!!%%b8!!%%b9!!%%b10!!%%b11!!%%b12!!%%b13!!%%b14!!%%b15!!%%b16!!%%b17!!%%b18!!%%b19!
  if "!all:%%a=!" neq "!all!" (
   for /l %%c in (1,1,19) do (
    if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
   )
) )
for %%b in (pi ni) do (
  set all=!%%b5!!%%b6!!%%b7!!%%b8!!%%b9!!%%b10!!%%b11!!%%b12!!%%b13!!%%b14!!%%b15!!%%b16!!%%b17!!%%b18!!%%b19!!%%b20!!%%b21!!%%b22!!%%b23!!%%b24!!%%b25!!%%b26!!%%b27!!%%b28!!%%b29!!%%b30!!%%b31!!%%b32!!%%b33!
  if "!all:%%a=!" neq "!all!" (
   for /l %%c in (5,1,33) do (
    if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
   )
) )
if defined . set put=%%a&goto :get
))
echo. 已经和棋了
pause
endlocal&goto :restart
:men
(
set/a .=lips-1&for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%hou%!%%b:~%%c!)
set li38=!li38![%悔:~,24%]
cls
for /l %%a in (0,1,39) do (echo    !li%%a!)
for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
set li38=%li38%
set /p user=!say:say=%error%! [列前,行后]:
if "!user!" equ "reboot" endlocal&goto :restart
if "!user!" equ "exit" exit
if "!user!" equ "back" call :悔&goto :men
set/a pos=!user:~0,1!,poh=!user:~1,2!,var=pos-1 2>nul
if not defined [!poh!.!pos! set error=输入点不存在&goto :men
)
if "!he%poh%:~%var%,1!" neq "#" set error=该点已经有子&goto men
goto :getok
:get
set /a .=!random!%%.+1
set put=!put%.%! !put!
::随机取最佳的走法
for /f "tokens=1-3" %%a in ("%put%") do (
set var=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
set/a var=!var:~19,1!+%%c
if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
if "%%a" equ "pi" (if %%b lss 19 (set/a pos=var,poh=%%b-var+1) else (set/a poh=20-var,pos=%%b-19+var))
if "%%a" equ "ni" (if %%b lss 19 (set/a pos=var,poh=19-%%b+var) else (set/a poh=var,pos=%%b-19+var))
)
set say=say !z%pos%!!z%poh%!(%poh%)&set error=电脑最后下在:
:getok
set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
(set/a piph=poh+pos-1,lips=pos*2+1,niph=19+pos-poh,liph=poh*2-1
if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
for %%a in ("li!liph! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
for /f "tokens=1,2" %%b in (%%a) do (
  set/a .=%%c-1
  for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  if "!%%b:%win%=!" neq "!%%b!" set win=y
)
))
(set/a asc%zhi%+=1
set 悔= !z%pos%!!z%poh%!!悔!
if !win! neq y goto :loop)
for /l %%a in (0,1,39) do (echo    !li%%a!)
set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手 !z%pos%!!z%poh%!(%poh%)  胜出     <nul
pause
endlocal&goto :restart
:悔
if not definedgoto :eof
if "!悔:~6,1!" equ "" goto :eof
for %%a in (!悔:~^,6!) do (set str=%%a
set/a poh=!str:~-1!,pos=!str:~,1!
set/a piph=poh+pos-1,niph=19+pos-poh,liph=poh*2-1,lips=pos*2+1
if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
for %%a in ( "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
for /f "tokens=1,2" %%b in (%%a) do (
   set/a .=%%c-1
   for %%d in (!.!) do (set %%b=!%%b:~0,%%d!#!%%b:~%%c!)
)
)
for /f "tokens=1,2" %%b in ("li!liph! !lips!") do (
set/a .=%%c-1
for %%d in (!.!) do (set %%b=!%%b:~0,%%d!!%%b:~%%c!)
))
set/a asc%zhi%-=1
set 悔=!悔:~6!
set error=你悔棋,耍赖皮!
if not definedgoto :eof
set/a poh=!悔:~2,1!,pos=!悔:~1,1!,liph=poh*2-1,lips=pos*2+1
set say=say !z%pos%!!z%poh%!(%poh%)
goto :eofCOPY

[ 本帖最后由 netbenton 于 2009-5-19 12:55 编辑 ]

TOP

在顶楼更新一下就好了

TOP

^G音效太恐怖了。。。

TOP

re 楼上

我只能做到这样了。


另外,在7楼做了一点修改:增加了最后一步特别显示,这样更容易看清电脑下在哪里了。

TOP

在没有禁手的前提下,如果电脑先手,可以采用花月、浦月等必胜开局来赢棋。
楼主能否研究一下这些开局并把它们放到你这个批处理中以增加电脑的棋力?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

zh159兄把它转换成HTA了,界面挺漂亮^_^

<html>
<title>五子棋界面 - zh159</title>
<hrad>
<HTA:APPLICATION
ID="MyhyliApp"
APPLICATIONNAME="五子棋界面 - zh159"
BORDER="thin"
BORDERSTYLE=""
VERSION="1.0"
SCROLL="no"
ICON="C:\WINDOWS\System32\wuauclt.exe"
INNERBORDER="no"
CONTEXTMENU="no"
CAPTION="yes"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="yes"
SHOWINTASKBAR="yes"
SINGLEINSTANCE="yes"
SYSMENU="yes"
WINDOWSTATE="normal"
NAVIGABLE="yes"
/>
</hrad>
<script language="javascript"></script>
<script language="VBScript"></script>
<style>
.GUIwh {width:24;height:24;cursor:hand;}
</style>
<body background="bg.gif" scroll="no" style="background: SteelBlue ;color:#ffffff;">
<table align="center" width="630" border="1" cellspacing="0" cellpadding="10" borderColor="#ffffff" style="font: 13px 宋体;border-collapse:collapse;">
  <tr align="center">
    <td width="450" height="450">
      <table border="0" cellspacing="0" cellpadding="0" borderColor="#ffffff" style="font: 21px 宋体;border:2px solid #ffffff;">
        <script language="VBScript">
        str = "ABCDEFGHIJKLMNOPQRS"
        For i = 1 To Len(str)
                with document
                .write "<tr align='center'>"
                For n = 1 To Len(str)
                        stri = MID(str,i,1)
                        strn = MID(str,n,1)
                        tdstr = "<td id='GUI_" & strn & stri & "' class='GUIwh'><span onclick='Test(this)' onMouseOver='innerText=""●"";style.color=""blue""' onMouseOut='innerText=""┼"";style.color=""""'>┼</span></td>"
                        s = "┼"
                        If (stri = "A" and strn = "A") Then .write Replace(tdstr,s,"┌")
                        If stri = "A" Then If not (strn = "A" or strn = "S") Then .write Replace(tdstr,s,"┬")
                        If (stri = "A" and strn = "S") Then .write Replace(tdstr,s,"┐")
                        If not (stri = "A" or stri = "S") Then If strn = "A" Then .write Replace(tdstr,s,"├")
                        If not (stri = "A" or stri = "S" or strn = "A" or strn = "S") Then .write tdstr
                        If not (stri = "A" or stri = "S") Then If strn = "S" Then .write Replace(tdstr,s,"┤")
                        
                        If (stri = "S" and strn = "A") Then .write Replace(tdstr,s,"└")
                        If stri = "S" Then If not (strn = "A" or strn = "S") Then .write Replace(tdstr,s,"┴")
                        If (stri = "S" and strn = "S") Then .write Replace(tdstr,s,"┘")
                Next
                .write "</tr>"
                end with
        Next
        </script>
      </table>
    </td>
    <td>
      <span id="PC"><button>电脑先下</button>
直接点击为玩家先下</span>
    </td>
  </tr>
</table>
</body>
<script language="VBScript">
  width = 660
  height = 550
  window.resizeTo width, height
  ileft=(window.screen.width-width)/2
  itop=(window.screen.height-height)/2
  window.moveTo ileft,itop
        Sub Test(this)
this.parentNode.style.cursor = "default"
this.parentNode.innerHtml = "●"
PC.style.display = "none"
        End Sub
        Sub Title
Document.title = "五子棋 - zh159 - " & FormatDateTime(Now, 1) & "  " & WeekdayName(WeekDay(now)) & "  " & FormatDateTime(Now, 3)
        End Sub
Title:setInterval "Title()",500
</script>
</html>COPY
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=47326

[ 本帖最后由 Batcher 于 2009-5-10 01:39 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

五子棋开局是有限制的哦
还有禁手规则也没添进去(不过难度比较大)

TOP

回复 13楼 的帖子

花月、浦月等开局正是在没有禁手的前提下才能必胜的,因此不是开局有限制,归根结底还是禁手的限制。
既然现在还没有添加禁手,为何不让电脑用必胜开局呢?将来添加了禁手,电脑自然就不会选择这些开局了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我的电脑是怎么了,为何保存12楼的代码运行后是乱码?
技术问题请到论坛发帖求助!

TOP

返回列表