所以我正在创建一个随机代码,它不一定与这个级别的任何东西相关,但我更多的是测试一些想法。所以由于某种原因,我的代码会随机工作,但在大多数情况下,它会抛出一个随机负数,通常在 -413796084 附近。我不知道它为什么这样做,我试图将数字保持在 0 - 50 附近。我以为我做得对,但显然我没有。如果这有助于解释我犯的任何错误,我在 Java 方面也相对较新。
import java.util.Scanner;
import java.util.Random;
class damagecalc {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
Random randamage = new Random();
int totaldmg;
System.out.println("Will you (a) attack, (s) defend, (d) skip your turn, (f) magic, (i) use an item?");
String dmgString = input.next();
char dmgChar = dmgString.charAt(0);
if(dmgChar == 'a'){
for(int finaldmg=50;finaldmg<=50;finaldmg++){
totaldmg = randamage.nextInt(10);
}
totaldmg = randamage.nextInt();
if(totaldmg >= 50){
System.out.println("You have defeated the monster!");
}else{
System.out.println("Damage Dealt:" + totaldmg);
}
}
}
}
编辑 - - - - - - - - - - - - - - - - - - - - - - - -
所以我改变了我的代码并修复了一些东西,现在它每次都吐出 0。也许现在它会更容易弄清楚。但我绝对需要帮助。
这是新代码:
import java.util.Scanner;
import java.util.Random;
class damagecalc {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
Random randamage = new Random();
int totaldmg;
System.out.println("Will you (a) attack, (s) defend, (d) skip your turn, (f) magic, (i) use an item?");
String dmgString = input.next();
char dmgChar = dmgString.charAt(0);
if(dmgChar == 'a'){
for(int finaldmg=1;finaldmg<=50;finaldmg++){
}
totaldmg = randamage.nextInt(1);
if(totaldmg >= 50){
System.out.println("You have defeated the monster!");
}else{
System.out.println("Damage Dealt:" + totaldmg);
}
}
}
}