中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 14:50
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 自制井字游戏测试 查看 863 回复 7
楼 主 自制井字游戏测试 发表于 2009-03-18 08:43 ·  中国 河北 廊坊 联通
中级用户
★★
积分 499
发帖 225
注册 2008-12-30 22:09
17年会员
UID 135392
性别 男
状态 离线
自制井字游戏测试
花了一下午写了个井字游戏游戏,上传测试.
由于还没有完成AI,所以先放在批处理讨论区,要是不合适的话,版主帮忙移动到下载区!
AI部分编写中,目前智能一般.(上传版未含AI)
初步自测无明显重大BUG,优化未完成!
欢迎各位提供BUG,优化代码,给予建议!
==============================
下载:http://upload.cn-dos.net/img/1378.rar
==============================
代码如下:
@ECHO OFF
COLOR F2
TITLE SYBN#
setlocal ENABLEDELAYEDEXPANSION
mode con cols=35 lines=10
SET M=●&SET N=○&SET K=·
: BEGAIN
SET WZ=22&SET XX=%M%&SET XZ=%M%&SET WIN=%K%&SET XZ2=%N%&set sl=0
for /l %%a in (-20,1,59) do (
SET K%%a=%K%
)
: xz
if %sl% gtr 8 set WIN=没有人&goto win
CALL :XX
IF %XZ% == %M% (
CALL :LZ
) ELSE (
CALL :LZ
)
CALL :YZ
IF %P% == ERR GOTO XZ
SET XZ3=%XZ%
SET XZ=%XZ2%
SET XZ2=%XZ3%
IF NOT %WIN% == %K% GOTO WIN
GOTO XZ
: WIN
CLS
call :XX
ECHO %win%胜利!
PAUSE
GOTO BEGAIN
:LZ
SET /P P=%XZ%:
IF "%P%" == "" SET LZ=22
for /l %%a in (1,1,3) do (
for /l %%b in (1,1,3) do (
if %p% == %%a%%b SET LZ=%P%&set wz=%p%&goto :eof
)
)
if "%p%" == "cmd" %p%
if %p% == "0" GOTO BEGAIN
if %p% == 1 SET LZ=31&set wz=31&goto :eof
if %p% == 2 SET LZ=32&set wz=32&goto :eof
if %p% == 3 SET LZ=33&set wz=33&goto :eof
if %p% == 4 SET LZ=21&set wz=21&goto :eof
if %p% == 5 SET LZ=22&set wz=22&goto :eof
if %p% == 6 SET LZ=23&set wz=23&goto :eof
if %p% == 7 SET LZ=11&set wz=11&goto :eof
if %p% == 8 SET LZ=12&set wz=12&goto :eof
if %p% == 9 SET LZ=13&set wz=13&goto :eof
set lz=22
GOTO :EOF
:YZ
SET P=0
set q=!K%LZ%!
IF NOT %q% == %K% SET P=ERR&GOTO :EOF
set /a sl=sl+1
SET K%LZ%=%XZ%
call :yz2 1
call :yz2 9
call :yz2 10
call :yz2 11
goto :eof
:yz2
set o=%1
SET /A P1=LZ-2*o&SET /A P2=LZ-1*o&SET /A P3=LZ&SET /A P4=LZ+1*o&SET /A P5=LZ+2*o
set q=!K%p1%!!K%p2%!!K%p3%!
if %q% == %xz%%xz%%xz% SET WIN=%XZ%&&GOTO :EOF
set q=!K%p2%!!K%p3%!!K%p4%!
if %q% == %xz%%xz%%xz% SET WIN=%XZ%&&GOTO :EOF
set q=!K%p3%!!K%p4%!!K%p5%!
if %q% == %xz%%xz%%xz% SET WIN=%XZ%&&GOTO :EOF
GOTO :EOF
:XX
for /l %%a in (1,1,3) do (
for /l %%b in (1,1,4) do (
set H%%b%%a=─
set S%%a%%b=│
)
)
for /l %%a in (1,1,3) do (
for /l %%b in (1,1,3) do (
set /a a=%%a+1&set /a b=%%b+1
IF %WZ% == %%a%%b SET H%%a%%b=━&SET H!a!%%b=━&SET S%%a%%b=┃&SET S%%a!b!=┃
)
)
CLS
ECHO ┌%H11%┬%H12%┬%H13%┐ 可以直接输入坐标
ECHO %S11%%K11%%S12%%K12%%S13%%K13%%S14% 左上为11,右下为33
ECHO ├%H21%┼%H22%┼%H23%┤ 也可以按照小键盘的
ECHO %S21%%K21%%S22%%K22%%S23%%K23%%S24% 数字排列顺序控制
ECHO ├%H31%┼%H32%┼%H33%┤ 输入0从新开局
ECHO %S31%%K31%%S32%%K32%%S33%%K33%%S34% 输入无效则从新输入
ECHO └%H41%┴%H42%┴%H43%┘ QQ:354324773
GOTO :EOF

[ Last edited by sl543001 on 2009-3-18 at 08:46 ]
SYBNQQ:354324773
2 发表于 2009-03-18 08:45 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
3 发表于 2009-03-18 08:49 ·  中国 河北 廊坊 联通
中级用户
★★
积分 499
发帖 225
注册 2008-12-30 22:09
17年会员
UID 135392
性别 男
状态 离线
哈哈斑竹好快!
确实有不少人做过了,
正在研究必胜AI,
到时候发出来,看看又没人能赢!
4 发表于 2009-04-09 00:55 ·  中国 广西 梧州 电信
初级用户
★★
积分 168
发帖 78
注册 2006-12-27 09:58
19年会员
UID 74699
性别 男
状态 离线
8 4 7 1
赢的几率达到80%
我抬头仰望,原来天还是跟原来一样高.
I look up to the rise, the original days or as high as the original.
5 发表于 2009-04-09 01:58 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
这个怎么会必胜?

必平局……
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
6 发表于 2009-04-09 04:21 ·  中国 江西 南昌 电信
初级用户
积分 58
发帖 41
注册 2009-04-03 00:04
17年会员
UID 141951
性别 男
状态 离线
能加点难度不?
7 发表于 2009-04-09 06:08 ·  中国 北京 海淀区 电信
初级用户
积分 100
发帖 46
注册 2006-12-19 04:57
19年会员
UID 73922
性别 男
状态 离线
弱弱问下,怎么玩...?
8 发表于 2009-04-10 00:08 ·  中国 江苏 南京 电信
新手上路
积分 14
发帖 10
注册 2009-03-20 01:38
17年会员
UID 141797
性别 男
状态 离线
顶一下,学习
论坛跳转: