【发布时间】:2015-10-07 03:33:50
【问题描述】:
int main()
{
int StrFinal = 10;
int DefFinal = 20;
int IntFinal = 40;
int hp = 10;
int eStrength = 30;
int eDefense = 40;
int eIntelligence = 25;
int eHP = 10;
/*
* Begin Battle Sequence
*
*/
printf("Battle Start! \n");
while(eHP>0||hp>0)
{
int act;
printf("Player HP: %d Enemy HP: %d \n ", hp, eHP);
printf("1 - Attack \n 2 - Magic \n Select Your Move: ");
scanf("%d",&act);
switch (act)
{
case 1:
eHP = eHP - StrFinal/eDefense*5;
printf("You attacked the enemy! \n ");
break;
case 2:
eHP = eHP - IntFinal/eIntelligence*5;
printf("You Shocked the enemy! \n ");
break;
default:
printf("Invalid Input");
}
printf("The enemy attacked you! \n");
hp = hp - eStrength/DefFinal*5;
printf(" Enemy HP: %d \n",eHP);
printf(" Your HP: %d \n", hp);
}
return 0;
}
这是我为文本游戏的战斗序列编写的简单代码。我遇到的问题是用户和敌人健康的输出不正确。数学计算,被攻击时敌人的HP应该减少1.25..从8.75截断到8。但是输出不影响敌人的HP。
如果我选择2,输出将是hp = 5敌人hp = 5
我觉得这是一个愚蠢的错误或我忽略的东西。我似乎无法找到它。任何帮助表示赞赏
另外:敌人攻击时的伤害计算似乎也不正确
【问题讨论】: