【发布时间】:2016-12-20 07:12:35
【问题描述】:
我正在构建一个简单的格斗游戏来测试循环和 if 语句,但是我遇到了一种复杂的逻辑问题。
当玩家或敌人的生命值为零时循环结束,但是我发现我的代码无法检测到哪个生命值首先达到零导致玩家总是获胜。
是否有一种简单的方法可以跟踪哪个数字首先达到零从而打破循环?
do {
@SuppressWarnings("resource")
Scanner reader = new Scanner(System.in);
System.out.println("1: Attack. 2: Defend");
int n = reader.nextInt();
if (n == 1){
PHP = (PHP-EATK);
EHP = (EHP-PATK);
} else if (n == 2){
PHP = (PHP-Math.max(0, EATK-PDEF));
}
System.out.println("P "+PHP);
System.out.println(EHP);
}
while (PHP >= 1 || EHP >= 1);
if(PHP <= 0){
System.out.println("You Lose!");
}else if (EHP <= 0){
System.out.println("You win!");
}
【问题讨论】:
标签: java if-statement int do-while