Есть несколько незначительных проблем с этим кодом.Я полагаю, что это домашнее задание, а не что-то, что вы сами разработали?
Вычитание значений урона
Есть проблемы при вычитании значений, чтобы показать повреждение или использование пуль оружия.Примеры включают в себя:
set /a %gun%=-1
set /a %CPU%=-%gund%
set /a CPU=-3
Переменные именуются без символов процента, поэтому %GUN%
должно именоваться GUN
при использовании SET
.Кроме того, при выполнении арифметики код x =- 1
НЕ вычитает.Он установит x
равным -1
.
Ниже приведены исправления вышеприведенного:
SET /a gun = gun - 1
SET /a CPU = CPU - gund
SET /a CPU = CPU - 3
Сбор ввода и сравнение его
Другая проблема связана с разделом «команда», где вы обрабатываете результаты команды: fp
:
if 'fp' == '1' goto gun
if 'fp' == '2' goto punch
if 'fp' == '3' goto flee
В основном это говорит о том, что text fp
равно текст 1
.Очевидно, что это не работает.Вам нужно изменить это, чтобы использовать значение переменной fp
и число (удалить '
):
if %fp% == 1 goto gun
if %fp% == 2 goto punch
if %fp% == 3 goto flee
Победа в игре
Существует последняя проблема, которая заключается в том, где вы рассчитываете окончательную игру, когда у игрока или ЦП будет 0 или меньше здоровья.В настоящее время у вас есть:
if '%CPU%'=='0' goto win
if '%playerh%'=='0' goto lose
Это снова сравнивает текст CPU
или playerh
с текстовым значением 0
.Удалите символы '
:
if %CPU% == 0 goto win
if %playerh% == 0 goto lose
Однако это будет работать только в том случае, если здоровье достигнет 0. Если здоровье опустится ниже 0 , этого никогда не произойдет.Вам нужно искать 0 или ниже:
if %CPU% LEQ 0 goto win
if %playerh% LEQ 0 goto lose