Exemple #1
0
 def test_canMove_no_empty_cell_can_collapse(self):
     b = Board(size=2)
     b.cells = [
         [2, 2],
         [4, 8]
     ]
     self.assertTrue(b.canMove())
Exemple #2
0
    def __init__(self,
                 scores_file=SCORES_FILE,
                 colors=COLORS,
                 store_file=STORE_FILE,
                 clear_screen=True,
                 mode=None,
                 azmode=False,
                 **kws):
        """
        Create a new game.
            scores_file: file to use for the best score (default
                         is ~/.term2048.scores)
            colors: dictionnary with colors to use for each tile
            store_file: file that stores game session's snapshot
            mode: color mode. This adjust a few colors and can be 'dark' or
                  'light'. See the adjustColors functions for more info.
            other options are passed to the underlying Board object.
        """
        self.board = Board(**kws)
        self.score = 0
        self.scores_file = scores_file
        self.store_file = store_file
        self.clear_screen = clear_screen

        self.__colors = colors
        self.__azmode = azmode

        self.loadBestScore()
        self.adjustColors(mode)
Exemple #3
0
 def test_move_collapse_and_win(self):
     b = Board(size=2, goal=4)
     b.cells = [
         [2, 2],
         [0, 0]
     ]
     b.move(Board.LEFT, add_tile=False)
     self.assertTrue(b.won())
Exemple #4
0
 def test_move_collapse_chain_four_same_tiles(self):
     b = Board()
     b.cells = [
         [2, 2, 2, 2],
         [0]*4,
         [0]*4,
         [0]*4
     ]
     self.assertEqual(b.move(Board.LEFT, add_tile=False), 8)
     self.assertSequenceEqual(b.getLine(0), [4, 4, 0, 0])
Exemple #5
0
 def test_getLine(self):
     b = Board(size=4)
     l = [42, 17, 12, 3]
     b.cells = [
         [0]*4,
         l,
         [0]*4,
         [0]*4
     ]
     self.assertSequenceEqual(b.getLine(1), l)
Exemple #6
0
 def test_move_collapse_chain_line_left(self):
     b = Board()
     b.cells = [
         [0, 2, 2, 4],
         [0]*4,
         [0]*4,
         [0]*4
     ]
     self.assertEqual(b.move(Board.LEFT, add_tile=False), 4)
     self.assertSequenceEqual(b.getLine(0), [4, 4, 0, 0])
Exemple #7
0
 def test_move_collapse_chain_line_right2(self):
     b = Board()
     b.cells = [
         [0, 4, 2, 2],
         [0]*4,
         [0]*4,
         [0]*4
     ]
     self.assertEqual(b.move(Board.RIGHT, add_tile=False), 4)
     self.assertSequenceEqual(b.getLine(0), [0, 0, 4, 4])
Exemple #8
0
 def test_move_filled(self):
     b = Board(size=1)
     b.setCell(0, 0, 42)
     b.move(Board.UP)
     self.assertSequenceEqual(b.cells, [[42]])
     b.move(Board.LEFT)
     self.assertSequenceEqual(b.cells, [[42]])
     b.move(Board.RIGHT)
     self.assertSequenceEqual(b.cells, [[42]])
     b.move(Board.DOWN)
     self.assertSequenceEqual(b.cells, [[42]])
Exemple #9
0
 def test_move_dont_add_tile_if_nothing_move2(self):
     b = Board()
     b.cells = [
         [8, 4, 4, 2],
         [0, 2, 2, 0],
         [0]*4,
         [0]*4
     ]
     self.assertEqual(b.move(Board.UP), 0)
     self.assertEqual(len([e for l in b.cells for e in l if e != 0]), 6)
     self.assertEqual(b.getLine(0), [8, 4, 4, 2])
     self.assertEqual(b.getLine(1), [0, 2, 2, 0])
Exemple #10
0
    def test_move_collapse(self):
        b = Board(size=2)
        b.cells = [
            [2, 2],
            [0, 0]
        ]

        b.move(Board.LEFT, add_tile=False)
        self.assertSequenceEqual(b.cells, [
            [4, 0],
            [0, 0]
        ])
Exemple #11
0
    def __init__(self,
                 score_file=SCORE_FILE,
                 colors=None,
                 store_file=STORE_FILE,
                 clear_screen=True,
                 mode=None,
                 azmode=False,
                 **kwargs):
        self.board = Board(**kwargs)
        self.score = 0
        self.score_file = score_file
        self.store_file = store_file
        self.clear_screen = clear_screen

        self.best_score = 0
        self.__colors = colors or self.COLORS
        self.__azmode = azmode

        self.loadBestScore()
        self.adjustColors(mode)
Exemple #12
0
 def test_init_dimensions_1(self):
     b = Board(size=1)
     c = b.cells[0][0]
     self.assertTrue(c in [2, 4])
Exemple #13
0
 def test_move_collapse_chain_col(self):
     b = Board()
     b.setCol(0, [0, 2, 2, 4])
     b.move(Board.DOWN, add_tile=False)
     self.assertSequenceEqual(b.getCol(0), [0, 0, 4, 4])
Exemple #14
0
 def test_init_dimensions_3_goal_4(self):
     b = Board(size=3, goal=4)
     self.assertEqual(b.size(), 3)
Exemple #15
0
 def test_move_collapse_with_empty_cell_in_between2(self):
     b = Board(size=3)
     b.setLine(0, [2, 0, 2])
     b.move(Board.LEFT, add_tile=False)
     self.assertSequenceEqual(b.getLine(0), [4, 0, 0])
Exemple #16
0
 def test_move_collapse_triplet2(self):
     b = Board(size=3)
     b.setLine(0, [2, 2, 2])
     b.move(Board.RIGHT, add_tile=False)
     self.assertSequenceEqual(b.getLine(0), [0, 2, 4])
Exemple #17
0
 def test_canMove_no_empty_cell(self):
     b = Board(size=1)
     b.setCell(0, 0, 42)
     self.assertFalse(b.canMove())
Exemple #18
0
 def test_canMove_empty_cell(self):
     b = Board(size=2)
     self.assertTrue(b.canMove())
Exemple #19
0
 def test_getEmptyCells_filled(self):
     b = Board(size=1)
     b.setCell(0, 0, 42)
     self.assertSequenceEqual(b.getEmptyCells(), [])
Exemple #20
0
 def test_getCol(self):
     s = 4
     b = Board(size=s)
     l = [42, 17, 12, 3]
     b.cells = [[l[i], 4, 1, 2] for i in xrange(s)]
     self.assertSequenceEqual(b.getCol(0), l)
Exemple #21
0
 def test_size(self):
     s = 42
     b = Board(size=s)
     self.assertEqual(b.size(), s)
Exemple #22
0
 def test_addTile(self):
     b = Board(size=1)
     b.cells = [[0]]
     b.addTile(value=42)
     self.assertEqual(b.cells[0][0], 42)
Exemple #23
0
 def test_move_dont_add_tile_if_nothing_move(self):
     b = Board(size=2)
     b.cells = [[2, 0],
                [0, 0]]
     b.move(Board.UP)
     self.assertEqual(len([e for l in b.cells for e in l if e != 0]), 1)
Exemple #24
0
 def test_goal(self):
     g = 17
     b = Board(goal=g)
     self.assertEqual(b.goal(), g)
Exemple #25
0
 def test_move_add_tile_if_collapse(self):
     b = Board(size=2)
     b.cells = [[2, 0],
                [2, 0]]
     b.move(Board.UP)
     self.assertEqual(len([e for l in b.cells for e in l if e != 0]), 2)
Exemple #26
0
 def setUp(self):
     self.b = Board()