标题: [特效代码] [分享]自己写的一个批处理石头剪刀布猜拳小游戏如有不足请指出 [打印本页]
作者: rogue_1983 时间: 2010-8-7 00:47 标题: [分享]自己写的一个批处理石头剪刀布猜拳小游戏如有不足请指出
本帖最后由 pcl_test 于 2016-11-17 05:25 编辑
- @echo off
- set /a vat=0
- :top
- color 1a
- mode con:cols=50 lines=30
- title 剪刀、包袱、锤游戏
- echo 剪刀、包袱、锤游戏
- echo.
- echo.
- echo.
- echo. 0代表剪刀、1代表包袱、2代表锤
- echo.
- echo.
- echo.
- set /a diannao=%random%%%3
- set /p var=请输入并按回车确认:
- if "%var%"=="0" goto :a
- if "%var%"=="1" goto :b
- if "%var%"=="2" goto :C
- echo 你输入有误,请重新输入!&ping /n 2 127.1>nul&goto :top
- :a
- set /a vat+=1
- if %diannao%==0 echo. 你剪刀,电脑剪刀,本局和平&goto :e
- if %diannao%==1 echo. 你剪刀,电脑包袱,本局你赢&goto :e
- if %diannao%==2 echo. 你剪刀,电脑锤, 本局你输&goto :e
- :b
- set /a vat+=1
- if %diannao%==0 echo. 你包袱,电脑剪刀,本局你输&goto :e
- if %diannao%==1 echo. 你包袱,电脑包袱,本局和平&goto :e
- if %diannao%==2 echo. 你包袱,电脑锤, 本局你赢&goto :e
- :c
- set /a vat+=1
- if %diannao%==0 echo. 你锤, 电脑剪刀,本局你赢&goto :e
- if %diannao%==1 echo. 你锤, 电脑包袱,本局你输&goto :e
- if %diannao%==2 echo. 你锤, 电脑锤, 本局和平&goto :e
- :e
- echo.
- echo.
- echo. 一共对比了%vat%次!&ping /n 3 127.1>nul&goto :top
复制代码
[ 本帖最后由 rogue_1983 于 2010-8-7 15:18 编辑 ]
作者: raymai97 时间: 2010-8-7 02:14
建议用"ping -n 〈秒数〉>nul"来代替pause>nul,因为会在Pause第一次后第二次pause不到,然后第三次才pause到。(如有错误请多多指教)
作者: caruko 时间: 2010-8-7 02:18
其实有种更简便的case方法,在if /? 里就有描叙
goto :case%var% || goto :e
:case0
...
:case1
...
:case 2
:e
作者: 随风 时间: 2010-8-7 03:02
本帖最后由 pcl_test 于 2016-11-17 20:24 编辑
- @echo off
- set .0=剪刀&set .1=包袱&set .2=锤
- for %%a in (00 11 22) do set ..%%a=本局和平
- for %%a in (01 12 20) do set ..%%a=本局你赢
- for %%a in (02 10 21) do set ..%%a=本局你输
- :start
- setlocal ENABLEDELAYEDEXPANSION
- echo 0代表剪刀、1代表包袱、2代表锤
- echo;&set /a diannao=!random!%%3
- set /p ren=请输入 &cls
- if not defined .%ren% echo 你输入有误,请重新输入&endlocal&echo;&goto start
- echo 你!.%ren%!,电脑!.%diannao%!,!..%ren%%diannao%!
- echo;&endlocal&goto start
复制代码
作者: rogue_1983 时间: 2010-8-7 09:20 标题: 特别感谢bat-Mfk
在这里特别感谢帮助过我的几个高手,我写这个小游戏费了不少精力,如果没有bat-Mfk以及几个高手的的支持,我的代码会存在缺陷.也许还有很多缺陷,往高手们继续关注并指正.万分感谢!是bathome.net和论坛的高手们让我不断得到了提高,再次鸣谢!
[ 本帖最后由 rogue_1983 于 2010-8-7 15:23 编辑 ]
作者: 523066680 时间: 2010-8-7 09:31
随风强悍啊!“发表于 2010-8-7 03:02 ”
作者: fkeqqkpdc 时间: 2010-8-7 23:38
我越来越喜欢批处理了
作者: onnfzstz69 时间: 2010-8-9 23:47
我 ……。。开始喜欢上批处理了。
作者: terse 时间: 2010-8-10 03:17
直接 相减怎么样
作者: hn2zsmzx 时间: 2010-8-19 21:30
能统计游戏结果更好
如 胜 x 局;平 x 局;输 x 局
作者: vsbat 时间: 2010-9-15 20:36
还有个小问题,就是 比如输入一个合法数据,第二次不输入任何数据,它还认为我是输入的先前的值
就是说 set / p var =
的话如果你直接回车,未输入任何值,那么变量 var 仍然存在且还是原来的值
建议在 e: 中加一句 set var =
作者: qcll 时间: 2010-9-18 20:17
经过我几天的翻贴,研究,终于完美解决了。- @echo off
- set a0=剪刀&set a1=包袱&set a2=锤
- for %%a in (00 11 22) do set b%%a=本局和平
- for %%a in (01 20 12) do set b%%a=本局你赢
- for %%a in (10 21 02) do set b%%a=本局你输
- for %%a in (shu ping ying gong) do set %%a=0
- :start
- echo 0代表剪刀、1代表包袱、2代表锤
- echo;&set /a diannao=%random%%%3 >nul 2>nul
- set ren=5
- set /p ren=请输入 &cls
- if not defined a%ren% echo 你输入有误,请重新输入&echo;&goto start
- setlocal enabledelayedexpansion
- echo 你!a%ren%!,电脑!a%diannao%!,!b%ren%%diannao%!
- echo;
- endlocal
- for %%a in (b00 b11 b22) do (if %%a == b%ren%%diannao% set /a ping+=1)
- for %%a in (b01 b20 b12) do (if %%a == b%ren%%diannao% set /a ying+=1)
- for %%a in (b10 b21 b02) do (if %%a == b%ren%%diannao% set /a shu+=1)
- set /a gong+=1
- echo 游戏共进行%gong%局,你赢%ying%局,平%ping%局,输%shu%局
- echo;
- goto start
复制代码
[ 本帖最后由 qcll 于 2010-9-18 20:21 编辑 ]
作者: HHM--HUANYU 时间: 2015-3-21 18:30
我还要研究
作者: pcl_test 时间: 2016-11-17 13:30
- @echo off&setlocal enabledelayedexpansion
- set /a 赢=平=输=0,#.1=#2=1,n=10000
- set #_1=剪刀&set #_2=石头&set "#_3= 布 "
- :start
- set c=&set /p c=请出拳[1剪刀、2石头、3布]:&cls
- if not defined c (goto end) else (
- echo;%c%|findstr "^[123]$">nul||(echo;输入有误!请重新输入&echo;&goto start)
- )
- set /a r=%random%%%3+1,t=c-r,n+=1
- if %t% equ 0 (set v=平) else if !#%t:-=.%! equ 1 (set v=输) else (set v=赢)
- set /a %v%+=1&set _%n%=第%n:~-3%局:玩家[!#_%c%!] %v%{!%v%!} 电脑[!#_%r%!]
- echo;!_%n%!&echo;&goto start
- :end
- echo;Game Over&echo;[赢:%赢% 平:%平% 输:%输%]
- echo;----------------------------------------
- for /f "tokens=2,4 delims=={}" %%a in ('2^>null set _') do echo;%%a%%b
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |