【发布时间】:2020-04-06 11:58:54
【问题描述】:
目前我正在尝试制作一款由粉丝制作的口袋妖怪游戏。我正在做一个卖精灵球的人。这是我用来制作它的代码。但由于某种原因,该文件无法执行最后一部分。顺便说一句,我也是编码的菜鸟。至少在某种程度上。另外,我使用Windows Batch。
@echo off
:setvariables
cls
set/a pokeballs=0
set/a pokemondollar=1000
set/a manprice=500
:Pokeball_Sale
cls
echo How many do you want to buy?
set/p pokeballamount=
set/a totalpokeballprice="pokeballamount * manprice"
echo The price = %totalpokeballprice%
pause
echo Do you want to buy it?
echo Press y for yes
echo Or press n for no
set/p ha=Choose
if %ha% == y goto Payment
if %ha% == n goto Upstairs_House3
:Payment
cls
if "pokemondollar%" GEQ "pokeballprice" set/a pokemondollar-=totalpokeballprice
set/a pokeballs+=pokeballamount
echo You spent %totalpokeballprice% on %pokeballamount%. You now have %pokeballs%.
【问题讨论】:
-
虽然
set /a不需要变量周围的百分号,但if需要:if "pokemondollar%" GEQ "pokeballprice"应该是if "%pokemondollar%" GEQ "%pokeballprice%" -
考虑使用choice 而不是
set /p进行简单的选择(例如Y/N) - 它自己进行错误处理(您只能输入有效的选择,所有其他输入都被拒绝) -
顺便说一句,如果你想尝试和学习编码,我建议你放弃 windows 批处理,转而使用更现代和友好的脚本语言(即 python)
-
@FedericoDestefanis,python 几乎不是现代的,它已经快 30 年了!它也不是windows 操作系统的一部分。
标签: windows batch-file variables cmd equals