Esempio n. 1
0
def main2():
    # my_node = Node(Grid(),0)
    # my_node.grid.setCellValue((3,3), 1)
    # my_node.print_grid()

    grid1 = Grid()
    grid1.setCellValue((0, 0), 1)
    grid2 = grid1.clone()
    grid2.setCellValue((0, 1), 1)  # child of node1
    grid3 = grid1.clone()
    grid3.setCellValue((0, 1), 2)  # child of node1
    grid4 = grid2.clone()
    grid4.setCellValue((0, 2), 1)  # child of node2
    grid5 = grid3.clone()
    grid5.setCellValue((0, 2), 1)  # child of node3

    node1 = Node(grid1, 0)
    node2 = Node(grid2, 0)
    node3 = Node(grid3, 0)
    node4 = Node(grid4, 0)
    node5 = Node(grid5, 0)

    node1.push_children(node2)
    node1.push_children(node3)
    node2.push_children(node4)
    node3.push_children(node5)

    my_tree = SearchTree(node1)

    my_tree.print_tree()
Esempio n. 2
0
def main():
    player = PlayerAI()
    testGrid = Grid()
    displayer = Displayer()
    displayer.display(testGrid)
    print(player.findPairs(testGrid))
    testGrid.setCellValue([0, 0], 3)
    displayer.display(testGrid)
    print(player.findPairs(testGrid))
    testGrid.setCellValue([0, 3], 3)
    displayer.display(testGrid)
    print(player.findPairs(testGrid))
    testGrid.setCellValue([2, 3], 3)
    displayer.display(testGrid)
    print(player.findPairs(testGrid))
    testGrid.setCellValue([0, 1], 3)
    displayer.display(testGrid)
    print(player.findPairs(testGrid))
    testGrid.setCellValue([0, 2], 3)
    displayer.display(testGrid)
    print(player.findPairs(testGrid))
    testGrid.setCellValue([1, 1], 3)
    displayer.display(testGrid)
    print(player.findPairs(testGrid))


#main()
Esempio n. 3
0
 def __init__(self, size = 4):
     self.grid = Grid(size)
     self.possibleNewTiles = [2, 4]
     self.probability = defaultProbability
     self.initTiles  = defaultInitialTiles
     self.computerAI = None
     self.playerAI   = None
     self.displayer  = None
     self.over       = False
Esempio n. 4
0
 def __init__(self, size=4):
     self.grid = Grid(size)
     self.possibleNewTiles = [2, 4]
     self.probability = defaultProbability
     self.initTiles = defaultInitialTiles
     self.computerAI = None
     self.playerAI = None
     self.displayer = None
     self.over = False
     # Load the DNN model
     self.model_NN = load_model("all_2048_8000games.h5")
Esempio n. 5
0
    def __init__(self, size=4, playerAI=None, computerAI=None, displayer=None):
        self.grid = Grid(size)
        self.possibleNewTiles = [2, 4]
        self.probability = defaultProbability
        self.initTiles = defaultInitialTiles
        self.over = False

        # Initialize the AI players
        self.computerAI = computerAI or ComputerAI()
        self.playerAI = playerAI or PlayerAI()
        self.displayer = displayer or Displayer()
 def __init__(self, size=4):
     self.grid = Grid(size)
     self.possibleNewTiles = [2, 4]
     self.probability = defaultProbability
     self.initTiles = defaultInitialTiles
     self.computerAI = None
     self.playerAI = None
     self.displayer = None
     self.over = False
     self.max_time_for_get_move = 0
     self.next_move_counter = 0
     self.MAX_NEXT_MOVE_COUNTER = 10000
Esempio n. 7
0
def main():
    grid1 = Grid()
    node1 = Node(grid1, 0)
    grid1.map[0][0] = 64
    grid1.map[1][0] = 2
    grid1.map[3][0] = 4

    grid1.map[0][1] = 0
    grid1.map[1][1] = 0
    grid1.map[3][1] = 0
    grid1.map[2][1] = 0
    grid1.map[2][2] = 0

    strategy = MiniMax(node1)
    alpha_beta = strategy.alpha_beta(5)

    print("\nMiniMax: ", node1.h_value, "\nDirection: ", alpha_beta)
Esempio n. 8
0
def main4():
    grid1 = Grid()
    node1 = Node(grid1, 0)
    grid1.map[0][0] = 64
    grid1.map[1][0] = 2
    grid1.map[3][0] = 4

    grid1.map[0][1] = 0
    grid1.map[1][1] = 0
    grid1.map[3][1] = 0
    grid1.map[2][1] = 0
    grid1.map[2][2] = 0

    my_tree = SearchTree(node1)
    my_tree.build_tree(4)

    strategy = MiniMax(node1)
    alpha_beta = strategy.alpha_beta(5)

    print("\nMiniMax: ", node1.h_value, "\nDirection: ", alpha_beta)
Esempio n. 9
0
def main3():
    grid1 = Grid()
    node1 = Node(grid1, 0)
    grid1.map[0][0] = 2
    grid1.map[1][0] = 2
    grid1.map[3][0] = 4

    grid1.map[0][1] = 0
    grid1.map[1][1] = 0
    grid1.map[3][1] = 0
    grid1.map[2][1] = 0
    grid1.map[2][2] = 0

    my_tree = SearchTree(node1)
    my_tree.build_tree(4)
    my_tree.print_tree()

    strategy = MiniMax(node1)
    alpha_beta = strategy.alpha_beta(4)

    print("\nMiniMax: {0:.4f}".format(alpha_beta))

    print("---------> ", node1.h_value)
Esempio n. 10
0
 def create_slowgrid_from(self, val) -> Grid:
     sut = Grid()
     for row in range(4):
         for col in range(4):
             sut.setCellValue((row, col), val[row][col])
     return sut
Esempio n. 11
0
 def __init__(self):
     self.grid = Grid()
     self.game_manager = GameManager()
     self.playerAI = PlayerAI()
     self.computerAI = ComputerAI()
     self.displayer = BaseDisplayer()
Esempio n. 12
0
 def create_slowgrid_from_list(self, l, size=4) -> FastGrid:
     sut = Grid()
     sut.map = l
     sut.size = size
     return sut
Esempio n. 13
0
 def test_can_create_grid_to_design(self):
     sut = Grid()
     self.assertIsNotNone(sut)
     self.assertEqual(4, sut.size)
     sut.setCellValue((0, 0), 2)
     self.assertEqual(sut.getCellValue((0, 0)), 2)
Esempio n. 14
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 11 16:36:48 2018

@author: jinzhao
"""

from Grid_3 import Grid

g = Grid()
g.map[0][0] = 2
g.map[1][0] = 2
g.map[3][0] = 4

empty = g.getAvailableCells()
print(empty)


def test_fun():
    return 1, 2


b = test_fun()[1]

print(b)


class test_class():
    def __init__(self):
        self.val = 100
Esempio n. 15
0
                neighbours = self.get_neighbours(pos)
                for n in neighbours:
                    if pos_value == grid.getCellValue(n):
                        merges += 1
        return merges

    def grid_eval(self, grid):
        gradients = [[[3, 2, 1, 0], [2, 1, 0, -1], [1, 0, -1, -2],
                      [0, -1, -2, -3]],
                     [[0, 1, 2, 3], [-1, 0, 1, 2], [-2, -1, 0, 1],
                      [-3, -2, -1, -0]],
                     [[0, -1, -2, -3], [1, 0, -1, -2], [2, 1, 0, -1],
                      [3, 2, 1, 0]],
                     [[-3, -2, -1, 0], [-2, -1, 0, 1], [-1, 0, 1, 2],
                      [0, 1, 2, 3]]]

        values = [0, 0, 0, 0]

        for i in range(4):
            for x in range(4):
                for y in range(4):
                    values[i] += gradients[i][x][y] * grid.map[x][y]

        return max(values)


if __name__ == "__main__":
    grid = Grid()
    a = grid.getAvailableCells()
    print(len(a))
Esempio n. 16
0
 def to_slowgrid(self):
     g = Grid()
     g.map = Util.array_to_2dlist(self.board)
     return g
Esempio n. 17
0
 def make(self):
     self.grid = Grid(self.size)
     for i in range(self.init_tiles):
         self.insert_random_tile()