Java 为什么每个玩家的积分都会不断重置?
我的积分跟踪器每次我不止一次地将两名球员的积分重置为原始数字 我不明白为什么每当我从任何一个玩家身上拿走更多的生命点,而不是使用之前的生命点数量,它只是重置为我开始的生命点并从那里开始 例: 玩家1有100点生命值。 我拿走了1个生命点。 玩家1现在有99点生命值。 现在我又这样做了。 我从玩家1身上再拿走1点生命值。 但是现在,它不再从上一次的生命点数99中减去1,而是再次从100中减去1,第二次给我99 我不知道我在哪里犯了一个错误,一直在重新设置分数Java 为什么每个玩家的积分都会不断重置?,java,reset,points,Java,Reset,Points,我的积分跟踪器每次我不止一次地将两名球员的积分重置为原始数字 我不明白为什么每当我从任何一个玩家身上拿走更多的生命点,而不是使用之前的生命点数量,它只是重置为我开始的生命点并从那里开始 例: 玩家1有100点生命值。 我拿走了1个生命点。 玩家1现在有99点生命值。 现在我又这样做了。 我从玩家1身上再拿走1点生命值。 但是现在,它不再从上一次的生命点数99中减去1,而是再次从100中减去1,第二次给我99 我不知道我在哪里犯了一个错误,一直在重新设置分数 package yu.gi.oh.l
package yu.gi.oh.life.point.counter;
import java.util.Scanner;
public class YuGiOhLifePointCounter {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
double choice_1;
System.out.print("\nEnter the starting life points for player-1: ");
choice_1 = sc.nextDouble();
double storage_1;
storage_1 = choice_1;
double choice_2;
System.out.print("\nEnter the starting life points for player-2: ");
choice_2 = sc.nextDouble();
double storage_2;
storage_2 = choice_2;
double lp1;
System.out.print("\nEnter a 6 to change the life-points of either player: ");
lp1 = sc.nextDouble();
while (lp1 == 6) {
double choose_1_2;
System.out.print("\nEnter a 1 to change player-1's life-points, or enter a 2 to change player-2's life-points: ");
choose_1_2 = sc.nextDouble();
if (choose_1_2 == 1) {
double ch_1;
System.out.print("\nEnter the number subtracted from or added to player-1's life-points: ");
ch_1 = sc.nextDouble();
double c_1;
System.out.print("\nEnter a 1 to subtract this number from player-1's life-points, or enter a 2 to add this number to player-1's life-points: ");
c_1 = sc.nextDouble();
double display_1;
if (c_1 == 1) {
display_1 = storage_1 - ch_1;
System.out.println("\nPlayer-1's life-points are currently " + display_1);
}
if (c_1 == 2) {
display_1 = storage_1 + ch_1;
System.out.println("\nPlayer-1's life-points are currently " + display_1);
}
}
if (choose_1_2 == 2) {
double ch_2;
System.out.print("\nEnter the number subtracted from or added to player-2's life-points: ");
ch_2 = sc.nextDouble();
double c_2;
System.out.print("\nEnter a 1 to subtract this number from player-2's life-points, or enter a 2 to add this number to player-1's life-points: ");
c_2 = sc.nextDouble();
double display_2;
if (c_2 == 1) {
display_2 = storage_2 - ch_2;
System.out.println("\nPlayer-2's life-points are currently " + display_2);
}
if (c_2 == 2) {
display_2 = storage_2 + ch_2;
System.out.println("\nPlayer-2's life-points are currently " + display_2);
}
}
lp1 = 6;
}
}
}
您永远不会更改
存储\u 1/2
值
类似于
display_2=storage_2-ch_2的线代码>将继续计算与原始生命点数(100)的差值,而不是从先前计算的数量中减去。在计算display\ux
值后,尝试更新这些storage\ux
值。谢谢,这是我今天在这个项目中的第一百万个derp时刻。无论如何,谢谢,我只需要将我声明某些变量的部分区域移到另一个位置,这似乎就解决了问题。谢谢你的帮助。