2016-01-07 2 views
-5

Как новый новичок в Java, у меня возникают проблемы с текстовой приключенческой игрой, и, когда я работаю над этим, я понял, что я не удалось запустить его. Я искал Google, посмотрел здесь и не нашел ответа на вопрос, как исправить эту проблему.Исключение в потоке, связанное должно быть положительным на java.util.random.nextInt и в главном

Вот моя ошибка:

Exception in thread "main" java.lang.IllegalArgumentException: bound must be positive 
at java.util.Random.nextInt(Random.java:388) 
at iproject.IProject.main(IProject.java:47) 

и вот мой код:

package iproject; 

import java.util.Random; 
import java.util.Scanner; 

/** 
* 
* @author twinbranch*/ 
public class IProject { 

/** 
* 
* @param args 
*/ 
public static void main (String[] args) { 

Scanner in = new Scanner(System.in); 
Random rand = new Random(); 


String[] enemies = { }; 
int maxEnemyHealth = 75; 
int enemyAttackDamage = 25; 


int health = 100; 
int attackDamage = 50; 
int numHealthPots = 3; 
int healthPotionHealAmount = 30; 
int healthPotionDropChance = 33; //Percentage 

boolean running = true; { 

GAME: 
while (running) { 
System.out.println(); 

int enemyHealth = rand.nextInt(maxEnemyHealth); 
String enemy = enemies[rand.nextInt(enemies.length)]; 
System.out.println("\t# " + enemy + "has appeared! #\n"); 

Вторая ошибка:

public int nextInt(int bound) { 
if (bound <= 0) 
throw new IllegalArgumentException(BadBound); 

Я не хочу, чтобы разместить весь код для этого , потому что это займет около 400 строк.

Итак, мой первоначальный вопрос: кто-нибудь знает, что не так с моим кодом? Какие ошибки я делаю с этим кодом.

ответ

1

Проблема в том, что enemies.length равен нулю.

0

Проблема заключается в том, что враги имеют значение null, и вам необходимо определить его. enemies.length = 0 и, следовательно,

// will never work unless enemies is initialized and enemies.length > 0. 
String enemy = enemies[rand.nextInt(enemies.length)]; 

Так считают и убедитесь, что враги инициализируется так:

String[] enemies = {"A","B"}; // however way you want it to be 
Смежные вопросы