Arrays 将ArrayList的元素添加到二维数组中
我正在读取一个文本文件并将其内容保存到ArrayList中,我想用ArrayList的内容填充一个8x8数组。我的目标是读取一个包含棋子、颜色和位置的文件,然后检查有效的移动。然而,我是java新手,不确定如何检查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
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表示当前这是怀特的第一步