2016-09-30 145 views
0

我知道这可能是非常基本的,但我一直在努力几个小时,仍然不能自己解决这个问题。所以现在我正在为我的AI课做8个益智游戏。我需要用户输入一系列数字,例如:“032 145 678”,我需要将它存储到一个3x3矩阵中,其中0基本上表示一个空块。所以它应该接受用户输入并将其存储为{{032},{145},{678}},一个3x3矩阵。如何从用户获取输入并将其放入矩阵?

编辑:

public void ReadFromTxt(String file) throws FileNotFoundException, IOException { 
    String read; 
    FileReader f = new FileReader(file); 
    int i = 0; 
    int j; 
    BufferedReader b = new BufferedReader(f); 
    System.out.println("Loading puzzle from file..."); 
    while((read = b.readLine())!=null){ 
     if(read.length()==3){ 
      for(j=0;j<3;j++){ 
       board[i][j] = (int)(read.charAt(j)-48); 
      } 
     } 
     i++; 
    } 
    b.close(); 
    System.out.println("Puzzle loaded!"); 
} 
+0

什么是编程语言?而且,当你说“数字”时,一个数字就像“145”。唯一的“1”在这里是一个“数字”。你想在你的矩阵中存储0到9之间的数字还是只有数字? –

+0

语言是Java,抱歉应该指定。只有数字0-9,所以它会像一个3×3矩阵0 3 2,1 4 5,6 7 8 – thetemptations

回答

0

,最好的办法是让用户存储在文本文件中的数字。文本文件格式是3行,每行只能有3位数字,并且数字从每行开始时开始。

您的程序应该将存储数字的文件的名称作为参数。

程序为自己分配一个3x3的无符号整数数组,打开文件并依次读取每一行。它会检查该行的格式是否正确:开头必须有3位数字,之后的空格是允许的。如果不正确,程序向用户输出错误信息并退出。

如果该行的格式正确,则数字将存储在数组的一行中。

如果超过3行,程序将再次打印出错信息并退出。

+0

所以我做了上面的编辑,会有这样的工作吗?如果我把它放在一个文本文件中,我应该怎样命名该文件,并将它放在哪里? – thetemptations

+0

我无法为您调试程序,除非您尝试调试自己,发现所有可找到的错误,并隔离剩余的错误(如果有)。在这个过程中你会学到很多东西。然后,您可以在这里发布孤立的错误。至于名字,你可以任意命名并放在任何地方,你的程序可以访问它。 –

相关问题