我正在尝试制作一个解决“推箱子”游戏的程序,所以我目前要做的是读取文本文件,创建一个二维数组,将每个字符放入该二维数组(包括空格)。这就是我现在正在做的事情,我的文本文件目前看起来像:
########
# # .#
# $$.#
#### #
#@ ##
####
我的代码目前如下所示:
package soko;
import java.util.*;
import java.io.*;
public class Dowork {
File file;
Scanner sc;
char a;
static int lines;
Scanner lineScanner;
static int maxChar;
ArrayList array;
char[][] array2;
Scanner bc;
int n;
int m;
public Dowork() throws Exception{
int n=0;
int m=0;
file = new File("C:/Users/joaki/Desktop/sokoban/readin.txt");
sc = new Scanner(file);
sc.reset();
sc.useDelimiter("s*");
ArrayList<Character> array = new ArrayList<Character>();
while(sc.hasNext()) {
String line = sc.next();
maxChar = line.length();
if(maxChar < line.length()) {
maxChar = line.length();
}
for (char ch:line.toCharArray()) {
array.add(ch);
}
if(sc.hasNextLine()) {
lines++;
}
}
sc.close();
array2 = new char[lines][maxChar];
Iterator<Character> itemIterator = array.iterator();
while(itemIterator.hasNext()) {
itemIterator.next();
for (int q = 0; q < lines; q++) {
for(int r = 0; r < maxChar; r++) {
Character j = itemIterator.next();
array2[q][r] = itemIterator.next();
}
}
}
for (int q = 0; q < lines; q++) {
for(int r = 0; r < maxChar; r++) {
System.out.println(array2[q][r]);
}
}
}
public static void main(String[] args) throws Exception{
Dowork g = new Dowork();
}
}
另一方面,我的第一个输入是:
#
#
#
#
#
#
#
.
.
.
显然应该有 9 # 但我只得到 7,我怀疑我的 itemIterator 有问题,但我不能说。有任何想法吗?
临摹微笑
收到一只叮咚
相关分类