[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我从昨晚开始也在编写井字棋,前面都很简单,唯独到了ai部分没有了方向,若只是随机落子倒是简单,可是井字棋的特点是至少思考3层才不会忽略最优落子,但是我换了各种方法,可惜越写越乱,脑子已经成了浆糊
先把双人版的发上来,今天看到这个帖子才发现思路又和523066680兄撞车了(看来咱俩格外有缘...):
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a str=1492357816,xs=1,xs2=0
  3. set hh=^
  4. set $2=该位置已被使用!hh!
  5. set $3=输入的不是纯数字!hh!
  6. set .0=×
  7. set .1=●
  8. set other=1 2 3 4 5 6 7 8 9
  9. set b=1@2@3,4@5@6,7@8@9,1@4@7,2@5@8,3@6@9,1@5@9,3@5@7
  10. set all=┏━┳━┳━┓!hh!┃1 ┃2 ┃3 ┃!hh!┣━╋━╋━┫!hh!┃4 ┃5 ┃6 ┃!hh!┣━╋━╋━┫!hh!┃7 ┃8 ┃9 ┃!hh!┗━┻━┻━┛
  11. set th=  
  12. setlocal
  13. for /l %%a in (1 1 31) do (
  14. for /f "tokens=1,2" %%b in ("!xs! !xs2!") do (
  15. call :again !errorlevel! !.%%b! !.%%c!
  16. )
  17. set /a "xs=^!xs*^!!errorlevel!+xs*!errorlevel!","xs2=^!xs"
  18. if !errorlevel!==99 (
  19. cls&echo !all!
  20. echo Game Over,!winner!获胜
  21. endlocal&setlocal
  22. pause
  23. )
  24. )
  25. :again
  26. cls&echo !all!
  27. echo;!$%1!!choice!
  28. set winner=%2
  29. set /p n=请输入方格位置
  30. if defined %2%n% (exit /b 2) else (
  31. if "!all!"=="!all:%n% = !" (exit /b 3) else (
  32. set "all=!all:%n% =%2!"
  33. set choice=%choice% %n%
  34. )
  35. set %2%n%=!str:~%n%,1!
  36. )
  37. :test
  38. for %%a in (!b:@^=+%2!) do (
  39. set /a "test+=(%2%%~a)/15"
  40. )
  41. if %test% gtr 0 exit /b 99
  42. exit /b 0
复制代码

TOP

ai部分没能解决多层剪枝的问题,一直没有成功对3层之内最优解的搜索,快疯了,实在不想继续写了...就这么算了吧,话说这若放在出题区可真是一个好题目

TOP

返回列表