def apply_requirements(self): funcs = {"f": shiftUp, "b": shiftDown, "l": shiftLeft, "r": shiftRight, "fr": shiftRightUp, "br": shiftRightDown, "fl": shiftLeftUp, "bl": shiftLeftDown} # f: forward, b: backward, l:left, r: right name = {"f": "Forward", "b": "Backward", "l": "Left", "r": "Right", "fr": "Right Forward", "br": "Right Backward", "fl": "Left Forward", "bl": "Left Backward"} order = sorted([int(n) for n in self.requirements.keys()]) luckier = choice(order) print("Luckier: " + str(luckier) + "\n") order = order[order.index(luckier):] + order[:order.index(luckier)] for req in order: no, direction, steps = self.requirements[str(req)] row, col = self.find(no) if col != None and row != None: if direction in funcs.keys(): funcs[direction](row, col, steps, self.seats) print(no, name[direction], steps) printArr(self.seats) print() return self.seats
generate - generate a random seat switch <no1> <no2> - switch seats of two students run - apply requirements export - export requirements to requirements.txt print - print the current seat debug - dry run''' if __name__ == "__main__": if len(sys.argv) <= 1 or sys.argv[1] == "help": print(help_msg) sys.exit(1 if len(sys.argv) <= 1 else 0) else: mode = sys.argv[1] if mode == "generate": seats = Seat(generateSeats()) printArr(seats.seats) seats.save() print("Done!") elif mode == "run" or mode == "debug": seats = Seat() print("Original:") printArr(seats.seats) seats.apply_requirements() print("Result:") printArr(seats.seats) # save if mode == "run": seats.save()