Arrays 将ArrayList的元素添加到二维数组中

Arrays 将ArrayList的元素添加到二维数组中,arrays,chess,Arrays,Chess,我正在读取一个文本文件并将其内容保存到ArrayList中,我想用ArrayList的内容填充一个8x8数组。我的目标是读取一个包含棋子、颜色和位置的文件,然后检查有效的移动。然而,我是java新手,不确定如何检查arrayList中的这些属性,即它是白色还是黑色 感谢您的帮助 public static void MoveCheck(String answer,ArrayList<String> board){ String move; if(a

我正在读取一个文本文件并将其内容保存到ArrayList中,我想用ArrayList的内容填充一个8x8数组。我的目标是读取一个包含棋子、颜色和位置的文件,然后检查有效的移动。然而,我是java新手,不确定如何检查arrayList中的这些属性,即它是白色还是黑色

感谢您的帮助


public static void MoveCheck(String answer,ArrayList<String> board){
        String move; 
        if(answer.equalsIgnoreCase("pawn")){
            System.out.println("What position do you want to move to?");
            Scanner scanner = new Scanner(System.in);
            move = scanner.nextLine();
            if(board.contains("white")){ 
                if(move.equalsIgnoreCase("B3")||(move.equalsIgnoreCase("B4"))){
                    System.out.println("Valid move");
                }
                else{
                    System.out.println("Invalid move/Not on the board");
                }
            }
        }

public static void main(String args[]){

        String answer;
        ArrayList<String> result = new ArrayList<>();
        int [][] board = new int[7][7];
        try (BufferedReader br = new BufferedReader(new FileReader("chess.txt"))){
            while(br.ready()){
                result.add(br.readLine());
            }
        }   catch (Exception e){
            System.out.print("Error occurred while reading.");
        }

       for (String line : result){
            System.out.println(line);
       }

        System.out.println("Select a piece to move");
        Scanner scanner = new Scanner(System.in);
        answer = scanner.nextLine();

        MoveCheck(answer,result);

    }

公共静态无效移动检查(字符串应答、ArrayList板){
串动;
如果(回答。相等信号案例(“典当”)){
System.out.println(“您希望移动到哪个位置?”);
扫描仪=新的扫描仪(System.in);
move=scanner.nextLine();
如果(电路板包含(“白色”){
if(移动相等信号案例(“B3”)| |(移动相等信号案例(“B4”)){
System.out.println(“有效移动”);
}
否则{
System.out.println(“无效移动/未在板上”);
}
}
}
公共静态void main(字符串参数[]){
字符串回答;
ArrayList结果=新建ArrayList();
int[][]板=新int[7][7];
try(BufferedReader br=newbufferedreader(newfilereader(“chess.txt”)){
while(br.ready()){
result.add(br.readLine());
}
}捕获(例外e){
System.out.print(“读取时出错”);
}
for(字符串行:结果){
系统输出打印项次(行);
}
System.out.println(“选择要移动的工件”);
扫描仪=新的扫描仪(System.in);
答案=scanner.nextLine();
移动检查(答案、结果);
}
您应该阅读

您可以使用pgn符号导入位置

它看起来像这样

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
然后您可以从左到右一次读取一个字符的字符串,以便能够填充您的电路板

小写字母=黑色

大写字母=白色

/是指下一行

数字=从A列到下一块的空方块数

w表示移动时为白色

KQkq意味着双方都可以在国王赛德和皇后赛德建造城堡

0 1表示当前这是怀特的第一步