Я тут немного тупой.
Я относительно новичок в Java / программировании в целом. Я хочу сделать программу, которая "записывает места" в сетке 4х4. Этот многомерный массив будет иметь тип boolean, поэтому, если место не занято, оно возвращает false, но если оно занято, оно возвращает true. Я хочу иметь возможность указывать разные места, так как первые два ряда будут отличаться от двух последних рядов. Прямо сейчас у меня есть метод, но он просто записывает все первые две строки, как только я вызываю этот метод (как следует, логически говоря). Но я хочу, чтобы можно было бронировать только одно место за раз, чтобы оно закончилось после того, как будет забронировано одно место. Если я выберу то, что хочу забронировать другое место, оно перейдет к следующему доступному месту в этих строках или столбцах.
Вот код на данный момент:
import javax.swing.JOptionPane;
public class Seats{
int maxRows = 4;
int maxCols = 4;
boolean seating[][] = new boolean[maxRows][maxCols];
String bookSeat = null;
public static void main(String []args){
Seats seats = new Seats();
seats.start();
}
public void start(){
bookSeat = JOptionPane.showInputDialog(null, "Book a seat? (y/n)");
if(bookSeat.equals("y")){
bookSeat();
}else{
JOptionPane.showMessageDialog(null, "Okay.");
}
displaySeats(seating);
}
private boolean bookSeat(){
boolean isBooked = false;
for(int row = 0; row <2; row++){
for(int col = 0;col<maxCols;col++){
if (seating[row][col] == false){
seating[row][col] = true;
isBooked = true;
}
}
}
return isBooked;
}
private void displaySeats(boolean[][] anArray){
String seatTaken;
int r=0;
int c=0;
for(int display=0; display<1; display++){
for(r=0;r<anArray.length;r++){
for(c=0;c<anArray.length;c++){
if (seating[r][c]==false){
seatTaken = "O";
}
else{
seatTaken = "X";
}
System.out.print("\t[" + seatTaken + "] \t");
}
System.out.println("");
}
}
}
}