Я пытаюсь создать шахматный движок как проект с долгим временем.В настоящее время я работаю над методом переворачивания доски (например, переворачивая ее, но меняя цвета).Прописные буквы обозначают белые фигуры, строчные буквы - черные.Но похоже, что java перезаписывает мою переменную temp , хотя я не присваиваю ей значения после начальной инициализации.Как видно из System.out.println : "r" <- первый вывод;«R» <- второй вывод </p>
Я новичок в JAVA и думаю, что проблема возникает при назначении значения статической переменной временной переменной.На мой взгляд, остальная часть кода должна работать нормально.
public class chess{
static String chessBoard[][]={
{"r","k","b","q","a","b","k","r"},
{"p","p","p","p","p","p","p","p"},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," ","P"," "},
{"P","P","P","P","P","P"," ","P"},
{"R","K","B","Q","A","B","K","R"}};
}
public static void flipBoard() {
String temp[][]=chessBoard;
System.out.println(temp[0][0]);
for(int i=0;i<64;i++){
int r=i/8, c=i%8;
chessBoard[r][c]=temp[7-r][7-c];
}
System.out.println(temp[0][0]);
}
Я ожидаю:
chessBoard[][]={
{"R","K","B","A","Q","B","K","R"},
{"P"," ","P","P","P","P","P","P"},
{" ","P"," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{"p","p","p","p","p","p","p","p"},
{"r","k","b","a","q","b","k","r"}};
Но я получаю:
chessBoard[][]={
{"R","K","B","A","Q","B","K","R"},
{"P"," ","P","P","P","P","P","P"},
{" ","P"," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," ","P"," "},
{"P","P","P","P","P","P"," ","P"},
{"R","K","B","Q","A","B","K","R"}};
Как вывидно, все фигуры теперь белые.Я действительно схожу с ума по этому поводу, и любая помощь очень ценится!