无法修复线程“main”中的错误异常 java.lang.NullPointerException

麦克汉77

我不断收到此错误:

线程“main”中的异常 java.lang.NullPointerException

在 ButtonsLab.pvc1(ButtonsLab.java:110)

在 ButtonsLab.main(ButtonsLab.java:155)

有些人问过这个问题,但我似乎找不到解决这个问题的人。我知道它与 pvc1() 方法中的数组有关。

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

class ButtonsLab
{
   ArrayList<Integer> buttons;

ButtonsLab(){
   buttons = new ArrayList<Integer>();
}

  public void fillMyArray(){
     for(int i = 0; i < 5; i++){
     buttons.add(i + 1);
  }
}

public static int pvp(int buttonNum){

  Scanner in = new Scanner(System.in);
  int player1 = 0;
  int player2 = 0;
  int x = 0; //determines who wins

  while (buttonNum > 1){

     while (player1 < 1 || player1 > 3){

        System.out.println("Player 1: How many buttons do you take?(1-3)");

        player1 = in.nextInt();

     }

     buttonNum -= player1;

     if(buttonNum != 1){
        System.out.println("There are " + buttonNum + " Buttons on the board.");
     }
     else{
        System.out.println("... There is 1 Button on the board.");
     }

     if(buttonNum == 1){

        x = 1;

     }

     else{
        while (player2 < 1 || player2 > 3){

           System.out.println("Player 2: How many buttons do you take?(1-3)");

           player2 = in.nextInt();

        }
     }

     buttonNum -= player2;

     if(buttonNum != 1){
        System.out.println("There are " + buttonNum + " Buttons on the board.");
     }
     else if(x !=1){
        System.out.println("... There is 1 Button on the board.");
     }

     player1 = 0;
     player2 = 0;

  }

  if(x == 1){
     while (player2 < 1 || player2 > 3){

        System.out.println("Player 2: How many buttons do you take?(1-3)");

        player2 = in.nextInt();

     }

     System.out.println("Player 2, you lose.");
  }
  else{
     while (player1 < 1 || player1 > 3){

        System.out.println("Player 1: How many buttons do you take?(1-3)");

        player2 = in.nextInt();

     }

     System.out.println("Player 1, you lose.");

  }
  return x;
}

public static int pvc1(int buttonNum){
  Scanner in = new Scanner(System.in);
  int player1 = 0;
  int x = 0; //determines who wins

  ButtonsLab [] aiChoice;
  aiChoice = new ButtonsLab[buttonNum];

  for(int i = 0; i < aiChoice.length; i++){
     aiChoice[i].fillMyArray();
  }

  while (buttonNum > 1){
     while (player1 < 1 || player1 > 3){

        System.out.println("Player 1: How many buttons do you take?(1-3)");

        player1 = in.nextInt();

     }

     buttonNum -= player1;

     int rnd = new Random().nextInt(aiChoice.length);
     System.out.println("AI selects " + rnd);

     player1 = 0;

  }
  return x;
}

public static void main (String[] args)
{
  Scanner in = new Scanner(System.in);
  int buttonNum = 0;
  int gameOpt = 0;

  while (buttonNum < 10 || buttonNum > 100){

     System.out.println("How many buttons are on the board initially?(10-100)");

     buttonNum = in.nextInt();
  }

  System.out.println("Options: Play against a friend (1) Play against easy computer (2) Play against hard computer (3)");

  gameOpt = in.nextInt();

  switch(gameOpt){
     case 1:
        pvp(buttonNum);
        break;
     case 2:
        pvc1(buttonNum);
        break;


  }

}

}
斯特凡

这样做之后

aiChoice = new ButtonsLab[buttonNum];

该数组充满了“空值”。您需要这样做(对于数组中的每个位置)

aiChoice[i] = new ButtonsLab();

在您执行此操作之前:

aiChoice[i].fillMyArray();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

线程“主”中的异常java.lang.NullPointerException1000

线程“ AWT-EventQueue-0”中的异常java.lang.NullPointerException登录表单错误

线程“主”中的异常java.lang.NullPointerException?

在线程“主”中获取错误异常java.lang.NullPointerException

java.lang.NullPointerException(无错误消息)

线程“主”中的java异常java.lang.NullPointerException错误

转换为MYSQL时Java中的线程“ main”中的异常java.lang.NullPointerException

运行Web Scrap程序时出现“线程“主”中的异常java.lang.NullPointerException”错误

如何解决线程“ main”中的异常java.lang.NullPointerException错误

Android Java中的java.lang.NullPointerException

如何解决线程“ main”中的异常java.lang.NullPointerException

“线程“主”中的异常java.Lang.NullPointerException”错误

使用Jaxb unmarshal / marshal时,线程“ main”中的异常java.lang.NullPointerException

java.lang.NullPointerException错误

java.lang.NullPointerException错误?

错误输出为java.lang.NullPointerException

java.lang.nullpointerexception错误

如何修复BootReciever java.lang.NullPointerException?

如何修复java.lang.NullPointerException

Eclipse错误:java.lang.NullPointerException

“错误或错误” java.lang.NullPointerException

错误:线程“主”中的异常java.lang.NullPointerException

错误java.lang.NullPointerException JSF

java.lang.NullPointerException错误

线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException 以及如何修复它?

如何修复线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

如何修复“线程“main”中的异常java.lang.ClassNotFoundException:”错误?

如何修复“线程“main”中的异常java.lang.ExceptionInInitializerError”

如何修复“java.lang.NullPointerException:null”?