diff --git a/exercises/concept/plane-tickets/generators.py b/exercises/concept/plane-tickets/generators.py index 2f88c0619a..e039bacb16 100644 --- a/exercises/concept/plane-tickets/generators.py +++ b/exercises/concept/plane-tickets/generators.py @@ -14,7 +14,9 @@ def generate_seat_letters(number): """ - pass + seat_letters = ["A", "B", "C", "D"] + for i in range(number): + yield seat_letters[i % 4] def generate_seats(number): @@ -34,7 +36,25 @@ def generate_seats(number): """ - pass + generated_seats = [] + seat_letters = ["A", "B", "C", "D"] + row = 1 + + while len(generated_seats) < number: + if row == 13: + row += 1 + continue + + for letter in seat_letters: + seat = str(row) + letter + generated_seats.append(seat) + if len(generated_seats) == number: + yield seat + break + else: + yield seat + + row += 1 def assign_seats(passengers): """Assign seats to passengers. @@ -46,7 +66,14 @@ def assign_seats(passengers): """ - pass + n = len(passengers) + passengers_seats = {} + seats = list(generate_seats(n)) + + for index in range(len(passengers)): + passengers_seats[passengers[index]] = seats[index] + + return passengers_seats def generate_codes(seat_numbers, flight_id): """Generate codes for a ticket. @@ -57,4 +84,11 @@ def generate_codes(seat_numbers, flight_id): """ - pass + for seat_number in seat_numbers: + _code = seat_number + flight_id + remaining_len_to_complete = 12 - len(_code) + + for n in range(remaining_len_to_complete): + _code += "0" + + yield _code