yslyxqysl 当前离线
荣誉版主
@echo off set cbt=0 if /i "%1"=="/s" set cbt=1 if /i "%1"=="/b" set cbt=0 if "%cbt%"=="0" (mode con cols=31 lines=16) else mode con cols=19 lines=11 if /i "%1"=="/?" goto help setlocal ENABLEDELAYEDEXPANSION title 四子棋 by yslyxqysl&color 60 set "bc=●"&set "wc=○" set n!bc!=!wc!&set n!wc!=!bc! goto start%cbt% :start0 set "pc=!bc!" for /l %%i in (1 1 6) do for /l %%j in (1 1 7) do set "c%%i%%j= "&set "c%%i%%j= " :loop0 cls&echo ┌─┬─┬─┬─┬─┬─┬─┐ for /l %%i in (1 1 6) do ( for /l %%j in (1 1 7) do set /p"=│!c%%i%%j!"<nul echo │&if not %%i==6 echo ├─┼─┼─┼─┼─┼─┼─┤ ) echo └─┴─┴─┴─┴─┴─┴─┘ echo, 1 2 3 4 5 6 7 goto input :start1 set "pc=!bc!" set "c11=┌"&set "c17=┐"&set "c61=└"&set "c67=┘" for /l %%j in (2 1 6) do set "c1%%j=┬"&set "c6%%j=┴" for /l %%z in (2 1 5) do ( set "c%%z1=├"&set "c%%z7=┤" for /l %%j in (2 1 6) do set "c%%z%%j=┼" ) :loop1 cls&echo ┏━━━━━━━┓ for /l %%z in (1 1 6) do set /p=┃<nul&(for /l %%i in (1 1 7) do set /p=!c%%z%%i!<nul)&echo ┃ echo ┃1 2 3 4 5 6 7 ┃&echo ┗━━━━━━━┛ goto input :input if not "!isend!"=="" goto !isend! set input=&set /p input=请!pc!方输入: if /i "!input!"=="e" exit if /i "!input:~0,1!"=="r" ( if /i "!input:~1,1!"=="b" set cbt=0&set input=r&mode con cols=32 lines=15 if /i "!input:~1,1!"=="s" set cbt=1&set input=r&mode con cols=19 lines=11 if "!input!"=="r" goto start!cbt! ) if /i "!input!"=="h" goto help if /i "!input!"=="?" goto help echo !input!|findstr "^[1-7]$">nul||goto loop!cbt! if "!c1%input%!"=="!bc!" goto loop!cbt! if "!c1%input%!"=="!wc!" goto loop!cbt! for /l %%z in (1 1 6) do ( if not "!c%%z%input%!"=="!bc!" if not "!c%%z%input%!"=="!wc!" set cp=c%%z!input! ) set !cp!=!pc!&call :isdraw&call :iswin set "pc=!n%pc%!" goto loop!cbt! :isdraw set isend=draw for /l %%j in (1 1 7) do if not "!c1%%j!"=="!bc!" if not "!c1%%j!"=="!wc!" set isend= goto :eof :iswin for /l %%j in (-1 1 1) do ( for /l %%k in (-1 1 1) do ( set lptm=0&set tp=0 if %%j==0 if %%k==0 set tp=1 if tp neq 1 call :getcdt %%j %%k&set d%%j%%k=!tp! ) ) for %%l in ("-1 0" "-1 -1" "0 -1" "-1 1") do ( for /f "tokens=1,2 delims= " %%m in ("%%~l") do ( set /a adm=0-%%m,adn=0-%%n call set /a "urc=!d%%m%%n!+%%d!adm!!adn!%%+1" if !urc! geq 4 set isend=win ) ) goto :eof :getcdt set /a lptm+=1 set /a cdta=%cp:~1,1%+%1*%lptm%,cdtb=%cp:~2,1%+%2*%lptm% if !cdta! lss 1 goto :eof if !cdta! gtr 6 goto :eof if !cdtb! lss 1 goto :eof if !cdta! gtr 7 goto :eof if !c%cdta%%cdtb%!==!pc! set /a tp+=1 if !lptm! equ 3 (goto :eof) else goto getcdt :win set isend=&echo !n%pc%!方胜! pause>nul&goto start!cbt! :draw set isend=&echo 和棋! pause>nul&goto start!cbt! :help cls&echo Page 1/2 echo 输入列的代码,棋子 echo 就会放在此列最下面 echo 的空白处。有任何一 echo 方的四个子或以上连 echo 成一条直线就获胜。 echo 棋盘满了就和局。 pause>nul&cls echo Page 2/2 echo 支持两种棋盘模式, echo 输入rb或rs即可选择 echo 棋盘模式。 echo. echo E 退出 echo R[B ^| S] 重新开始 echo H ^| ? 帮助 pause>nul if "!cbt!"=="0" (mode con cols=32 lines=15) else mode con cols=19 lines=11 goto start!cbt!复制代码
评分人数
myzwd 当前离线
少尉
TOP
defanive 当前离线
技术组成员
wxcute (冰疼)当前离线