Beispiel #1
0
    def create(self):
        self.square_list = []
        first_cow = random.randint(0, 3)
        first_row = random.randint(0, 3)
        secend_cow = random.randint(0, 3)
        secend_row = random.randint(0, 3)

        while True:
            if first_cow == secend_cow and first_row == secend_row:
                secend_row = random.randint(0, 3)
            else:
                break

        point_x = [68, 136, 205, 273]
        potin_y = [254, 323, 393, 462]

        for i in range(4):
            t = []
            for j in range(4):
                if i == first_cow and j == first_row or i == secend_cow and j == secend_row:
                    value = random.choice([2, 4])
                    t.append(square.Square(Point(point_x[j], potin_y[i]), 59, value))
                else:
                    t.append(square.Square(Point(point_x[j], potin_y[i]), 59, 0))

            self.square_list.append(t)
        self.show()
Beispiel #2
0
 def draw(self, screen):
     turn_list = self.turn_list
     dirc = self.head_dir
     turn_index = 0
     square_x = self.head_pos["x"]
     square_y = self.head_pos["y"]
     for i in range(0, self.length):
         sq = square.Square(square_x, square_y, self.square_side)
         if self.head_pos["x"] == square_x and self.head_pos["y"] == square_y:
             sq.draw(screen, self.head_color, 1)
         else:
             sq.draw(screen, self.color)
         prev_sq_x = square_x
         prev_sq_y = square_y
         square_x = prev_sq_x - (dirc["x_dir"])
         square_y = prev_sq_y - (dirc["y_dir"])
         new_square_pos = (square_x, square_y)
         if turn_index < len(turn_list):
             turn_pos = turn_list[turn_index]["pos"]
             turn_pos_tuple = (turn_pos["x"], turn_pos["y"])
             if new_square_pos == turn_pos_tuple:
                 dirc = turn_list[turn_index]["dir"]
                 turn_index += 1
                 if i == self.length - 1:
                     turn_list.pop()
Beispiel #3
0
 def _built_board(self):
     colors = ["white", "black"] * (self.cols + 2)
     self.board = [[
         square.Square(i, j, colors[j + i % 2]) for j in range(self.cols)
     ] for i in range(self.rows)]
     # Black pieces
     # Rook, Knight, Bishop, King, Queen, Pawns
     self.board[0][0].set_piece(piece.Rook(self.board[0][0], Board.black))
     self.board[0][7].set_piece(piece.Rook(self.board[0][7], Board.black))
     self.board[0][1].set_piece(piece.Knight(self.board[0][1], Board.black))
     self.board[0][6].set_piece(piece.Knight(self.board[0][6], Board.black))
     self.board[0][2].set_piece(piece.Bishop(self.board[0][2], Board.black))
     self.board[0][5].set_piece(piece.Bishop(self.board[0][5], Board.black))
     self.board[0][3].set_piece(piece.King(self.board[0][3], Board.black))
     self.board[0][4].set_piece(piece.Queen(self.board[0][4], Board.black))
     for j in xrange(0, self.cols):
         self.board[1][j].set_piece(
             piece.Pawn(self.board[1][j], Board.black))
     # White pieces
     # Rook, Knight, Bishop, King, Queen, Pawns
     self.board[7][0].set_piece(piece.Rook(self.board[7][0], Board.white))
     self.board[7][7].set_piece(piece.Rook(self.board[7][7], Board.white))
     self.board[7][1].set_piece(piece.Knight(self.board[7][1], Board.white))
     self.board[7][6].set_piece(piece.Knight(self.board[7][6], Board.white))
     self.board[7][2].set_piece(piece.Bishop(self.board[7][2], Board.white))
     self.board[7][5].set_piece(piece.Bishop(self.board[7][5], Board.white))
     self.board[7][4].set_piece(piece.King(self.board[7][4], Board.white))
     self.board[7][3].set_piece(piece.Queen(self.board[7][3], Board.white))
     for j in xrange(0, self.cols):
         self.board[6][j].set_piece(
             piece.Pawn(self.board[6][j], Board.white))
     self.kings = [self.board[0][3], self.board[7][4]]
Beispiel #4
0
 def fill_board(self):
     self.board = [[
         men.Men([i, j], 'B') if
         (i < 3 and (i + j) % 2 == 1) else men.Men([i, j], 'C') if
         (4 < i < 8 and (i + j) % 2 == 1) else sq.Square([i, j]) if
         ((i + j) % 2 == 1) else None for j in range(8)
     ] for i in range(8)]
Beispiel #5
0
 def test3(self):
     # Black winner
     self.board = [[
         men.Men([i, j], 'B') if (i == 1 and j == 2) else
         men.Men([i, j], 'C') if i == 2 and j == 1 else sq.Square([i, j]) if
         ((i + j) % 2 == 1) else None for j in range(8)
     ] for i in range(8)]
Beispiel #6
0
 def __init__(self):
     self.squares = [[square.Square((i, j), placeholder) for j in range(8)]
                     for i in range(8)]
     self.taken_p = {'w': [], 'b': [], '0': []}
     self.last_move = None
     self.did_king_move = {'w': False, 'b': False}
     self.did_rook_move = {'w': [False, False], 'b': [False, False]}
     self.promotion = False
Beispiel #7
0
 def __init__(self):
    w, h = 9, 9;
    self.board = [[square.Square() for x in range(w)] for y in range(h)]
    self.parent=None
    self.children=[]
    self.myStack=[]
    self.smallestDomain=None
    self.solveList = []
Beispiel #8
0
    def __copy__(self):
        new = Board(self.size, self.colors)
        for i in range(self.size):
            for j in range(self.size):
                square = self.squares[i][j]
                new.squares[i][j] = s.Square(square.x, square.y, square.color)

        return new
Beispiel #9
0
 def test1(self):
     # Man at arms
     self.board = [[
         men.Men([i, j], 'B') if
         (i == 6 and j == 1) or (i == 1 and j == 2) else
         men.Men([i, j], 'C') if i == 2 and j == 1 else sq.Square([i, j]) if
         ((i + j) % 2 == 1) else None for j in range(8)
     ] for i in range(8)]
Beispiel #10
0
 def __init__(self, rows, columns, mines, flags=0):
     self.numRows = rows
     self.numColumns = columns
     self.numMines = mines
     self.numFlags = flags
     # Two-dimensional array
     self.box = [[square.Square() for j in range(columns)]
                 for i in range(rows)]
Beispiel #11
0
 def __init__(self, window, player):
     self.__board = [
         square.Square(window, (25, 55, 150, 150)),
         square.Square(window, (200, 55, 150, 150)),
         square.Square(window, (375, 55, 150, 150)),
         square.Square(window, (25, 230, 150, 150)),
         square.Square(window, (200, 230, 150, 150)),
         square.Square(window, (375, 230, 150, 150)),
         square.Square(window, (25, 405, 150, 150)),
         square.Square(window, (200, 405, 150, 150)),
         square.Square(window, (375, 405, 150, 150))
     ]
     self.__player = player
     self.__window = window
Beispiel #12
0
 def _copy_grid(self):
     """
     Creates and returns a copy of Board.grid; called after every move to record board history
     """
     grid = [[SQUARE.Square(r, c) for c in range(self.height)] for r in range(self.width)]
     for r in range(self.width):
         for c in range(self.height):
             grid[r][c] = self.grid[r][c].copy()
     return grid
Beispiel #13
0
 def _init_pq(self):
     pq = minpq.MinPriorityQueue()
     for r in range(0, 9):                                                   # initialize pq
         for c in range(0, 9):
             if (self.grid[r][c] == 0):                                      # test if value is blank
                 sqr = square.Square(r, c)
                 sqr.update_square(self)
                 pq.push(sqr.key(), sqr)
     return pq
Beispiel #14
0
 def test2(self):
     # King attack
     self.board = [[
         men.Men([i, j], 'B') if
         ((i == 4 and j == 3) or
          (i == 4 and j == 1)) else king.King([i, j], 'C') if
         (i == 3 and j == 4) else sq.Square([i, j]) if
         ((i + j) % 2 == 1) else None for j in range(8)
     ] for i in range(8)]
Beispiel #15
0
 def __init__(self, size, top_left, name='game'):
     self.name = name
     self.size = size
     self.top_left = top_left
     self.squares = [[
         square.Square((i, j), -1 + 2 * ((j + i) % 2)) for j in range(8)
     ] for i in range(8)]
     self.set_squares()
     self.set_pieces()
Beispiel #16
0
    def __init__(self, type, i0=-1, j0=6, canvas=None, empty=False):
        self._type = type  # One of 'I', 'J', 'L', 'S', 'Z', 'O', 'T'
        if canvas is None:
            self._canvas = Shape.primary_canvas
        else:
            self._canvas = canvas

        # Individual shape types with important information about them
        # 'squares_coords' are spawning coordinates of shapes, dependent of
        # (i0, j0) - lower left corner of an 2x4 box, where they spawn.
        if self._type == 'I':
            squares_coords = [(i0, j0), (i0, j0 + 1), (i0, j0 + 2),
                              (i0, j0 + 3)]
            rotation_center = [i0, j0 + 2]
            color = 'cyan'
        elif self._type == 'J':
            squares_coords = [(i0 - 1, j0), (i0, j0), (i0, j0 + 1),
                              (i0, j0 + 2)]
            rotation_center = [i0, j0 + 1]
            color = 'blue'
        elif self._type == 'L':
            squares_coords = [(i0, j0), (i0, j0 + 1), (i0, j0 + 2),
                              (i0 - 1, j0 + 2)]
            rotation_center = [i0, j0 + 1]
            color = 'orange'
        elif self._type == 'S':
            squares_coords = [(i0, j0), (i0, j0 + 1), (i0 - 1, j0 + 1),
                              (i0 - 1, j0 + 2)]
            rotation_center = [i0 - 1, j0 + 1]
            color = 'green'
        elif self._type == 'Z':
            squares_coords = [(i0 - 1, j0), (i0 - 1, j0 + 1), (i0, j0 + 1),
                              (i0, j0 + 2)]
            rotation_center = [i0 - 1, j0 + 1]
            color = 'red'
        elif self._type == 'O':
            squares_coords = [(i0, j0 + 1), (i0 - 1, j0 + 1), (i0, j0 + 2),
                              (i0 - 1, j0 + 2)]
            rotation_center = [i0 - 1, j0 + 1]
            color = 'yellow'
        elif self._type == 'T':
            squares_coords = [(i0, j0), (i0, j0 + 1), (i0 - 1, j0 + 1),
                              (i0, j0 + 2)]
            rotation_center = [i0, j0 + 1]
            color = 'magenta'
        else:
            message = f"Shape type '{self._type}' unknown."
            raise UnknownShapeTypeError(message)

        self._rotation_center = rotation_center  # Needed only until shape locks
        self._color = color
        self._squares = set()
        if not empty:
            for i, j in squares_coords:
                self._squares.add(sq.Square(self._canvas, i, j, self._color))
Beispiel #17
0
    def __init__(self):
        """
		Creates a new board with two valued squares and 14 zero'd squares
		"""
        self.board_size = 4
        self.Squares = [square.Square() for i in range(self.board_size**2)]
        #Give two squares an initial value
        for i in range(2):
            sq = self.get_random_unassigned_square()
            sq.set_random_value()
        print(square.value for square in self.Squares)
Beispiel #18
0
 def _built_board(self):
     colors = ["white", "black"] * (self.cols + 2)
     self.board = [[
         square.Square(i, j, colors[j + i % 2]) for j in range(self.cols)
     ] for i in range(self.rows)]
     # Black pieces
     self.board[0][0].set_piece(piece.King(self.board[0][0], Board.black))
     # White pieces
     self.board[7][7].set_piece(piece.King(self.board[7][7], Board.white))
     self.board[0][2].set_piece(piece.Rook(self.board[0][2], Board.white))
     self.board[2][0].set_piece(piece.Rook(self.board[2][0], Board.white))
     self.board[4][0].set_piece(piece.Queen(self.board[4][0], Board.white))
     self.kings = [self.board[7][7], self.board[0][0]]
Beispiel #19
0
    def generateMap(self):
        yr = 0
        y = self.posBegin[1]
        ## Percorre as linhas
        while y < self.heigth + self.posBegin[1]:
            x = self.posBegin[0]
            xr = 0
            line = []
            ## Percorre as colunas
            while x < self.width + self.posBegin[0]:
                line.append(
                    square.Square((x, y), self.sideSquare, self.screen,
                                  (yr, xr)))
                x += self.sideSquare
                xr += 1
            yr += 1
            y += self.sideSquare
            self.listPlaces.append(line)

        ##Faz o carregamento de um mapa salvo
        if self.load != False:
            ## Cria um objeto para armazenar cada informação
            things = {}
            ## Le o arquivo
            arq = open(
                os.path.join("pkg", "mesh", "loads", self.load + ".txt"), "r")
            for line in arq:
                ## O formato de cada linha é:
                ## Nome x,y x,y x,y
                values = line.split(" ")
                ## O primeiro dado é o nome do objeto, seguido por varias posicoes
                things[values.pop(0)] = values

            ## Percorre os elementos que foram definidos
            for i in things:
                for j in things[i]:
                    pos = j.split(",")
                    ## Define que naquela posicao vai ter determinado objeto
                    self.listPlaces[int(pos[0])][int(pos[1])].itemInside = i
                    ## Atualiza a cor do lugar
                    self.listPlaces[int(pos[0])][int(pos[1])].updateColor()

            ## Seta as posicoes do robo e do objetivo
            if "Robô" in things:
                pos = things["Robô"][0].split(",")
                self.posAgent = (int(pos[0]), int(pos[1]))
            if "Objetivo" in things:
                pos = things["Objetivo"][0].split(",")
                self.posGoal = (int(pos[0]), int(pos[1]))
Beispiel #20
0
    def initialize_from_file(self, file_name):

        if self.squares is not None:
            warnings.warn("Board being initialized without clearing!", RuntimeWarning)

        self.squares = [[square.Square()] * self.size for i in range(self.size)]

        with open("puzzles/{}.txt".format(file_name), "r") as f:

            nums = f.readline().strip()

        if len(nums) != (self.size ** 2):
            raise RuntimeError("File {} is too short for this size board!".format(file_name))

        for i in range(len(nums)):
            if nums[i] is "0":
                possible = self.size *[True]
                num = int(nums[i])
                self.squares[i // self.size][i % self.size] = square.Square(num, possible)
            else:
                possible = self.size *[False]
                num = int(nums[i])
                possible[num - 1] = True
                self.squares[i // self.size][i % self.size] = square.Square(num, possible)
Beispiel #21
0
def init_squares():
    input_file = open(settings.square_centers_file, 'r')
    for index, line in enumerate(input_file):
        if index == 0:  # First line contains dimensions of rectangle in squares
            # size_text = line.split()
            # lon_size = int(size_text[0])
            # lat_size = int(size_text[1])
            continue

        line_text = line.split()
        # number = int(line_text[0])
        lon = float(line_text[1])
        lat = float(line_text[2])
        sqr = square.Square(lon, lat)
        settings.squares_matrix.append(sqr)
Beispiel #22
0
    def __init__(self):
        """
        Initialization of Board Object; Declaring Variables
        """
        self.alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        self.height = 8
        self.width = 8
        self.grid = [[SQUARE.Square(r, c) for c in range(self.width)] for r in range(self.height)]
        self.history = []

        # Todo: move variables into Chess Class
        self.turn_count = 1
        self.turn_last_capture = 0
        self._has_king = False
        self.white_king_position = None
        self.black_king_position = None
Beispiel #23
0
def main():

    #CREATE A SHAPE: red, border (1), name: Generic Shape
    my_shape = shape.Shape("red", 1, "Generic Shape")

    #CREATE A CIRCLE: blue, border (2), name: Circle
    my_circle = circle.Circle("blue", 2, "Circle")

    #CREATE A SQUARE: yellow, border (3), name: Square
    my_triangle = triangle.Triangle("yellow", 3, "Triangle")

    #CREATE A TRIANGLE: orange, border (4), name: Triangle
    my_square = square.Square("orange", 4, "Square")

    #ADD CODE TO SET THE APPROPRIATE ATTRIBUTES OF EACH SUBCLASS:
    #CIRCLE: RADIUS = 4
    #SQUARE: SIDE = 5
    #TRIANGLE: BASE = 4, HEIGHT = 10
    my_circle.set_radius(10)
    my_triangle.set_height(5)
    my_triangle.set_base(4)
    my_square.set_side(10)

    #ADD CODE TO PRINT THE VALUES OF EACH SHAPE, INCLUDING SHAPE
    shapes_list = []
    shapes_list.append(my_shape)
    shapes_list.append(my_circle)
    shapes_list.append(my_triangle)
    shapes_list.append(my_square)

    for shapes in shapes_list:
        print(shapes)

    #ADD CODE TO PRINT THE AREA OF THE CIRCLE, SQUARE, AND TRIANGLE

    for shapes in shapes_list:
        if isinstance(shapes, circle.Circle):
            print("Circle circumference is:", shapes.calc_circumference())
        elif isinstance(shapes, triangle.Triangle):
            print("Triangle area:", shapes.calc_area())
        elif isinstance(shapes, square.Square):
            print("Square perimeter:", shapes.calc_perimeter())

    print(my_circle.calc_area())
    print(my_square.calc_area())
    print(my_triangle.calc_area())
Beispiel #24
0
    def captured(self, position, black_turn, buttons):

        self.board[position[0]][position[1]] = sq.Square(
            [position[0], position[1]])
        self.attack[position[0]][position[1]] = True
        if black_turn:

            buttons.white_pawns -= 1
            buttons.get_rid_off_pawn(position)
            if buttons.white_pawns == 0:
                print('Black is victorious!')
                buttons.game_end()
        else:
            buttons.black_pawns -= 1
            buttons.get_rid_off_pawn(position)
            if buttons.black_pawns == 0:
                print('White is victorious!')
                buttons.game_end()
Beispiel #25
0
    def makeSquares(self, grid):

        threshListy = []
        if thresholding == True:
            count = 0
            for x in range(0, threshNum + 1):
                threshListy.append(count)
                count += 255 / threshNum

        squareNum = 0
        totalSquares = 0
        addNum = 0
        switch = 0

        for y in range(0, len(grid.photo) // tileSize):
            grid.squares.append([])  #makes a new level in 2D array
            grid.pixelPhoto.append([])
            for x in range(0, len(grid.photo[0]) // tileSize):
                for a in range(0, tileSize):
                    for b in range(0, tileSize):
                        squareNum += grid.photo[y * tileSize +
                                                a][x * tileSize + b]

                totalSquares += 1
                newSquare = square.Square(
                    (totalSquares % 2) + addNum,
                    int(squareNum // (tileSize * tileSize)), x * tileSize,
                    y * tileSize, x, y, tileSize, threshListy)
                grid.squares[y].append(newSquare)
                grid.pixelPhoto[y].append(
                    int(squareNum // (tileSize * tileSize)))
                squareNum = 0

            if switch == 0:
                switch = 1
                totalSquares = 1
                addNum = 2
            else:
                switch = 0
                totalSquares = 0
                addNum = 0
Beispiel #26
0
    def build_board(self, json_file):
        with open(json_file) as data:
            squares = json.load(data)["dependencies"]
        square_list = []
        for element in squares:
            #rajouter gestion de l'erreur pour voir si la case n'appartient pas aux bonnes catégories.
            if element["type"] == "Land":
                square_list.append(
                    square.Land(element["name"], element["position"],
                                element["value"], element["color"],
                                element["rent"],
                                element["construction_price"]))

            elif element["type"] == "Luck":
                square_list.append(
                    square.Luck(element["name"], element["position"]))

            elif element["type"] == "Square":
                square_list.append(
                    square.Square(element["name"], element["position"]))

            elif element["type"] == "Tax":
                square_list.append(
                    square.Tax(element["name"], element["position"],
                               element["amount"]))

            elif element["type"] == "Jail":
                square_list.append(
                    square.Jail(element["name"], element["position"]))

            elif element["type"] == "GoJail":
                square_list.append(
                    square.Go_Jail(element["name"], element["position"]))

            else:
                print("Pas une catégorie connue")
        return square_list
Beispiel #27
0
def random_square(x, y):
    return s.Square(x, y, random.choice(Board.possible_colors))
Beispiel #28
0
def make_square(master, square_command, row, column):
    place = tree.Place(row=row, column=column)
    result = square.Square(master, (row + column) & 1,
                           lambda: square_command(place))
    result.grid(row=row, column=column)
    return result
Beispiel #29
0
 def clicked_sqr(self, pos):
     for sqr in self.all_squares():
         if sqr.in_square(pos):
             return sqr
     return square.Square((-1, -1), (0, 0, 0))
Beispiel #30
0
 def draw(self, screen):
     sq = square.Square(self.x, self.y, self.square_side)
     sq.draw(screen, self.color)