Board logo

标题: [游戏娱乐] 人机对战五子棋批处理游戏 [打印本页]

作者: netbenton    时间: 2009-5-5 23:22     标题: 人机对战五子棋批处理游戏

在网上看到多个关于五子棋的批处理游戏,已经可以做到,人与人对战,并判断胜负。但是大多数人认为批处理的效率有问题,都不敢做人与机对战的尝试。批处理的效率真的有那么低吗?出于对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 更新
修正了,存放路径中含有空格时出错的问题

请看一楼附件
  1. @echo off&setlocal enabledelayedexpansion
  2. set li0=┌───────────────────┐
  3. set li1=│┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐│1
  4. for /l %%a in (2,1,18) do (set li%%a=│├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤│%%a)
  5. set li19=│└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘│19
  6. set li20=└───────────────────┘
  7. set li21=   A B C D E F G H I J K L M N O P Q R S
  8. for %%a in (%li21%) do (set/a .+=1,%%a=.&set z!.!=%%a)
  9. set z0= &set z20= &set "z21= "
  10. set li5=!li5!   五 棋 子 人 机 对 战
  11. set li7=!li7!        批 处 理
  12. set li9=!li9!   电 脑 水 平 中 等
  13. set li12=!li12!  由 netbenton 编写完成
  14. set li14=!li14!  棋盘设计参照了 batman
  15. title   批处理五子棋
  16. set str=###################
  17. set .=0
  18. for /l %%a in (1,1,19) do (
  19. set he%%a=!str!&set sh%%a=!str!
  20. for /l %%b in (1,1,19) do set [%%a.%%b=0
  21. )
  22. set .=33
  23. for /l %%a in (5,1,19) do (
  24. set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
  25. set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
  26. set/a .-=1
  27. )
  28. set ●=○&set a●=电脑
  29. set ○=●&set a○=玩家
  30. ::设置电脑IQ
  31. set idea=@@@@#1 #@@@@5 @#@@@4 @@@#@2 @@#@@3 $#$$$4 $$#$$3 $$$#$2 $$$$#1 #$$$$5 #$$#$#3 #$#$$#4 #@@@##2 ##@@@#5 #@@#@#3 #@#@@#4 #@@@#1
  32. set idea=!idea! ##@@@4 @@@##2 ##$$$#5 #$$$##2 #$$$#1 ##@@#4 #@@##2 ##$$#4 #$$##2 #$#$#3 @@###3 ###@@3
  33. set idea=!idea! ##@##2 ###@#3 #@###3 @####4 ####@2 ##############7 ###########6 ########4 #####3 ####2
  34. set ttr=!idea:@=●!&set ttr=!ttr:$=○!
  35. for %%a in (!ttr!) do (set var=%%a&set !var:~,-1!=!var:~-1!&set idea=!idea! !var:~,-1!)
  36. set ttr=
  37. ::设置电脑IQ
  38. :restart
  39. for /l %%a in (0,1,21) do (echo    !z%%a!!li%%a!)
  40. setlocal enabledelayedexpansion
  41. set li21=!li21!      reboot重新开始,exit退出。
  42. set /p var=选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
  43. if /i "!var!" equ "Q" goto :eof
  44. if /i "!var!" equ "W" (set zhi=●) else (set zhi=○)
  45. echo.
  46. :loop
  47. if %zhi% equ ● goto :men
  48. set .=&set put1=
  49. for %%a in (!idea!) do (
  50. for %%b in (he sh) do (
  51.   for /l %%c in (1,1,19) do (
  52.    if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
  53. ) )
  54. for %%b in (pi ni) do (
  55.   for /l %%c in (5,1,33) do (
  56.    if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
  57. ) )
  58. if defined put1 set put=%%a&goto :get
  59. )
  60. echo. 已经和棋了
  61. pause
  62. goto :restart
  63. :men
  64. for /l %%a in (0,1,21) do (echo    !z%%a!!li%%a!)
  65. set /p user=[列前,行后]:
  66. echo.
  67. if "!user!" equ "reboot" endlocal&goto :restart
  68. if "!user!" equ "exit" exit
  69. set/a pos=!user:~0,1!,poh=!user:~1,2!,var=pos-1 2>nul
  70. if not defined [!poh!.!pos! echo 输入点不存在&goto :men
  71. if "!he%poh%:~%var%,1!" neq "#" echo 该点已经有子&goto men
  72. goto :getok
  73. :get
  74. set /a .=!random!%%.+1
  75. set put=!put%.%! !put!
  76. ::随机取最佳的走法
  77. for /f "tokens=1-3" %%a in ("%put%") do (
  78. set var=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
  79. set/a var=!var:~19,1!+%%c
  80. if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
  81. if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
  82. if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
  83. 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))
  84. 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))
  85. )
  86. echo  电脑最后下在:!z%pos%!!z%poh%!(%poh%)
  87. :getok
  88. set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
  89. set/a piph=poh+pos-1,lips=pos+1,niph=19+pos-poh
  90. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  91. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  92. for %%a in ("li!poh! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  93. for /f "tokens=1,2" %%b in (%%a) do (
  94.   if defined %%b (
  95.    set/a .=%%c-1
  96.    for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  97.   if "!%%b:%win%=!" neq "!%%b!" set win=y
  98.   )
  99. )
  100. )
  101. set/a asc%zhi%+=1
  102. if !win! neq y goto :loop
  103. for /l %%a in (0,1,21) do (echo    !z%%a!!li%%a!)
  104. set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手  胜出     <nul
  105. pause
  106. endlocal&goto :restart
复制代码

作者: wjjy    时间: 2009-5-6 02:51

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

[ 本帖最后由 wjjy 于 2009-5-6 02:52 编辑 ]
作者: inittab    时间: 2009-5-6 07:09

厉害,这个五子棋p的iq 很棒。
作者: wxcute    时间: 2009-5-6 11:05

set idea 这个思路相当精彩!相当!
作者: yslyxqysl    时间: 2009-5-6 16:52

       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 编辑 ]
作者: 随风    时间: 2009-5-6 19:10

实在静不下心来研究楼主的算法,
测试了下,智能很不错,效率也很不错,佩服!
作者: netbenton    时间: 2009-5-6 21:28

  1. @echo off&setlocal enabledelayedexpansion
  2. mode con: lines=43 cols=110
  3. set li39=    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S
  4. set  li0=  ┌─────────────────────────────────────┐
  5. set  li1=A│┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐│A
  6. set var=1
  7. for %%a in (!li39:~5^,-1!) do (set/a var+=2&set li!var!=%%a│├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤│%%a)
  8. for /l %%a in (2,2,36) do (set li%%a=  ││  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ││)
  9. set li37=S│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘│S
  10. set li38=  └─────────────────────────────────────┘
  11. set str=a b c d e f g h i j k l m n o p q r s
  12. for %%a in (%str%) do (set/a .+=1,%%a=.&set z!.!=%%a)
  13. set li5=!li5!   五 棋 子 人 机 对 战
  14. set li7=!li7!        批 处 理
  15. set li10=!li10!      电 脑 水 平 中 等
  16. set li31=!li31!  由 netbenton 编写完成
  17. set li33=!li33!  棋盘设计参照了 batman
  18. title   批处理五子棋
  19. set str=###################
  20. set .=0
  21. for /l %%a in (1,1,19) do (
  22. set he%%a=!str!&set sh%%a=!str!
  23. for /l %%b in (1,1,19) do set [%%a.%%b=0
  24. )
  25. set .=33
  26. for /l %%a in (5,1,19) do (
  27. set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
  28. set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
  29. set/a .-=1
  30. )
  31. set ●=○&set ○=●
  32. set zhi=●
  33. set say=say
  34. ::设置电脑IQ
  35. set idea=@@@@#1 #@@@@5 @#@@@4 @@@#@2 @@#@@3 $$$$#1 #$$$$5 $$#$$3 $#$$$4 $$$#$2 #@@@##2 ##@@@#5 #@@#@#3 #@#@@#4 #@#@@3 @#@@#4 #@@@#1
  36. set idea=!idea! ##@@@4 @@@##2 @##@@#4 #@##@@3 #@#@#@4 @#@#@#3 #$$#$#3 #$#$$#4 ##$$$#5 #$$$##2 #$$$#1 ##@@#4 #@@##2 #@#@#3 ##$$#4 #$$##2 #$#$#3 #$##$#3
  37. set idea=!idea! @@###3 ###@@3 ##@##2 ###@#3 #@###3 @####4 ####@2 ##$##2 #####3
  38. set idea=!idea! #$###3 $####3 ##$##2 ###$#3 ####$3 $$###3 ###$$3 $#$##2 ##$#$4 #$##$3 $##$#3 $###$3 $$$##2 #$$#$2 $$##$2 $#$$#4 $##$$3 ##$$$4
  39. :restart
  40. (
  41. setlocal enabledelayedexpansion
  42. for /l %%a in (0,1,39) do (echo    !li%%a!)
  43. set li39=!li39!   reboot重新开始,exit退出。
  44. set li37=!li37!       back 悔棋
  45. set /p var=选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
  46. if /i "!var!" equ "Q" goto :eof
  47. if /i "!var!" equ "D" (set onez=○&set towz=●&set hou=☆) else (set onez=●&set towz=○&set hou=★)
  48. set a!onez!=电脑&set a!towz!=玩家
  49. )
  50. (
  51. set ttr=!idea:@=%onez%!&set ttr=!ttr:$=%towz%!
  52. set idea=
  53. for %%a in (!ttr!) do (set var=%%a&set !var:~,-1!=!var:~-1!&set idea=!idea! !var:~,-1!)
  54. set ttr=
  55. set li27=!li27!    !onez! !a%onez%!
  56. set li25=!li25!    !towz! !a%towz%!
  57. set/a pos=10,poh=10&goto :getok
  58. )
  59. :loop
  60. (if %zhi% equ %onez% goto :men
  61. set .=
  62. for %%a in (!idea!) do (
  63. for %%b in (he sh) do (
  64.   set all=!%%b1!!%%b2!!%%b3!!%%b4!!%%b5!!%%b6!!%%b7!!%%b8!!%%b9!!%%b10!!%%b11!!%%b12!!%%b13!!%%b14!!%%b15!!%%b16!!%%b17!!%%b18!!%%b19!
  65.   if "!all:%%a=!" neq "!all!" (
  66.    for /l %%c in (1,1,19) do (
  67.     if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
  68.    )
  69. ) )
  70. for %%b in (pi ni) do (
  71.   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!
  72.   if "!all:%%a=!" neq "!all!" (
  73.    for /l %%c in (5,1,33) do (
  74.     if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c
  75.    )
  76. ) )
  77. if defined . set put=%%a&goto :get
  78. ))
  79. echo. 已经和棋了
  80. pause
  81. endlocal&goto :restart
  82. :men
  83. (
  84. set/a .=lips-1&for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%hou%!%%b:~%%c!)
  85. set li38=!li38![%悔:~,24%]
  86. cls
  87. for /l %%a in (0,1,39) do (echo    !li%%a!)
  88. for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  89. set li38=%li38%
  90. set /p user=!say:say=%error%! [列前,行后]:
  91. if "!user!" equ "reboot" endlocal&goto :restart
  92. if "!user!" equ "exit" exit
  93. if "!user!" equ "back" call :悔&goto :men
  94. set/a pos=!user:~0,1!,poh=!user:~1,2!,var=pos-1 2>nul
  95. if not defined [!poh!.!pos! set error=输入点不存在&goto :men
  96. )
  97. if "!he%poh%:~%var%,1!" neq "#" set error=该点已经有子&goto men
  98. goto :getok
  99. :get
  100. set /a .=!random!%%.+1
  101. set put=!put%.%! !put!
  102. ::随机取最佳的走法
  103. for /f "tokens=1-3" %%a in ("%put%") do (
  104. set var=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
  105. set/a var=!var:~19,1!+%%c
  106. if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
  107. if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
  108. if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
  109. 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))
  110. 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))
  111. )
  112. set say=say !z%pos%!!z%poh%!(%poh%)&set error=电脑最后下在:
  113. :getok
  114. set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
  115. (set/a piph=poh+pos-1,lips=pos*2+1,niph=19+pos-poh,liph=poh*2-1
  116. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  117. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  118. for %%a in ("li!liph! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  119. for /f "tokens=1,2" %%b in (%%a) do (
  120.   set/a .=%%c-1
  121.   for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  122.   if "!%%b:%win%=!" neq "!%%b!" set win=y
  123. )
  124. ))
  125. (set/a asc%zhi%+=1
  126. set 悔= !z%pos%!!z%poh%!!悔!
  127. if !win! neq y goto :loop)
  128. for /l %%a in (0,1,39) do (echo    !li%%a!)
  129. set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手 !z%pos%!!z%poh%!(%poh%)  胜出     <nul
  130. pause
  131. endlocal&goto :restart
  132. :悔
  133. if not defined 悔 goto :eof
  134. if "!悔:~6,1!" equ "" goto :eof
  135. for %%a in (!悔:~^,6!) do (set str=%%a
  136. set/a poh=!str:~-1!,pos=!str:~,1!
  137. set/a piph=poh+pos-1,niph=19+pos-poh,liph=poh*2-1,lips=pos*2+1
  138. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  139. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  140. for %%a in ( "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  141. for /f "tokens=1,2" %%b in (%%a) do (
  142.    set/a .=%%c-1
  143.    for %%d in (!.!) do (set %%b=!%%b:~0,%%d!#!%%b:~%%c!)
  144. )
  145. )
  146. for /f "tokens=1,2" %%b in ("li!liph! !lips!") do (
  147. set/a .=%%c-1
  148. for %%d in (!.!) do (set %%b=!%%b:~0,%%d!┼!%%b:~%%c!)
  149. ))
  150. set/a asc%zhi%-=1
  151. set 悔=!悔:~6!
  152. set error=你悔棋,耍赖皮!
  153. if not defined 悔 goto :eof
  154. set/a poh=!悔:~2,1!,pos=!悔:~1,1!,liph=poh*2-1,lips=pos*2+1
  155. set say=say !z%pos%!!z%poh%!(%poh%)
  156. goto :eof
复制代码

[ 本帖最后由 netbenton 于 2009-5-19 12:55 编辑 ]
作者: yslyxqysl    时间: 2009-5-6 22:00

在顶楼更新一下就好了
作者: yslyxqysl    时间: 2009-5-7 17:14

^G音效太恐怖了。。。
作者: netbenton    时间: 2009-5-7 18:25     标题: re 楼上

我只能做到这样了。


另外,在7楼做了一点修改:增加了最后一步特别显示,这样更容易看清电脑下在哪里了。
作者: Batcher    时间: 2009-5-10 01:30

在没有禁手的前提下,如果电脑先手,可以采用花月、浦月等必胜开局来赢棋。
楼主能否研究一下这些开局并把它们放到你这个批处理中以增加电脑的棋力?
作者: Batcher    时间: 2009-5-10 01:37

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

[attach]1301[/attach]
  1. <html>
  2. <title>五子棋界面 - zh159</title>
  3. <hrad>
  4. <HTA:APPLICATION
  5. ID="MyhyliApp"
  6. APPLICATIONNAME="五子棋界面 - zh159"
  7. BORDER="thin"
  8. BORDERSTYLE=""
  9. VERSION="1.0"
  10. SCROLL="no"
  11. ICON="C:\WINDOWS\System32\wuauclt.exe"
  12. INNERBORDER="no"
  13. CONTEXTMENU="no"
  14. CAPTION="yes"
  15. MAXIMIZEBUTTON="no"
  16. MINIMIZEBUTTON="yes"
  17. SHOWINTASKBAR="yes"
  18. SINGLEINSTANCE="yes"
  19. SYSMENU="yes"
  20. WINDOWSTATE="normal"
  21. NAVIGABLE="yes"
  22. />
  23. </hrad>
  24. <script language="javascript"></script>
  25. <script language="VBScript"></script>
  26. <style>
  27. .GUIwh {width:24;height:24;cursor:hand;}
  28. </style>
  29. <body background="bg.gif" scroll="no" style="background: SteelBlue ;color:#ffffff;">
  30. <table align="center" width="630" border="1" cellspacing="0" cellpadding="10" borderColor="#ffffff" style="font: 13px 宋体;border-collapse:collapse;">
  31.   <tr align="center">
  32.     <td width="450" height="450">
  33.       <table border="0" cellspacing="0" cellpadding="0" borderColor="#ffffff" style="font: 21px 宋体;border:2px solid #ffffff;">
  34.         <script language="VBScript">
  35.         str = "ABCDEFGHIJKLMNOPQRS"
  36.         For i = 1 To Len(str)
  37.                 with document
  38.                 .write "<tr align='center'>"
  39.                 For n = 1 To Len(str)
  40.                         stri = MID(str,i,1)
  41.                         strn = MID(str,n,1)
  42.                         tdstr = "<td id='GUI_" & strn & stri & "' class='GUIwh'><span onclick='Test(this)' onMouseOver='innerText=""●"";style.color=""blue""' onMouseOut='innerText=""┼"";style.color=""""'>┼</span></td>"
  43.                         s = "┼"
  44.                         If (stri = "A" and strn = "A") Then .write Replace(tdstr,s,"┌")
  45.                         If stri = "A" Then If not (strn = "A" or strn = "S") Then .write Replace(tdstr,s,"┬")
  46.                         If (stri = "A" and strn = "S") Then .write Replace(tdstr,s,"┐")
  47.                         If not (stri = "A" or stri = "S") Then If strn = "A" Then .write Replace(tdstr,s,"├")
  48.                         If not (stri = "A" or stri = "S" or strn = "A" or strn = "S") Then .write tdstr
  49.                         If not (stri = "A" or stri = "S") Then If strn = "S" Then .write Replace(tdstr,s,"┤")
  50.                         
  51.                         If (stri = "S" and strn = "A") Then .write Replace(tdstr,s,"└")
  52.                         If stri = "S" Then If not (strn = "A" or strn = "S") Then .write Replace(tdstr,s,"┴")
  53.                         If (stri = "S" and strn = "S") Then .write Replace(tdstr,s,"┘")
  54.                 Next
  55.                 .write "</tr>"
  56.                 end with
  57.         Next
  58.         </script>
  59.       </table>
  60.     </td>
  61.     <td>
  62.       <span id="PC"><button>电脑先下</button>
  63. 直接点击为玩家先下</span>
  64.     </td>
  65.   </tr>
  66. </table>
  67. </body>
  68. <script language="VBScript">
  69.   width = 660
  70.   height = 550
  71.   window.resizeTo width, height
  72.   ileft=(window.screen.width-width)/2
  73.   itop=(window.screen.height-height)/2
  74.   window.moveTo ileft,itop
  75.         Sub Test(this)
  76. this.parentNode.style.cursor = "default"
  77. this.parentNode.innerHtml = "●"
  78. PC.style.display = "none"
  79.         End Sub
  80.         Sub Title
  81. Document.title = "五子棋 - zh159 - " & FormatDateTime(Now, 1) & "  " & WeekdayName(WeekDay(now)) & "  " & FormatDateTime(Now, 3)
  82.         End Sub
  83. Title:setInterval "Title()",500
  84. </script>
  85. </html>
复制代码
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=47326

[ 本帖最后由 Batcher 于 2009-5-10 01:39 编辑 ]
作者: yslyxqysl    时间: 2009-5-10 12:00

五子棋开局是有限制的哦
还有禁手规则也没添进去(不过难度比较大)
作者: Batcher    时间: 2009-5-10 12:45     标题: 回复 13楼 的帖子

花月、浦月等开局正是在没有禁手的前提下才能必胜的,因此不是开局有限制,归根结底还是禁手的限制。
既然现在还没有添加禁手,为何不让电脑用必胜开局呢?将来添加了禁手,电脑自然就不会选择这些开局了。
作者: 随风    时间: 2009-5-10 13:25

我的电脑是怎么了,为何保存12楼的代码运行后是乱码?
作者: netbenton    时间: 2009-5-10 13:26

其实我对五子棋的规则只知道连五为胜,其它规则还不是很了解,对于“花月”“浦月”技巧也不了解,呵呵



re 15楼:
12楼的是html脚本

[ 本帖最后由 netbenton 于 2009-5-10 13:28 编辑 ]
作者: Batcher    时间: 2009-5-10 13:35     标题: 回复 15楼 的帖子

看看你电脑的HTA文件关联是不是出问题了
作者: ye5022    时间: 2009-5-16 23:21

高手!!!
不错!
作者: 523066680    时间: 2009-5-17 08:00

很认同楼主说的话:
但是大多数人认为批处理的效率有问题,都不敢做人与机对战的尝试。批处理的效率真的有那么低吗?出于对dos的热爱,我就不相信批处理真的就做不到真正的五字棋人机对战!


真正热爱批处理的,是知难而上,而不是因为一些条件框框而止步,试过了才知道。
楼主的行动将改变一些人对批处理的观点。

[ 本帖最后由 523066680 于 2009-5-17 08:05 编辑 ]
作者: netbenton    时间: 2009-5-17 22:14

升级了!电脑智能增强了。

  1. @echo off&setlocal enabledelayedexpansion
  2. mode con: lines=43 cols=110
  3. set li39=    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S
  4. set  li0=  ┌─────────────────────────────────────┐
  5. set  li1=A│┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐│A
  6. set var=1
  7. for %%a in (!li39:~5^,-1!) do (set/a var+=2&set li!var!=%%a│├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤│%%a)
  8. for /l %%a in (2,2,36) do (set li%%a=  ││  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ││)
  9. set li37=S│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘│S
  10. set li38=  └─────────────────────────────────────┘
  11. set str=a b c d e f g h i j k l m n o p q r s
  12. for %%a in (%str%) do (set/a .+=1,%%a=.&set z!.!=%%a)
  13. set li5=!li5!   五 棋 子 人 机 对 战
  14. set li7=!li7!        批 处 理
  15. set li10=!li10!      电 脑 水 平 中 等
  16. set li31=!li31!  由 netbenton 编写完成
  17. set li33=!li33!  棋盘设计参照了 batman
  18. title   批处理五子棋
  19. set str=###################
  20. set .=0
  21. for /l %%a in (1,1,19) do (
  22.         set he%%a=!str!&set sh%%a=!str!
  23.         for /l %%b in (1,1,19) do set [%%a.%%b=0
  24. )
  25. set .=33
  26. for /l %%a in (5,1,19) do (
  27.         set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
  28.         set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
  29.         set/a .-=1
  30. )
  31. set ●=○&set ○=●
  32. set zhi=●
  33. set say=say
  34. ::设置电脑IQ
  35. set idea=@@@@#.1 #@@@@.5 @#@@@.4 @@@#@.2 @@#@@.3 $$$$#.1 #$$$$.5 $$#$$.3 $#$$$.4 $$$#$.2 vs1 #@@@##.2 ##@@@#.5 #@@#@#.3 #@#@@#.4 vs2 #@##@@#.4-5 #@@##@#.4-3 #@#@@.3-5 @#@@#.4-1 #@@@#.1-5 vs3
  36. set idea=!idea! ##@@@.4-5 @@@##.2-1 @##@@#.4-5 #@##@@.3-4 #@#@#@.4-2 @#@#@#.3-5 vs4 #$$#$#.3-6-1 #$#$$#.4-1-6 ##$$$#.5-1 #$$$##.2-5 vs5 #$$$#.1-5 ##@@#.4-5-1 #@@##.2-1-5 #@#@#.3 vs6 ##$$#.4-1-5 #$$##.2-5-1 #$#$#.3 #$##$#.3-4 vs7
  37. set idea=!idea! @@###.3-2 ###@@.3-4 ##@###.3-5 ###@##.2-4 ###@#.3 #@###.3 vs8 @####.4 ####@.2 ##$##.2-4 #$###.3 ###$#.3 ##@##.2-4 vs9
  38. set idea=!idea! #####.3 $####.3 ####$.3 $$###.3 ###$$.3 $#$##.2 ##$#$.4 #$##$.3 $##$#.3 $###$.3 $$$##.2 #$$#$.2 $$##$.2 $#$$#.4 $##$$.3 ##$$$.4 vs10
  39. set iqam=1000000000
  40. :restart
  41. (
  42. setlocal enabledelayedexpansion
  43. for /l %%a in (0,1,39) do (echo    !li%%a!)
  44. set li39=!li39!   reboot重新开始,exit退出。
  45. set li37=!li37!       back 悔棋
  46. set /p var=选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
  47. if /i "!var!" equ "Q" goto :eof
  48. if /i "!var!" equ "D" (set onez=○&set towz=●&set hou=☆) else (set onez=●&set towz=○&set hou=★)
  49. set a!onez!=电脑&set a!towz!=玩家
  50. )
  51. (
  52. set ttr=!idea:@=%onez%!&set ttr=!ttr:$=%towz%!
  53. set idea=
  54. for %%a in (!ttr!) do (
  55.         for /f "tokens=1,2 delims=." %%b in ("%%a") do (set %%b=%%c&set idea=!idea! %%b)
  56. )
  57. set ttr=
  58. set li27=!li27!    !onez! !a%onez%!
  59. set li25=!li25!    !towz! !a%towz%!
  60. set/a pos=10,poh=10&goto :getok
  61. )
  62. :loop
  63. (if %zhi% equ %onez% goto :men
  64. set .=
  65. setlocal enabledelayedexpansion
  66. for %%a in (!idea!) do (
  67.         set str=%%a
  68.         if "!str:~,2!" neq "vs" (
  69.         for %%b in (he sh) do (
  70.                 set all=!%%b1!!%%b2!!%%b3!!%%b4!!%%b5!!%%b6!!%%b7!!%%b8!!%%b9!!%%b10!!%%b11!!%%b12!!%%b13!!%%b14!!%%b15!!%%b16!!%%b17!!%%b18!!%%b19!
  71.                 if "!all:%%a=!" neq "!all!" (
  72.                         for /l %%c in (1,1,19) do (
  73.                                 if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c.%%a.!iqam!
  74.                         )
  75.         )        )
  76.         for %%b in (pi ni) do (
  77.                 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!
  78.                 if "!all:%%a=!" neq "!all!" (
  79.                         for /l %%c in (5,1,33) do (
  80.                                 if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c.%%a.!iqam!
  81.                         )
  82.         )        )
  83.         ) else (
  84.                 set/a "iqam=(iqam+1)/8"
  85.                 if !.! gtr 20 goto :get
  86.                
  87.                
  88.         )
  89. ))
  90. if defined . (goto :get)
  91. echo. 已经和棋了
  92. pause
  93. endlocal&goto :restart
  94. :men
  95. (
  96. set/a .=lips-1&for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%hou%!%%b:~%%c!)
  97. set li38=!li38![%悔:~,24%]
  98. cls
  99. for /l %%a in (0,1,39) do (echo    !li%%a!)
  100. for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  101. set li38=%li38%
  102. set /p user=!say:say=%error%! [列前,行后]:
  103. if "!user!" equ "reboot" endlocal&goto :restart
  104. if "!user!" equ "exit" exit
  105. if "!user!" equ "back" call :悔&goto :men
  106. set/a pos=!user:~0,1!,poh=!user:~1,2!,var=pos-1 2>nul
  107. if not defined [!poh!.!pos! set error=输入点不存在&goto :men
  108. )
  109. if "!he%poh%:~%var%,1!" neq "#" set error=该点已经有子&goto men
  110. goto :getok
  111. :get
  112. set `=
  113. ::取最佳的走法
  114. for /l %%z in (!.!,-1,1) do (
  115. for /f "tokens=1,2,3 delims=." %%1 in ("!put%%z!") do (
  116. for /f "tokens=1-4" %%a in ("%%1 %%2") do (
  117.         set vara=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
  118.         set iqm=%%3
  119. for %%4 in (!%%2:-^=;!) do (
  120.         set/a var=!vara:~19,1!+%%4
  121.         if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
  122.         if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
  123.         if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
  124.         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))
  125.         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))
  126.         if not defined R!pos!R!poh!R set /a `+=1&set ram!`!=R!pos!R!poh!R
  127.         set/a R!pos!R!poh!R+=iqm,"iqm=%%3/16"
  128. )
  129. )
  130. )
  131. )
  132. set rmk=0
  133. for /l %%a in (1,1,!.!) do (
  134.         for %%b in (!ram%%a!) do (
  135.                 for %%c in (!%%b!) do (
  136.                         if %%c gtr !rmk! set rmk=%%c&set rmz=%%b
  137.                 )
  138. )        )
  139. for /f "tokens=1,2 delims=R" %%a in ("!rmz!") do (set/a pos=%%a,poh=%%b)
  140. rem start set r^&pause^&exit
  141. endlocal&set/a pos=%pos%,poh=%poh%
  142. set say=say !z%pos%!!z%poh%!(%poh%)&set error=电脑最后下在:
  143. :getok
  144. set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
  145. (set/a piph=poh+pos-1,lips=pos*2+1,niph=19+pos-poh,liph=poh*2-1
  146. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  147. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  148. for %%a in ("li!liph! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  149.         for /f "tokens=1,2" %%b in (%%a) do (
  150.                 set/a .=%%c-1
  151.                 for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  152.                 if "!%%b:%win%=!" neq "!%%b!" set win=y
  153.         )
  154. ))
  155. (set/a asc%zhi%+=1
  156. set 悔= !z%pos%!!z%poh%!!悔!
  157. if !win! neq y goto :loop)
  158. for /l %%a in (0,1,39) do (echo    !li%%a!)
  159. set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手 !z%pos%!!z%poh%!(%poh%)  胜出     <NUL
  160. pause
  161. endlocal&goto :restart
  162. :悔
  163. if not defined 悔 goto :eof
  164. if "!悔:~6,1!" equ "" goto :eof
  165. for %%a in (!悔:~^,6!) do (set str=%%a
  166. set/a poh=!str:~-1!,pos=!str:~,1!
  167. set/a piph=poh+pos-1,niph=19+pos-poh,liph=poh*2-1,lips=pos*2+1
  168. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  169. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  170. for %%a in ( "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  171.         for /f "tokens=1,2" %%b in (%%a) do (
  172.                         set/a .=%%c-1
  173.                         for %%d in (!.!) do (set %%b=!%%b:~0,%%d!#!%%b:~%%c!)
  174.         )
  175. )
  176. for /f "tokens=1,2" %%b in ("li!liph! !lips!") do (
  177.         set/a .=%%c-1
  178.         for %%d in (!.!) do (set %%b=!%%b:~0,%%d!┼!%%b:~%%c!)
  179. ))
  180. set/a asc%zhi%-=1
  181. set 悔=!悔:~6!
  182. set error=你悔棋,耍赖皮!
  183. if not defined 悔 goto :eof
  184. set/a poh=!悔:~2,1!,pos=!悔:~1,1!,liph=poh*2-1,lips=pos*2+1
  185. set say=say !z%pos%!!z%poh%!(%poh%)
  186. goto :eof
复制代码

作者: Batcher    时间: 2009-5-19 11:54

1、能否在顶楼记录一下更新历史?
2、围棋、五子棋、国际象棋的棋盘和落点通常是用英文字母+数字来表示的,是否考虑更新一下?
作者: netbenton    时间: 2009-5-19 13:10

原帖由 Batcher 于 2009-5-19 11:54 发表
1、能否在顶楼记录一下更新历史?
2、围棋、五子棋、国际象棋的棋盘和落点通常是用英文字母+数字来表示的,是否考虑更新一下?

原来是这样呀,我当初想的是为了输入点时能方便一点,因为又要输入字母又要输入数字,而且数字的还是两位
不方便。
作者: netbenton    时间: 2009-5-21 20:08

现在下起来,是有输有赢了!
通常是先下的赢。
2009.6.2 更新

  1. @echo off&setlocal enabledelayedexpansion
  2. mode con: lines=43 cols=110
  3. set li39=    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S
  4. set  li0=  ┌─────────────────────────────────────┐
  5. set  li1=A│┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐│A
  6. set var=1
  7. for %%a in (!li39:~5^,-1!) do (set/a var+=2&set li!var!=%%a│├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤│%%a)
  8. for /l %%a in (2,2,36) do (set li%%a=  ││  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ││)
  9. set li37=S│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘│S
  10. set li38=  └─────────────────────────────────────┘
  11. set str=a b c d e f g h i j k l m n o p q r s
  12. for %%a in (%str%) do (set/a .+=1,%%a=.&set z!.!=%%a)
  13. set li5=!li5!   五 棋 子 人 机 对 战
  14. set li7=!li7!        批 处 理
  15. set li10=!li10!      电 脑 水 平 中 等
  16. set li31=!li31!  由 netbenton 编写完成
  17. set li33=!li33!  棋盘设计参照了 batman
  18. title   批处理五子棋
  19. set str=###################
  20. set .=0
  21. for /l %%a in (1,1,19) do (
  22. set he%%a=!str!&set sh%%a=!str!
  23. for /l %%b in (1,1,19) do set [%%a.%%b=0
  24. )
  25. set .=33
  26. for /l %%a in (5,1,19) do (
  27. set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
  28. set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
  29. set/a .-=1
  30. )
  31. set ●=○&set ○=●
  32. set zhi=●
  33. set say=say
  34. ::设置电脑IQ
  35. set idea=@@@@#.1 #@@@@.5 @#@@@.4 @@@#@.2 @@#@@.3 vs0 $$$$#.1 #$$$$.5 $$#$$.3 $#$$$.4 $$$#$.2 vs1 #@@@##.2 ##@@@#.5 #@@#@#.3 #@#@@#.4 vs2 #@##@@#.4-5 #@@##@#.4-3 #@#@@.3-5 @#@@#.4-1 #@@@##.2-W-1 ##@@@#.5-W-6 vs3
  36. set idea=!idea! ##@@@.4-W-5 @@@##.2-W-1 @##@@#.4-5 #@##@@.3-4 #@#@#@.4-2 @#@#@#.3-5 vs4 #$$#$#.3-W-6-1 #$#$$#.4-W-1-6 ##$$$#.5-W-1-6 #$$$##.2-W-1-6 vs5 ##@@##.2-5-W-6-1 #@#@#.3-w-1-5 ##$$$.W-4-5 $$$##.W-2-1 $$##$.W-2-3 $##$$.W-3-4 $#$$#.W-4-1 $#$#$.W-4-2 #$$#$.W-2-5 ##$$#.W-4-W-1-5 #$$##.W-2-W-1-5 #$#$#.W-3-W-1-5 #$##$#.W-3-4
  37. set idea=!idea! vs7 #$$$#.1-5 @@###.4-3 ###@@.3-4 ###@###.3-5-W-2-6-W-1-7 vs8 ###$###.3-5 vs9 @####.4 ####@.2 #$###.3 ###$#.3
  38. set idea=!idea! ###@#.3 #@###.3 $####.3 ####$.3 $$###.3 ###$$.3 $#$##.2 ##$#$.4 #$##$.3 $##$#.3 $###$.3 vs10
  39. set iqam=1000000000
  40. :restart
  41. (
  42. setlocal enabledelayedexpansion
  43. for /l %%a in (0,1,39) do (echo    !li%%a!)
  44. set li39=!li39!   reboot重新开始,exit退出。
  45. set li37=!li37!       back 悔棋
  46. set /p var=选择谁先下[ W,玩家  D,电脑  Q,退出 ]:
  47. if /i "!var!" equ "Q" goto :quit
  48. if /i "!var!" equ "D" (set onez=○&set towz=●&set hou=☆) else (set onez=●&set towz=○&set hou=★)
  49. set a!onez!=电脑&set a!towz!=玩家
  50. )
  51. (
  52. set ttr=!idea:@=%onez%!&set ttr=!ttr:$=%towz%!
  53. set idea=
  54. for %%a in (!ttr!) do (
  55. for /f "tokens=1,2 delims=." %%b in ("%%a") do (set %%b=%%c&set idea=!idea! %%b)
  56. )
  57. set ttr=
  58. set li27=!li27!    !onez! !a%onez%!
  59. set li25=!li25!    !towz! !a%towz%!
  60. set/a pos=10,poh=10&goto :getok
  61. )
  62. :loop
  63. (if %zhi% equ %onez% goto :men
  64. set .=
  65. setlocal enabledelayedexpansion
  66. for %%a in (!idea!) do (
  67. set str=%%a
  68. if "!str:~,2!" neq "vs" (
  69. for %%b in (he sh) do (
  70.   set all=!%%b1!!%%b2!!%%b3!!%%b4!!%%b5!!%%b6!!%%b7!!%%b8!!%%b9!!%%b10!!%%b11!!%%b12!!%%b13!!%%b14!!%%b15!!%%b16!!%%b17!!%%b18!!%%b19!
  71.   if "!all:%%a=!" neq "!all!" (
  72.    for /l %%c in (1,1,19) do (
  73.     if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c.%%a.!iqam!
  74.    )
  75. ) )
  76. for %%b in (pi ni) do (
  77.   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!
  78.   if "!all:%%a=!" neq "!all!" (
  79.    for /l %%c in (5,1,33) do (
  80.     if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c.%%a.!iqam!
  81.    )
  82. ) )
  83. ) else (
  84.   set/a "iqam=(iqam+1)/8"
  85.   if %%a equ vs8 if defined . goto :get
  86.   if %%a equ vs9 if defined . goto :get
  87.   
  88.   
  89. )
  90. ))
  91. if defined . (goto :get)
  92. echo. 已经和棋了
  93. pause
  94. endlocal&goto :restart
  95. :men
  96. (
  97. set/a .=lips-1&for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%hou%!%%b:~%%c!)
  98. set li38=!li38![%悔:~,24%]
  99. cls
  100. for /l %%a in (0,1,39) do (echo    !li%%a!)
  101. for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  102. set li38=%li38%
  103. set /p user=!say:say=%error%! [列前,行后]:
  104. if "!user!" equ "reboot" endlocal&goto :restart
  105. if "!user!" equ "exit" goto :quit
  106. if "!user!" equ "back" call :悔&goto :men
  107. set/a pos=!user:~0,1!,poh=!user:~1,2!,var=pos-1 2>nul
  108. if not defined [!poh!.!pos! set error=输入点不存在&goto :men
  109. )
  110. if "!he%poh%:~%var%,1!" neq "#" set error=该点已经有子&goto men
  111. goto :getok
  112. :get
  113. set `=
  114. ::取最佳的走法
  115. for /l %%z in (!.!,-1,1) do (
  116. for /f "tokens=1,2,3 delims=." %%1 in ("!put%%z!") do (
  117. for /f "tokens=1-4" %%a in ("%%1 %%2") do (
  118. set iqm=%%3
  119. set vara=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
  120. for %%4 in (!%%2:-^=;!) do (
  121.    if "%%4" equ "W" (set/a iqm=iqm/5*3) else (
  122.   set/a var=!vara:~19,1!+%%4
  123.   if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
  124.   if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
  125.   if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
  126.   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))
  127.   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))
  128.   if not defined R!pos!R!poh!R set /a `+=1&set ram!`!=R!pos!R!poh!R
  129.   set/a R!pos!R!poh!R+=iqm
  130.    )
  131. )
  132. )
  133. )
  134. )
  135. set rmk=0
  136. for /l %%a in (1,1,!`!) do (
  137. for %%b in (!ram%%a!) do (
  138.   for %%c in (!%%b!) do (
  139.    if %%c gtr !rmk! set/a rmk=%%c,.=0
  140.    if %%c equ !rmk! set rmz!.!=%%b&set/a .+=1
  141.   )
  142. ) )
  143. set/a .=!random!%%.
  144. for /f "tokens=1,2 delims=R" %%a in ("!rmz%.%!") do (set/a pos=%%a,poh=%%b)
  145. rem start set r^&echo !.!^&pause^&exit
  146. endlocal&set/a pos=%pos%,poh=%poh%
  147. set say=say !z%pos%!!z%poh%!(%poh%)&set error=电脑最后下在:
  148. :getok
  149. set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
  150. (set/a piph=poh+pos-1,lips=pos*2+1,niph=19+pos-poh,liph=poh*2-1
  151. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  152. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  153. for %%a in ("li!liph! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  154. for /f "tokens=1,2" %%b in (%%a) do (
  155.   set/a .=%%c-1
  156.   for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  157.   if "!%%b:%win%=!" neq "!%%b!" set win=y
  158. )
  159. ))
  160. (set/a asc%zhi%+=1
  161. set 悔= !z%pos%!!z%poh%!!悔!
  162. if !win! neq y goto :loop)
  163. for /l %%a in (0,1,39) do (echo    !li%%a!)
  164. set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手 !z%pos%!!z%poh%!(%poh%)  胜出   <nul
  165. pause
  166. endlocal&goto :restart
  167. :悔
  168. if not defined 悔 goto :eof
  169. if "!悔:~6,1!" equ "" goto :eof
  170. for %%a in (!悔:~^,6!) do (set str=%%a
  171. set/a poh=!str:~-1!,pos=!str:~,1!
  172. set/a piph=poh+pos-1,niph=19+pos-poh,liph=poh*2-1,lips=pos*2+1
  173. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  174. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  175. for %%a in ( "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  176. for /f "tokens=1,2" %%b in (%%a) do (
  177.    set/a .=%%c-1
  178.    for %%d in (!.!) do (set %%b=!%%b:~0,%%d!#!%%b:~%%c!)
  179. )
  180. )
  181. for /f "tokens=1,2" %%b in ("li!liph! !lips!") do (
  182. set/a .=%%c-1
  183. for %%d in (!.!) do (set %%b=!%%b:~0,%%d!┼!%%b:~%%c!)
  184. ))
  185. set/a asc%zhi%-=1
  186. set 悔=!悔:~6!
  187. set error=你悔棋,耍赖皮!
  188. if not defined 悔 goto :eof
  189. set/a poh=!悔:~2,1!,pos=!悔:~1,1!,liph=poh*2-1,lips=pos*2+1
  190. set say=say !z%pos%!!z%poh%!(%poh%)
  191. goto :eof
  192. :quit
  193. taskkill /fi "WINDOWTITLE eq 批处理五子棋*" /im cmd.exe
复制代码

[ 本帖最后由 netbenton 于 2009-6-4 12:42 编辑 ]
作者: netbenton    时间: 2009-5-25 22:37

增加了背景音乐《春江花月夜》,如高山流水般的声音,听着下五棋子,太爽了,包含播放代码及音乐文件仅96K,请看链接:http://www.cn-dos.net/forum/viewthread.php?tid=47326&fpage=1 (在41楼)


正在想学习vbs,所以搞了这个;写得不好,大家不要见笑呀!

[要看最终修改请到一楼下载附件]

[ 本帖最后由 netbenton 于 2009-8-14 21:02 编辑 ]
作者: Batcher    时间: 2009-6-3 01:35

23楼没有看到更新记录啊?
作者: zt404834426    时间: 2009-6-3 11:42

这个都能做出来,真是让我这个菜鸟震惊!是在佩服楼主的强大能力。五体投地佩服ing..
只是我老是看花眼,如果能支持鼠标的话那真是完美啊!!.
作者: netbenton    时间: 2009-6-3 12:49

re 25楼
不好意思,现在补上了

re 26楼
有时间的话,看来要做个支持鼠标的才行;不过得用到三方。
要是用vbs协助,可以支持鼠标的话就好了。
作者: sclijunjie12    时间: 2009-6-4 11:54

看来我得加紧的学习 这样的都有
作者: lovecmd    时间: 2009-6-4 17:19     标题: 努力

我玩过LZ的老版本,那个时候我还能赢上几盘,现在真是没的赢了。
我是新手,看到各位老师如此厉害,试想我也行吗?
作者: netbenton    时间: 2009-6-14 18:41

鼠标版批处理五子棋做好了,需要cmos.exe三方鼠标支持
cmos.exe 下载地址:http://bbs.bathome.net/viewthread.php?tid=3148&extra=&page=1

  1. @echo off&setlocal enabledelayedexpansion
  2. mode con: lines=43 cols=110
  3. set li39=    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S
  4. set  li0=  ┌─────────────────────────────────────┐
  5. set  li1=A│┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐│A
  6. set var=1
  7. for %%a in (!li39:~5^,-1!) do (set/a var+=2&set li!var!=%%a│├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤│%%a)
  8. for /l %%a in (2,2,36) do (set li%%a=  ││  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ││)
  9. set li37=S│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘│S
  10. set li38=  └─────────────────────────────────────┘
  11. set str=a b c d e f g h i j k l m n o p q r s
  12. for %%a in (%str%) do (set/a .+=1,%%a=.&set z!.!=%%a)
  13. set li5=!li5!   五 棋 子 人 机 对 战
  14. set li7=!li7!        批 处 理
  15. set li10=!li10!      电 脑 水 平 中 等
  16. set li31=!li31!  由 netbenton 编写完成
  17. set li33=!li33!  棋盘设计参照了 batman
  18. set li35=!li35!  鼠标三方支持  Defanive
  19. set li16=!li16!           [重来]
  20. set li17=!li17!         [退出]
  21. set li22=!li22!           [悔棋]
  22. set li19=!li19!       电脑最后下在:
  23. title   批处理五子棋
  24. set str=###################
  25. set .=0
  26. for /l %%a in (1,1,19) do (
  27.         set he%%a=!str!&set sh%%a=!str!
  28.         for /l %%b in (1,1,19) do set [%%a.%%b=0
  29. )
  30. set .=33
  31. for /l %%a in (5,1,19) do (
  32.         set pi%%a=!str:~,%%a!&set ni%%a=!str:~,%%a!
  33.         set pi!.!=!str:~,%%a!&set ni!.!=!str:~,%%a!
  34.         set/a .-=1
  35. )
  36. set ●=○&set ○=●
  37. set zhi=●
  38. set say=say
  39. ::设置电脑IQ
  40. set idea=@@@@#.1 #@@@@.5 @#@@@.4 @@@#@.2 @@#@@.3 vs0 $$$$#.1 #$$$$.5 $$#$$.3 $#$$$.4 $$$#$.2 vs1 #@@@##.2 ##@@@#.5 #@@#@#.3 #@#@@#.4 vs2 #@##@@#.4-5 #@@##@#.4-3 #@#@@.3-5 @#@@#.4-1 #@@@##.2-W-1 ##@@@#.5-W-6 vs3
  41. set idea=!idea! ##@@@.4-W-5 @@@##.2-W-1 @##@@#.4-5 #@##@@.3-4 #@#@#@.4-2 @#@#@#.3-5 vs4 #$$#$#.3-W-6-1 #$#$$#.4-W-1-6 ##$$$#.5-W-1-6 #$$$##.2-W-1-6 vs5 ##@@##.2-5-W-6-1 #@#@#.3-w-1-5 ##$$$.W-4-5 $$$##.W-2-1 $$##$.W-2-3 $##$$.W-3-4 $#$$#.W-4-1 $#$#$.W-4-2 #$$#$.W-2-5 ##$$#.W-4-W-1-5 #$$##.W-2-W-1-5 #$#$#.W-3-W-1-5 #$##$#.W-3-4
  42. set idea=!idea! vs7 #$$$#.1-5 @@###.4-3 ###@@.3-4 ###@###.3-5-W-2-6-W-1-7 vs8 ###$###.3-5 vs9 @####.4 ####@.2 #$###.3 ###$#.3
  43. set idea=!idea! ###@#.3 #@###.3 $####.3 ####$.3 $$###.3 ###$$.3 $#$##.2 ##$#$.4 #$##$.3 $##$#.3 $###$.3 vs10
  44. set iqam=1000000000
  45. color 2f
  46. :restart
  47. cls
  48. setlocal enabledelayedexpansion
  49. for /l %%a in (0,1,18) do (echo;  )
  50. set /p =                              选择谁先下: [玩家]  [电脑]  [退出]<NUL
  51. :cmos1
  52. cmos c f
  53. set var=!errorlevel!
  54. set /a var=!var:~-2!*100+!var:~-6,-3!/4
  55. if "!var!" equ "2015" goto :quit
  56. if "!var!" equ "2013" (set onez=○&set towz=●&set hou=☆)
  57. if "!var!" equ "2011" (set onez=●&set towz=○&set hou=★)
  58. if not defined onez goto :cmos1
  59. set a!onez!=电脑&set a!towz!=玩家
  60. (
  61. set ttr=!idea:@=%onez%!&set ttr=!ttr:$=%towz%!
  62. set idea=
  63. for %%a in (!ttr!) do (
  64.         for /f "tokens=1,2 delims=." %%b in ("%%a") do (set %%b=%%c&set idea=!idea! %%b)
  65. )
  66. set ttr=
  67. set li27=!li27!    !onez! !a%onez%!
  68. set li25=!li25!    !towz! !a%towz%!
  69. set/a pos=10,poh=10&goto :getok
  70. )
  71. :loop
  72. (if %zhi% equ %onez% goto :men
  73. set .=
  74. setlocal enabledelayedexpansion
  75. for %%a in (!idea!) do (
  76.         set str=%%a
  77.         if "!str:~,2!" neq "vs" (
  78.         for %%b in (he sh) do (
  79.                 set all=!%%b1!!%%b2!!%%b3!!%%b4!!%%b5!!%%b6!!%%b7!!%%b8!!%%b9!!%%b10!!%%b11!!%%b12!!%%b13!!%%b14!!%%b15!!%%b16!!%%b17!!%%b18!!%%b19!
  80.                 if "!all:%%a=!" neq "!all!" (
  81.                         for /l %%c in (1,1,19) do (
  82.                                 if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c.%%a.!iqam!
  83.                         )
  84.         )        )
  85.         for %%b in (pi ni) do (
  86.                 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!
  87.                 if "!all:%%a=!" neq "!all!" (
  88.                         for /l %%c in (5,1,33) do (
  89.                                 if "!%%b%%c:%%a=!" neq "!%%b%%c!" set/a .+=1&set put!.!=%%b %%c.%%a.!iqam!
  90.                         )
  91.         )        )
  92.         ) else (
  93.                 set/a "iqam=(iqam+1)/8"
  94.                 if %%a equ vs8 if defined . goto :get
  95.                 if %%a equ vs9 if defined . goto :get
  96.                
  97.                
  98.         )
  99. ))
  100. if defined . (goto :get)
  101. echo. 已经和棋了
  102. pause
  103. endlocal&goto :restart
  104. :men
  105. (
  106. set/a .=lips-1&for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%hou%!%%b:~%%c!)
  107. set li38=!li38![%悔:~,24%]
  108. cls
  109. for /l %%a in (0,1,39) do (echo    !li%%a!)
  110. for /f "tokens=1-3" %%b in ("li!liph! !lips! !.!") do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  111. set li38=%li38%
  112. echo !say:say=%error%!
  113. )
  114. :cmoslp
  115. (cmos c f
  116. set user=!errorlevel!
  117. set/a poh1=1!user:~-2!-100,pos1=!user:~-6,-3!/2-2
  118. set/a poh=poh1/2,pos=pos1/2,poh1=poh1-poh,pos1=pos1-pos,var=pos-1
  119. if "!poh!.!pos!" equ "8.23" endlocal&goto :restart
  120. if "!poh!.!pos!" equ "9.23" goto :quit
  121. if "!poh!.!pos!" equ "11.23" call :悔&goto :men
  122. if !poh1!!pos1! neq !poh!!pos! goto :cmoslp
  123. if not defined [!poh!.!pos! set error=输入点不存在!auser!&goto :men
  124. )
  125. if "!he%poh%:~%var%,1!" neq "#" set error=该点已经有子&goto men
  126. goto :getok
  127. :get
  128. set `=
  129. ::取最佳的走法
  130. for /l %%z in (!.!,-1,1) do (
  131. for /f "tokens=1,2,3 delims=." %%1 in ("!put%%z!") do (
  132. for /f "tokens=1-4" %%a in ("%%1 %%2") do (
  133.         set iqm=%%3
  134.         set vara=!%%a%%b:*%%c=!srqponmlkjihgfedcba0
  135.         for %%4 in (!%%2:-^=;!) do (
  136.           if "%%4" equ "W" (set/a iqm=iqm/5*3) else (
  137.                 set/a var=!vara:~19,1!+%%4
  138.                 if "%%a" equ "he" (set/a poh=%%b,pos=20-var)
  139.                 if "%%a" equ "sh" (set/a poh=20-var,pos=%%b)
  140.                 if %%b lss 19 (set/a var=%%b-var+1) else (set/a var=38-%%b-var+1)
  141.                 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))
  142.                 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))
  143.                 if not defined R!pos!R!poh!R set /a `+=1&set ram!`!=R!pos!R!poh!R
  144.                 set/a R!pos!R!poh!R+=iqm
  145.           )
  146.         )
  147. )
  148. )
  149. )
  150. set rmk=0
  151. for /l %%a in (1,1,!`!) do (
  152.         for %%b in (!ram%%a!) do (
  153.                 for %%c in (!%%b!) do (
  154.                         if %%c gtr !rmk! set/a rmk=%%c,.=0
  155.                         if %%c equ !rmk! set rmz!.!=%%b&set/a .+=1
  156.                 )
  157. )        )
  158. set/a .=!random!%%.
  159. for /f "tokens=1,2 delims=R" %%a in ("!rmz%.%!") do (set/a pos=%%a,poh=%%b)
  160. rem start set r^&echo !.!^&pause^&exit
  161. endlocal&set/a pos=%pos%,poh=%poh%
  162. set say=say !z%pos%!!z%poh%!(%poh%)&set error=电脑最后下在:
  163. :getok
  164. set zhi=!%zhi%!&set win=!zhi!!zhi!!zhi!!zhi!!zhi!
  165. (set/a piph=poh+pos-1,lips=pos*2+1,niph=19+pos-poh,liph=poh*2-1
  166. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  167. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  168. for %%a in ("li!liph! !lips!" "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  169.         for /f "tokens=1,2" %%b in (%%a) do (
  170.                 set/a .=%%c-1
  171.                 for %%d in (!.!) do (set %%b=!%%b:~0,%%d!%zhi%!%%b:~%%c!)
  172.                 if "!%%b:%win%=!" neq "!%%b!" set win=y
  173.         )
  174. ))
  175. (set/a asc%zhi%+=1
  176. set 悔= !z%pos%!!z%poh%!!悔!
  177. if !win! neq y goto :loop)
  178. cls
  179. for /l %%a in (0,1,39) do (echo    !li%%a!)
  180. set/p=   !a%zhi%! %zhi%子 第!asc%zhi%!手 !z%pos%!!z%poh%!(%poh%)  胜出 单击鼠标继续。。。  <NUL
  181. cmos c f
  182. endlocal&goto :restart
  183. :悔
  184. if not defined 悔 goto :eof
  185. if "!悔:~6,1!" equ "" goto :eof
  186. for %%a in (!悔:~^,6!) do (set str=%%a
  187. set/a poh=!str:~-1!,pos=!str:~,1!
  188. set/a piph=poh+pos-1,niph=19+pos-poh,liph=poh*2-1,lips=pos*2+1
  189. if !piph! lss 19 (set/a pips=pos) else (set/a pips=20-poh)
  190. if !niph! lss 19 (set/a nips=pos) else (set/a nips=poh)
  191. for %%a in ( "he!poh! !pos!" "sh!pos! !poh!" "pi!piph! !pips!" "ni!niph! !nips!") do (
  192.         for /f "tokens=1,2" %%b in (%%a) do (
  193.                         set/a .=%%c-1
  194.                         for %%d in (!.!) do (set %%b=!%%b:~0,%%d!#!%%b:~%%c!)
  195.         )
  196. )
  197. for /f "tokens=1,2" %%b in ("li!liph! !lips!") do (
  198.         set/a .=%%c-1
  199.         for %%d in (!.!) do (set %%b=!%%b:~0,%%d!┼!%%b:~%%c!)
  200. ))
  201. set/a asc%zhi%-=1
  202. set 悔=!悔:~6!
  203. set error=你悔棋,耍赖皮!
  204. if not defined 悔 goto :eof
  205. set/a poh=!悔:~2,1!,pos=!悔:~1,1!,liph=poh*2-1,lips=pos*2+1
  206. set say=say !z%pos%!!z%poh%!(%poh%)
  207. goto :eof
  208. :quit
  209. taskkill /fi "WINDOWTITLE eq 批处理五子棋*" /im cmd.exe
复制代码

作者: zhouyongjun    时间: 2009-6-30 20:53

我电脑上set /a var=!var:~-2!*100+!var:~-6,-3!/4 这句报错,说找不到操作数?
作者: netbenton    时间: 2009-7-1 07:24

可能是鼠标三方已经更新,请到下面的地址下载打包好的:
http://www.cn-dos.net/forum/viewthread.php?tid=47326&fpage=1
50楼

60楼有所更新

对比了一下,一些flash做的五子棋游戏的智能还比不上这个批处理的,所以该的批处理五子棋游戏,可玩性还是有的,无聊时可以休闲玩一下对比了一下,一些flash做的五子棋游戏的智能还比不上这个批处理的,所以该的批处理五子棋游戏,可玩性还是有的,无聊时可以休闲玩一下

点此下载:http://www.cn-dos.net/forum/attachment.php?aid=4906&checkid=af590&download=1

[要看最新终修改请到一楼下载附件]

[ 本帖最后由 netbenton 于 2009-8-14 21:00 编辑 ]
作者: hacker_    时间: 2009-7-5 17:53

非常佩服楼主!!!!
作者: allisfree    时间: 2009-9-22 21:27

哥们太牛了,不知道bash下有没有类似的东西?
作者: a4188809b    时间: 2009-10-2 08:42

这是什么原因啊  怎么不能用 出错!
作者: netbenton    时间: 2009-10-2 13:04

回复35楼,
谢谢作用。

第一张图是因为:存放的路径中含有空格所至,已经在一楼更正,请重新下载

第二、三张图是因为:三方工具工作的不稳定,正在联系写cmos.exe的作者更正。


=========

为出错给你造成的不便表示谦意。。。
作者: home    时间: 2009-10-4 09:47

太好玩了,批处理也能做出游戏,劲
作者: cnhacker    时间: 2009-10-28 16:25

好牛X啊,不得不顶!
作者: BillGates    时间: 2010-7-17 10:57

能不能去掉那个主机箱滴的一声呀?
作者: zcydez    时间: 2010-7-17 11:26

12L的是HTML代码
应该保存为*.html。
作者: cjiabing    时间: 2010-8-20 13:10

楼主NB,大胆创新,说干就干,呵呵,关键还是技术高超,顶礼膜拜!~~
作者: wofei1314    时间: 2010-9-18 11:36     标题: 回复 1楼 的帖子

太厉害了,佩服!!!!
作者: Hello123World    时间: 2011-1-24 12:40

算法精妙,不过玩了一把,玩的眼花(心思都花在看几行几列了),如果能支持鼠标就牛x了
作者: wankoilz    时间: 2011-5-16 13:28

我下输了...:
作者: cjiabing    时间: 2011-8-4 02:14

回复 36# netbenton


    老兄,改下颜色喂!~棋子的颜色和棋盘的颜色没有明显区分,看着吃力!~最好换成三色的,棋盘绿色,黑子(蓝色)、白子(黄色)各一色。
作者: CrLf    时间: 2011-8-4 12:02

回复 46# cjiabing


    那刷新棋盘的效率也太低了吧...除非决定了用第三方,要不然恐怕本顿不会选择彩色棋子
作者: cjiabing    时间: 2011-8-4 15:05

回复 47# CrLf


    放心,LZ有秘密武器。
作者: CrLf    时间: 2011-8-4 17:18

回复 48# cjiabing


   sybc 吗?不过话说回来,忽然发现顶楼的代码已经用到了第三方了...
作者: cjiabing    时间: 2011-8-4 18:05

回复 49# CrLf


    正是,你又知道?
    很郁闷,我的系统不支持它这个三方,有空换系统了再测试。
作者: CUer    时间: 2011-8-4 19:30

回复 50# cjiabing


你用的哪个?sybc.exe?还是动态生成的.com?
作者: cjiabing    时间: 2011-8-4 19:45

回复 51# CUer


    syxq.com
    syxq.com用法演示及说明.bat
没有结果,不停滴在那里闪光标。
作者: 狱渊    时间: 2013-5-1 14:09

很不错的游戏
作者: afeng999    时间: 2013-7-5 09:18

谢谢分享,技术贴...
作者: xiaozhou309    时间: 2013-8-15 10:48

好东西,学习学习
1
作者: tail88    时间: 2014-12-26 14:15

感谢分享啊。
作者: 凡凡之呗    时间: 2015-2-5 12:32

回复 1# netbenton


    这个怎么用啊
作者: 飛雪    时间: 2015-2-27 10:12

學習了,趕快玩看看
作者: 尘丶    时间: 2015-4-4 22:31

有点小难,跟我差不多水平- =不错 就是看不到电脑下的那颗棋子
作者: hqmwj    时间: 2015-4-21 08:53

我想,我如果看完这个看懂的话,那就好了。
我也能达到初级或中级的级别了,膜拜了!
作者: weln2015    时间: 2015-5-18 11:46

这个不错 下来研究下
作者: 465202    时间: 2015-5-30 19:38

回复 15# 随风
十二楼是网页代码,但我的是
[attach]8756[/attach]
作者: shujutong    时间: 2015-6-18 15:05

唉!!!这都行。。。。真是佩服
作者: shujutong    时间: 2015-6-18 15:20

测试 win7退出时 会出现不能关闭的现象 比如CMD窗口标题获取管理员权限时会加上 管理员:  批处理五子棋什么什么,而导致不能识别,xp没试
可以稍微动下taskkill命令
作者: bugkill    时间: 2016-2-10 21:33

不支持win10啊,鼠标点不了
作者: mantianxinglzm    时间: 2016-4-26 17:28

感谢楼主分享,下载还不要积分,楼主真好,论坛真好
作者: 懒蚁    时间: 2016-8-18 15:55


牛人.
作者: a2002    时间: 2017-6-29 15:53

牛逼啊,好游戏
作者: hztccy    时间: 2021-8-23 00:59

好多大神牛掰
作者: newuser    时间: 2021-9-27 10:19

东西南北合




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2