кода я сейчас печатает сетку, сделанную из массива:Java - изменение одного элемента в представлении сетки
//some code that generates the array gameCards[] = {'a','a','a','a','b','b','b','b'}
//n is the size/length of the array
public String BoardToString(){
int gridCount = 1;
int cardCount = 0;
char[][] showBoard = new char[n/4][4];
while (cardCount < n){
for(int row = 0; row < (n/4); row++){
for(int column = 0; column < 4; column++){
showBoard[row][column] = gameCards[cardCount]; // also how can I use gameCards if it's generated in another method within the same class?
System.out.print("X (" + gridCount + ") ");
gridCount++;
cardCount++;
}
if ((n/4) > 1) System.out.println();
}
}
}
Это напечатает что-то вроде этого:
// if n = 8
X(1) X(2) X(3) X(4)
X(5) X(6) X(7) X(8)
Сретения сетки соответствует порядку элементов в исходном массиве. Если я хочу, чтобы добиться чего-то вроде этого:
a(1) X(2) X(3) X(4)
X(5) X(6) X(7) X(8)
или
a(1) X(2) X(3) X(4)
X(5) b(6) X(7) X(8)
Как я должен написать цикл так, он может напечатать большую часть замаскированной сетки и показывает только один фактический элемент (максимальный элемент I нужно выявить 2)?
Когда и где вы хотите напечатать «a» или «b», каково условие для этого? Кроме того, ваш BoardToString() не возвращает строку, указанную в ее подписи. –
Это на самом деле для карточной игры Pairs. Игроки могут перевернуть любую карту, которую они хотят, и доска должна открыть карту, которую они просто перевернули. Если две карты совпадают, они должны оставаться открытыми; если есть несоответствие, они снова будут откидываться назад (только показать X). Я сделал свой массив, должен ли я изменить его на строки? – aRandomStudent
Чтобы нарисовать «a» или «b» для карты, которую выбирает игрок, метод BoardToString() должен знать карту, выбранную в виде (x, y) позиции в showBoard. –