返回列表 发帖

[游戏娱乐] 批处理游戏21点

@echo off
if "%1"=="/?" call :help
mode con lines=16 cols=40
title 21点  by yslyxqysl&color 0e
setlocal ENABLEDELAYEDEXPANSION
set "f="&set "poker= "&set /a pw=0,cw=0
set "b=(set begin=o&goto :eof)"
set "c=call :give p&(if ^!begin^!a==oa set begin=&goto shuffle)"
:shuffle
cls&echo 洗牌中...
:shuffle
set /a tp=%random%%%52+4
if "!poker: %tp% = !"=="%poker%" set "poker=%poker%%tp% "&set /a num+=1
if "%num%"=="52" (set num=0) else goto shuffle
:reset
for %%i in (p c) do set /a %%in=0,%%in=0,%%ia=0,%%ib=0
(%c%)&(%c:p=c%)&(%c%)&(%c:p=c%)
if %pa% equ 21 goto show
if %ca% equ 21 goto show
:player
cls&echo 电脑:%cw%
echo ┏━┓┏┳┓
set /p =┃!c1f!<nul&(if "!c1f:~1,1!"=="" set /p = <nul)&echo ┃┣╋┫
set /p =┃!c1n!<nul&(if "!c1n:~1,1!"=="" set /p = <nul)&echo ┃┣╋┫
echo ┗━┛┗┻┛
echo 和:*&for /l %%i in (1 1 20) do set /p =─<nul
echo 玩家:%pw%
for /l %%a in (1 1 %pn%) do set /p =┏━┓<nul
echo.&for /l %%b in (1 1 %pn%) do set /p =┃!p%%bf! ┃<nul
echo.&for /l %%c in (1 1 %pn%) do ^
set /p =┃!p%%cn!<nul&(if "!p%%cn:~1,1!"=="" set /p = <nul)&set /p =┃<nul
echo.&for /l %%d in (1 1 %pn%) do set /p =┗━┛<nul
echo.&echo 和:%pa%&echo.&set do=&set /p "do=要吗?:"
if "!do!"=="" %c%
if /i "!do!"=="c" set /a pw=0,cw=0&goto player
if /i "!do!"=="r" set "poker= "&goto shuffle
if /i "!do!"=="e" exit
if /i "!do!"=="h" call :help&goto player
if "!do!"==" " goto cpu
if %pa% gtr 21 (goto show) else if %pa% neq 21 goto player
:cpu
if %ca% lss %pa% %c:p=c%&if !ca! geq 21 (goto show) else goto cpu
:show
if %pa% gtr %ca% set winner=p
if %pa% lss %ca% set winner=c
if %pa% gtr 21 set winner=c
if %ca% gtr 21 set winner=p
if "%winner%"=="p" (set /a pw+=1) else set /a cw+=1
cls&echo 电脑:%cw%
for /l %%a in (1 1 %cn%) do set /p =┏━┓<nul
echo.&for /l %%b in (1 1 %cn%) do ^
set /p =┃!c%%bf!<nul&if "!c%%bf:~1,1!"=="" (set /p = ┃<nul) else set /p =┃<nul
echo.&for /l %%c in (1 1 %cn%) do ^
set /p =┃!c%%cn!<nul&if "!c%%cn:~1,1!"=="" (set /p = ┃<nul) else set /p =┃<nul
echo.&for /l %%d in (1 1 %cn%) do set /p =┗━┛<nul
echo.&echo 和:%ca%&(for /l %%i in (1 1 20) do set /p =─<nul)&echo 玩家:%pw%
for /l %%a in (1 1 %pn%) do set /p =┏━┓<nul
echo.&for /l %%b in (1 1 %pn%) do ^
set /p =┃!p%%bf!<nul&if "!p%%bf:~1,1!"=="" (set /p = ┃<nul) else set /p =┃<nul
echo.&for /l %%c in (1 1 %pn%) do ^
set /p =┃!p%%cn!<nul&if "!p%%cn:~1,1!"=="" (set /p = ┃<nul) else set /p =┃<nul
echo.&(for /l %%d in (1 1 %pn%) do set /p =┗━┛<nul)&echo.&echo 和:%pa%&echo.
if "%winner%"=="p" (set /p =玩家胜^^!<nul) else ^
if "%winner%"=="c" (set /p =电脑胜^^!<nul) else set /p =平^^!<nul
set winner=&ping /n 4 127.^1>nul&cls&goto reset
:give
set /a %1n+=1
if "%poker:~2,1%"==" " (set "tp=%poker:~1,1%"&set "poker=%poker:~2%") else ^
set tp=%poker:~1,2%&set "poker=%poker:~3%"
set /a %1!%1n!n=%tp%/4
set /a tp=%tp%%%4
set %1!%1n!f=!f:~%tp%,1!
call set tp=%%%1!%1n!n%%
if %tp%==1 (set /a %1a+=11&set %1!%1n!n=A&set %1b=1) else (
if %tp%==11 (set /a %1a+=10&set %1!%1n!n=J) else (
  if %tp%==12 (set /a %1a+=10&set %1!%1n!n=Q) else (
   if %tp%==13 (set /a %1a+=10&set %1!%1n!n=K) else (
  set /a %1a+=!tp!
))))
if !%1a! gtr 21 if !%1b!==1 set /a %1a-=10,%1b=0
if "!poker!"==" " if %1==p %b% else if %cn%==1 %b% else ^
if %pa% lss 21 if %ca% lss 21 if %ca% lss %pa% %b%
goto :eof
:help
cls
echo Page 1/2
echo 游戏规则:
echo ^
游戏开始,玩家和庄家每人得到两张牌,如果^
其中一人拿到A和一张代表10点的牌将获胜,^
两人都拿到则平局;如果不是,选择要牌与否^
使牌的点数和接近21又不超过21。当点数和大^
与或等于21时自动停止要牌。双方要完牌后,^
谁的点数和最接近21又不超过21就胜出。当双^
方点数和一样时,庄家获胜。
echo 请注意,庄家看得到玩家要牌的全过程。
echo.
echo 牌的点数:
echo 2-10  2-10
echo A  111(自动判断)
echo J Q K  10
pause>nul&cls
echo Page 2/2
echo 操作方法:
echo 回车  要牌
echo 空格+回车 不要牌
echo C  成绩清零
echo R  洗牌
echo E  退出
echo H  帮助
echo.
echo 声明:电脑绝对不会作弊。
pause>nul&goto :eofCOPY
1

评分人数

    • wxcute: 很好玩,谢谢分享。PB + 8
论坛标题管理观察员

颜色搭配不太好,看起来眼睛有些不舒服

TOP

以下建议仅供参考

可在第二句下面加上这些,让花色显示大些。既然是交互形式的,把牌居中显示是不是要好些呢?
你的帮助部分好像还没写,呵呵。
if "%1"=="21" goto 21
set CMDval="HKCU\Console\%%SystemRoot%%_system32_cmd.exe"
reg add %CMDval% /v "FontSize" /t REG_DWORD /d 0x0014000a /f>nul
start cmd /c %0 21&exit
:21
mode con lines=17 cols=40
reg delete %CMDval% /f>nulCOPY

TOP

建议删除附件,直接贴代码。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

能写出来都太利害了!!!!!

TOP

好东西啊 谢谢LZ辣

TOP

返回列表