Ejemplo n.º 1
0
    def __init__(self, num_disks, number=None):
        self.disks = list()
        self.disks_by_name = dict()
        self.disk_names = list()

        disk_names = ["orange", "yellow", "green", "blue", "purple"]

        for idx in range(num_disks):
            disk = Disk()
            disk_name = disk_names[idx]

            self.disks.append(disk)
            self.disks_by_name[disk_names[idx]] = disk
            self.disk_names.append(disk_name)

        if number is not None:
            pos = self.num_disk_positions
            rest = number
            for disk_name in reversed(disk_names):
                disk = self.disks_by_name[disk_name]
                disk_idx = disk_names.index(disk_name)
                pole_idx = rest // pos**disk_idx

                disk.pole = pole_idx
                rest = rest - pole_idx * pos**disk_idx