Se suicidó mentalmente 2022-01-21 01:20 采纳率: 25%
浏览 33
已结题

下面这个批处理程序哪里错了

问题遇到的现象和发生背景

我学了三天的批处理,想要实现这个游戏程序即:给电脑和个人设置本金,用户输入赌注,通过随机生成数字比较用户和电脑随机数的大小进行判断用户和电脑的输赢情况。但是我运行了这个bat文件,显示出乱码

问题相关代码,请勿粘贴截图

@echo off
rem 输入界面设置:背景颜色、初始化用户和电脑本金设置
color 0a
set pcmoney=200
set money=2022
echo 你现在有2022元的本金
cls

rem 用户输入赌注的钱
:first
set /p wager=请输入赌注
if %wager% gtr %money% goto error
echo 按任意键继续
cls

rem 用户的骰子显示
set /a user=%random%%%6+1
set /a computer=%random%%%6+1
echo 你的骰子点数为:%user%
echo 电脑的骰子点数为:%computer%
cls

rem 进行判断,输出比赛结果
:judge
if %user% equ %computer% echo 打成平手!& echo 你的资金还有%money% &pause & goto nextpart
if %user% lss %computer% echo 你输了!&money-=wager & pcmoney+=wager & echo 你还有赌资%money% &pause & goto nextpart
if %user% gtr %computer% echo 你赢了!& money+=wager & pcmoney+=wager & echo 你还有赌资%money% &pause & goto nextpart

rem 判断错误时返回
:error
echo 请输入少于本金的数
goto first
cls

rem 判断你的输赢
:nextpart
if !money!lss 0 echo 你输了
if !pcmoney!lss 0 echo 你赢了
cls

运行结果及报错内容

'锛歠irst' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
璇疯緭鍏ヨ祵娉?

img

我的解答思路和尝试过的方法

我不知道是哪里错了,还请大家帮忙解答一下

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 四海一叶秋 2022-01-21 10:18
    关注

    记事本默认编码是uft8需要另存为ansi,还有符号不要用中文符号,变量计算要set /a。

    
    ```bash
    @echo off
    setlocal EnableDelayedExpansion
    rem 输入界面设置:背景颜色、初始化用户和电脑本金设置
    color 0a
    set pcmoney=200
    set money=2022
    echo 你现在有2022元的本金
    echo 按任意键继续
    pause>nul
    cls
    
    rem 用户输入赌注的钱
    :first
    set /p wager=请输入赌注
    if %wager% gtr %money% goto error
    cls
    
    rem 用户的骰子显示
    set /a user=%random%%%6+1
    set /a computer=%random%%%6+1
    echo 你的骰子点数为:%user%
    echo 电脑的骰子点数为:%computer%
    pause>nul
    cls
    
    rem 进行判断,输出比赛结果
    :judge
    if %user% equ %computer% echo 打成平手!& echo 你的资金还有%money% &pause&cls&goto nextpart
    if %user% lss %computer% echo 你输了!&set /a money-=%wager% &set /a pcmoney+=%wager% &echo 你还有赌资!money!&pause&cls&goto nextpart
    if %user% gtr %computer% echo 你赢了!&set /a money+=%wager%&set /a pcmoney-=%wager% &echo 你还有赌资!money!&pause&cls&goto nextpart
    
    rem 判断错误时返回
    :error
    echo 请输入少于本金的数
    goto first
    
    rem 判断你的输赢
    :nextpart
    if !money! lss 0 echo 你输了,游戏结束&pause&exit
    if !pcmoney! lss 0 echo 你赢了,游戏结束&pause&exit
    goto first
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 已采纳回答 1月21日
  • 修改了问题 1月21日
  • 修改了问题 1月21日
  • 展开全部

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line