//method that is called if there aren't any seats that match the passenger's preference public static void randomSeat(int classType) { bool seatFound = false; AssignedSeat ticket; if (classType == 1) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 2; k++) { if (firstClass[i, j, k] == "O") { firstClass[i, j, k] = "X"; AssignedSeat rand = new AssignedSeat(Name(), seatNumber(1, i, j, k)); tickets.Add(rand); Console.WriteLine("Ticket has been created."); ticket = tickets[tickets.Count - 1]; Console.WriteLine("Ticket #" + tickets.Count); ticket.TicketInfo(); goto End; } } } } } else if (classType == 2 || !seatFound) { for (int i = 0; i < 15; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { if (econClass[i, j, k] == "O") { econClass[i, j, k] = "X"; AssignedSeat rand = new AssignedSeat(Name(), seatNumber(2, i, j, k)); tickets.Add(rand); Console.WriteLine("Ticket has been created."); ticket = tickets[tickets.Count - 1]; Console.WriteLine("Ticket #" + tickets.Count); ticket.TicketInfo(); goto End; } } } } } //if both classes have no available seats else { Console.WriteLine("Oh no! There are no more spots left!"); availableSeats = false; } End :; }
//updates seating area based on number of passengers, class, and seat preference public static void updateSeating(int classType, int pref) { availableSeat = true; AssignedSeat ticket; AssignedSeat seat; int opening = 0; if (classType == 1) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 2; k++) { if (pref == 1) { if (j == 0 && k == 1 && firstClass[i, j, k] == "O" || j == 1 && k == 0 && firstClass[i, j, k] == "O") { firstClass[i, j, k] = "X"; opening = 1; seat = new AssignedSeat(Name(), seatNumber(1, i, j, k)); tickets.Add(seat); goto End; } } else { if (j == 0 && k == 0 && firstClass[i, j, k] == "O" || j == 1 && k == 1 && firstClass[i, j, k] == "O") { firstClass[i, j, k] = "X"; opening = 1; seat = new AssignedSeat(Name(), seatNumber(1, i, j, k)); tickets.Add(seat); goto End; } } } } } } else { for (int i = 0; i < 15; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { if (pref == 1) { if (j == 0 && k == 1 && econClass[i, j, k] == "O" || j == 1 && k == 1 && econClass[i, j, k] == "O") { econClass[i, j, k] = "X"; opening = 1; seat = new AssignedSeat(Name(), seatNumber(2, i, j, k)); tickets.Add(seat); goto End; } } else { if (j == 0 && k == 0 && econClass[i, j, k] == "O" || j == 1 && k == 2 && econClass[i, j, k] == "O") { econClass[i, j, k] = "X"; opening = 1; seat = new AssignedSeat(Name(), seatNumber(2, i, j, k)); tickets.Add(seat); goto End; } } } } } } End :; if (opening == 0) { availableSeat = false; Console.WriteLine("Sorry, no match found. Assigning passenger to an available seat..."); randomSeat(classType); } else { Console.WriteLine("Match has been found!"); Console.WriteLine("Ticket has been created."); ticket = tickets[tickets.Count - 1]; Console.WriteLine("Ticket #" + tickets.Count); ticket.TicketInfo(); } }