Пример #1
0
    def put_tile(self, coord):
        pipe = self.mapdata.pipes[coord]
        tile = self.mapdata.tiles[coord]
        if self.selected in xrange(0, len(COLORS)):  #colorize
            if pipe.type != "empty.png":
                pipe.switch_color(self.selected)
            elif tile.type == "btn.png":
                tile.switch_color(self.selected)
        elif self.selected == "del_col.png":  #decolorize
            pipe.switch_color(None)

        elif self.selected == "delete.png":  #delete
            tile.switch_type("empty.png")
        elif self.selected == "del_pipe.png":
            pipe.switch_type("empty.png")

        elif self.selected.startswith("pipe"):  #put/rotate pipes
            if pipe.type == self.selected:
                #change rotation on 2nd click
                pipe.add_rot()
            else:
                pipe.switch_type(self.selected)

        elif self.selected == "block.png":  #block junction
            if pipe.type == "pipe_tjunc.png":
                pipe.switch_block()
        else:
            tile.switch_type(self.selected)  #put normal tile

        draw_map(self.mapdata, self.map_layer)
        draw_pipes(self.mapdata, self.pipe_layer)
        self.scr_update = 1
Пример #2
0
 def unpause(self):
     self.scr_update = 1
     if self.next_was == "game":
         self.next_was = None
         self.mapdata = self.mapcopy.copy()
         #elf.mapdata = load_mapdata("TMP", MAP_folder)
     draw_map(self.mapdata, self.map_layer)
     draw_pipes(self.mapdata, self.pipe_layer)
     BaseState.unpause(self)
Пример #3
0
    def run_map(self):
        """
        Run the map with given user choices.
        It takes no arguments.
        It returns nothing.
        """
        choice = self.radio_button_var.get()
        #Make an input check before running map
        if self.input_check(choice) == True:
            #Prepare thresholds , facility_number , confidence_interval etc.
            threshold, is_stochastis, min_threshold, facility_number, confidence_interval = self.get_user_entries(
                choice)

            #Generate file name of the solution file
            self.generate_solution_filename(choice, threshold, is_stochastis,
                                            min_threshold, facility_number,
                                            confidence_interval)

            if self.check_map() == True:
                map.draw_map(self.map_file_name)
            else:
                #Prepare District data
                name_of_districts, x_coordinates, y_coordinates, from_districts, to_districts, distances = solver.writer.reader.read_district_file(
                )
                risks = solver.writer.reader.read_risk()
                risk_indicator = solver.writer.reader.util.generate_risk_indicator(
                    risks)
                risk_array = solver.writer.reader.util.generate_risk_array()
                random_numbers = solver.writer.reader.read_generated_numbers()
                print("District file is read")

                #Get availability_matrix , it can be stochastic as well
                availability_matrix = self.get_appropriate_available_matrix(
                    choice, from_districts, to_districts, distances, threshold,
                    random_numbers, min_threshold, confidence_interval)

                #Create fixed_cost
                fixed_cost = solver.writer.reader.util.generate_fixed_cost_array(
                )
                print("Fixed_cost is created")

                #Get .dat file
                self.write_appropriate_dat_file(choice, availability_matrix,
                                                fixed_cost, threshold,
                                                facility_number, is_stochastis,
                                                confidence_interval,
                                                risk_indicator, risk_array,
                                                min_threshold)
                solver.run(choice, threshold, confidence_interval,
                           facility_number, min_threshold)
                print(self.solution_file_name)
                solution_array = solver.writer.reader.read_cloud_solution(
                    self.solution_file_name)
                print("Solution array is read")
                map.run(solution_array, name_of_districts, x_coordinates,
                        y_coordinates, from_districts, to_districts, distances,
                        threshold, self.map_file_name)
def begin_match(level, destroy_menu):
    destroy_menu.destroy()
    draw_map(level)
    name, choose, animals = set_up_turtle(level)

    if level == 1: length_to_race = 400
    elif level == 2: length_to_race = 800
    else: length_to_race = 1000

    check_available_to_move = [[0 for i in range(4)] for i in range(3)]
    for i in range(0, 4, 1):
        check_available_to_move[0][
            i] = False  #The first row describe if the animals can move
        check_available_to_move[1][i] = False
        check_available_to_move[2][i] = 0

    winner, score = race(animals, check_available_to_move, length_to_race)
    winning_pose(animals[winner])
    turtle.bye()
    if choose == winner + 1:
        endgame_board(True)
    else:
        endgame_board(False)
Пример #5
0
    def on_draw(self):
        arcade.start_render()

        # self.stars._refresh_shape((5,1))
        # self.stars.draw()

        for bodie in self.bodies:
            if orb_in_view(bodie):
                bodie.draw()

                if (self.buttons_down['v']):
                    arcade.draw_line(bodie.pos.x, bodie.pos.y,
                                     bodie.pos.x + bodie.vel.x,
                                     bodie.pos.y + bodie.vel.y,
                                     arcade.color.WHITE, bodie.size / 10)

            if bodie == self.orb and self.dest != self.orb:
                arcade.draw_line(bodie.pos.x, bodie.pos.y, self.dest.pos.x,
                                 self.dest.pos.y, self.dest.color, 2)

        if self.map_on:
            draw_map(self.bodies, self.window_width, self.window_height)

        arcade.finish_render()
Пример #6
0
    def __init__(self, mapdata=None):
        BaseState.__init__(self)
        self.selected = None
        self.map_pos = (0, 32)
        self.scr_update = 1

        self.next_was = None

        #tile buttons
        buttons = [
            "delete.png",
            "start.png",
            "finish.png",
            "ground.png",
            "btn.png",
            "del_pipe.png",
            "pipe.png",
            "pipe_exit.png",
            "pipe_turn.png",
            "pipe_tjunc.png",
            "block.png",
        ]

        x, y = 0, 0
        self.tile_buttons = {}
        for b in buttons:
            self.background.blit(GFX_tiles[b], (x, y))
            tile_button = ImgButton(img=GFX_tiles[b],
                                    callback=self.select_type,
                                    name=b)
            tile_button.set_pos((x, y))
            self.widgets.append(tile_button)
            self.tile_buttons[b] = tile_button
            x += 34

        self.select_type("delete.png")

        #color buttons
        y = 0
        x = 800 - ((len(COLORS) + 1) * 34)

        img = GFX_tiles["del_col.png"]  #nocolor button
        self.background.blit(img, (x, y))
        col_button = ImgButton(img,
                               callback=self.select_type,
                               name="del_col.png")
        col_button.set_pos((x, y))
        self.widgets.append(col_button)
        self.tile_buttons["del_col.png"] = col_button
        x += 34

        img = pygame.Surface((32, 32))
        for c in COLORS:  #draw button for each color
            img.fill(c)
            name = COLORS.index(c)
            self.background.blit(img, (x, y))
            col_button = ImgButton(img=img,
                                   callback=self.select_type,
                                   name=name)
            col_button.set_pos((x, y))
            self.widgets.append(col_button)
            self.tile_buttons[name] = col_button
            x += 34

        #save, load and test button
        x, y = 704, 584
        buttons = ["save.png", "load.png", "test.png"]
        for b in buttons:
            img = GFX_tiles[b]
            self.background.blit(img, (x, y))
            btn = ImgButton(img, callback=self.submit, action=b)
            btn.set_pos((x, y))
            self.widgets.append(btn)
            x += 34

        #quit button
        x = 0
        img = GFX_tiles["quit.png"]
        self.background.blit(img, (x, y))
        btn = ImgButton(img, callback=self.quit)
        btn.set_pos((x, y))
        self.widgets.append(btn)

        #new button
        x += 34
        img = GFX_tiles["new.png"]
        self.background.blit(img, (x, y))
        btn = ImgButton(img, callback=self.new_map)
        btn.set_pos((x, y))
        self.widgets.append(btn)

        #map
        if mapdata:
            self.mapdata = mapdata
        else:
            self.mapdata = MapData()
        self.mapcopy = self.mapdata.copy()
        self.map_layer = pygame.Surface((800, 544))
        self.map_layer.set_colorkey((255, 0, 255))
        self.map_layer.fill((20, 20, 20))
        self.pipe_layer = pygame.Surface((800, 544))
        self.pipe_layer.set_colorkey((255, 0, 255))
        self.pipe_layer.fill((255, 0, 255))

        draw_map(self.mapdata, self.map_layer)
        draw_pipes(self.mapdata, self.pipe_layer)

        #tile buttons
        for k in self.mapdata.tiles.keys():
            tile = self.mapdata.tiles[k]
            rect = [[
                tile.pos[0] * 32 + self.map_pos[0],
                tile.pos[1] * 32 + self.map_pos[1]
            ], [32, 32]]
            btn = DragArea(rect, callback=self.put_tile, coord=k)
            self.widgets.append(btn)

        #grid
        self.grid_layer = pygame.Surface((800, 544))
        self.grid_layer.fill((255, 0, 255))
        self.grid_layer.set_colorkey((255, 0, 255))
        for i in xrange(1, 25):
            pygame.draw.line(self.grid_layer, (255, 255, 255), (i * 32, 0),
                             (i * 32, 544))

        for i in xrange(1, 17):
            pygame.draw.line(self.grid_layer, (255, 255, 255), (0, i * 32),
                             (800, i * 32))

        #keyboard shortcuts
        self.add_kbevent(KEYDOWN, K_ESCAPE, self.quit)
        #self.add_kbevent(KEYDOWN, K_F3, self.new_map)
        self.add_kbevent(KEYDOWN, K_F5, self.submit, action="test.png")
        self.add_kbevent(KEYDOWN, K_F7, self.submit, action="save.png")
        self.add_kbevent(KEYDOWN, K_F8, self.submit, action="load.png")