2012-02-19 11 views
-4
import java.util.Random; 
import java.util. * ; 

public class shooter { 
    int myHP = 100; 
    int enHP = 100; 
    int myBAND = 5; 
    int enBAND = 5; 
    int turn = 10; 

    public void main(String args[]) { 
     setup(); 
     if (turn % 2 == 0) { 
      myTurn(); 
     } else { 
      enTurn(); 
     } 
    } 
    public void setup() { 

    } 
    public void myTurn() { 
     System.out.println("You have " + myHP + " HP remaining and the enemy has " + enHP + " HP remaining and you have " + myBAND + " bandages remaining"); 
     System.out.println("Your turn. What would you like to do?"); 
     System.out.println("You can aim for the head(1), the arms(2), the torso(3), or the legs(4). 5 for bandage."); 
     Scanner scanner = new Scanner(System. in); 
     int i = scanner.nextInt(); 
     turn++; 

     if (i == 1) { //Head 
      Random diceRoller = new Random(); 
      int roll = diceRoller.nextInt(6) + 1; 
      if (roll == 6) { 
       System.out.println("Shot at head, hit head."); 
       enHP -= 70; 
       if (enHP < 1) { 
        System.out.println("You Win!"); 
       } else { 
        System.out.println("Missed."); 
       } 
       //set turn to enemy 1?} 
      } else if (i == 2) { //Arms 
       Random diceRoller2 = new Random(); 
       int roll2 = diceRoller2.nextInt(6) + 1; 
       if (roll2 == 6 || roll2 == 5) { 
        System.out.println("Shot at arms, hit arms."); 
        enHP -= 40; 
        if (enHP < 1) { 
         System.out.println("You Win!"); 
        } else { 
         System.out.println("Missed."); 
        } 
        //set turn to enemy 1?} 
       } else if (i == 3) { //torso 
        Random diceRoller3 = new Random(); 
        int roll3 = diceRoller3.nextInt(6) + 1; 
        if (roll3 == 6 || roll3 == 5 || roll3 == 4) { 
         System.out.println("Shot at torso, hit torso."); 
        } 
        //set turn to enemy 1?} 
       } else if (i == 4) { //Legs 
        Random diceRoller4 = new Random(); 
        int roll4 = diceRoller4.nextInt(6) + 1; 
        if (roll4 == 6 || roll4 == 5) { 
         System.out.println("Shot at legs, hit legs."); 
        } else { 
         System.out.println("Missed."); 
        } 
       } else if (i == 5) { // bandages here 
        System.out.println("You use a bandage."); 
        myBAND--; 
       } 
      } 
     } 
    } 



    public void enTurn() //Enemy turn loop 
    { 
     System.out.println("Enemy's turn."); 
    } 
} 

これは私のコードであり、うまくコンパイルされます。しかし、私はそれを実行しようとすると、それは私にこれを返すの冒頭で:メソッドでのNullPointerException

java.lang.NullPointerException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:271) 
+6

ありますを参照してください有効なメインメソッドはありません。 – Jayy

+0

コードの書式設定が貧弱であるため、コードの読み込みとデバッグが非常に難しくなります。確かに、あなたのコードは常に完全に正当化されているとは限りません。 –

+2

また、例外は上記のコードとは関係ありません。 – havexz

答えて