Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';我的java显示更新失败了吗?宾果卡_Java_Arrays_String_For Loop - Fatal编程技术网

为什么赢了';我的java显示更新失败了吗?宾果卡

为什么赢了';我的java显示更新失败了吗?宾果卡,java,arrays,string,for-loop,Java,Arrays,String,For Loop,我正在做一个宾果游戏,如果用户输入的数字与卡中的随机数匹配,那么需要标记用户输入的数字,然后我希望显示更新的卡。不过,我似乎无法让标记显示出来。我觉得我应该更新打印出来的字符串,但我不知道该怎么做 public class BingoCard { public static void main (String[] args) { Random rando = new Random(); Scanner in = new Scanner(S

我正在做一个宾果游戏,如果用户输入的数字与卡中的随机数匹配,那么需要标记用户输入的数字,然后我希望显示更新的卡。不过,我似乎无法让标记显示出来。我觉得我应该更新打印出来的字符串,但我不知道该怎么做


public class BingoCard {


    public static void main (String[] args) {

      
       Random rando = new Random();
       Scanner in = new Scanner(System.in);
   
       int [][] Card = new int [5][5];
   
       int userNum = 0;
       boolean BINGO;
       int start = 1;   

         


        //2D Array populating top to bottom and left to right
        for (int c = 0; c < Card[0].length; c++) {
            
            for (int r = 0; r < Card.length; r++) {
                   int pos = rando.nextInt(values.size()-1);
                   Card[r][c] = values.get(pos);
                   values.remove(pos);
   
            }//End of inner loop
            
           for (int i = start; i < 15; i++) {
               values.add(i);
               
           }//End for
         start += 15;
        }//End of outer loop

        //Free Space
        Card[2][2] = 0;
        
        



        System.out.println("Welcome to Bingo!");

        do {            
            //Display
            String str = "B\tI\tN\tG\tO\n";

            for (int r = 0; r < Card.length; r++) {
               for (int c = 0; c < Card[0].length; c++) {
                  if (Card[r][c] > 0) {
                    str += Card[r][c] + "\t";
                  }
                  else {
                    str += "X\t";
                  }//End else
                  
                  //Place Markers
                  for (int r2 = 0; r2 < Card.length; r2++) {
                      for (int c2 = 0; c2 < Card[0].length; c2++) {
                          if (Card[r2][c2] == userNum) {
                              Card[r2][c2] = 0;
                          }//End if
                      }//End inner
                  }//End outer
                     }//End inner loop
                  str += "\n";
                  }//End outer loop
            
            System.out.println(str);
            System.out.println("Please enter the number called");
            userNum = in.nextInt();            

            int sumAcross = 0;
            int sumVertical = 0;
            int sumDiagR = 0;
            int sumDiagL = 0;

            for (int r = 0; r < Card.length; r++) {
                for (int c = 0; c < Card[0].length; c++) {
                    sumAcross += Card[r][c];
                    sumVertical += Card[c][r];

                }//End inner

                sumDiagR += Card[r][r];
                sumDiagL += Card[r][4-r]; //Inverts the diagonal. Check Array placements to understand better

                //Check win if all are 0
                if (sumAcross == 0 || sumVertical == 0) {
                    BINGO = true;
                }

                sumAcross = 0;
                sumVertical = 0;

            }//End outer

            if (sumDiagR == 0 || sumDiagL == 0) {
                BINGO = true;
            }
            else {
                BINGO = false;
            }


        } while (!BINGO);

    }//End main
}//End class```

Also, if anyone has any good java fundamental videos that explain everything like you're a toddler, I'd appreciate those greatly. 

公共类宾果{
公共静态void main(字符串[]args){
随机随机数=新随机数();
扫描仪输入=新扫描仪(系统输入);
int[][]卡=新int[5][5];
int userNum=0;
布尔宾果;
int start=1;
//从上到下、从左到右填充的二维数组
对于(int c=0;c0){
str+=Card[r][c]+“\t”;
}
否则{
str+=“X\t”;
}//结束其他
//放置标记
对于(int r2=0;r2
如果有人有什么好的java基础视频可以解释一切
-在这个网站上询问哦,该死。我明白为什么。我只是想学习!您的宾果卡必须跟踪一个数字是标记的还是未标记的,可能需要使用一个普通的Java getter/setter单元类。也许这个解释和代码会给你一些想法。太棒了!谢谢你,吉尔伯特!