secondTicketFlag не проверен правильно:
secondTicketFlag = containsCheck(twoDm, firstticket);
//should be
secondTicketFlag = containsCheck(twoDm, secondticket);
containsCheck нуждается в другом для l oop, чтобы проверить отдельные значения каждого места в ряду (одномерный массив):
private static boolean containsCheck(int[][] twoDm, int ticket) {
// TODO Auto-generated method stub
boolean flag = false;
// added another for loop, and changed "equals" to == since the values are int
for (int[] oneDm : twoDm) {
for (int individualSeat : oneDm) {
if (individualSeat == ticket) {
flag = true;
}
}
}
return flag;
}
И если первое место ИЛИ второе место забронировано, вы хотите вернуть ошибку,
if (twoDm[i][j] == 0 && twoDm[i][j+1] == 0)
//should be
if (twoDm[i][j] == 0 || twoDm[i][j+1] == 0)
Извините за любые ошибки форматирования (при первом комментировании) и, надеюсь, это решит проблема, с которой вы столкнулись.
РЕДАКТИРОВАТЬ: у вас есть несколько способов проверить, что места находятся в одном ряду, учитывая то, как вы устанавливаете значения мест, я бы использовал оператор остатка (%)
Если первое место имеет остаток, отличный от 0, это означает, что два места находятся в одном ряду (первое место должно быть между 1-6, 8-13, 15-20 ... оно может ' t, кратное 7), вы также можете использовать значение j в для l oop. Это зависит от вас. Способ проверки остатка:
if(firstticket % 7 == 0){ System.out.println("The seats are not in the same row");}