def test_canMove_no_empty_cell_can_collapse(self): b = Board(size=2) b.cells = [ [2, 2], [4, 8] ] self.assertTrue(b.canMove())
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)
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())
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])
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)
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])
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])
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]])
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])
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] ])
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)
def test_init_dimensions_1(self): b = Board(size=1) c = b.cells[0][0] self.assertTrue(c in [2, 4])
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])
def test_init_dimensions_3_goal_4(self): b = Board(size=3, goal=4) self.assertEqual(b.size(), 3)
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])
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])
def test_canMove_no_empty_cell(self): b = Board(size=1) b.setCell(0, 0, 42) self.assertFalse(b.canMove())
def test_canMove_empty_cell(self): b = Board(size=2) self.assertTrue(b.canMove())
def test_getEmptyCells_filled(self): b = Board(size=1) b.setCell(0, 0, 42) self.assertSequenceEqual(b.getEmptyCells(), [])
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)
def test_size(self): s = 42 b = Board(size=s) self.assertEqual(b.size(), s)
def test_addTile(self): b = Board(size=1) b.cells = [[0]] b.addTile(value=42) self.assertEqual(b.cells[0][0], 42)
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)
def test_goal(self): g = 17 b = Board(goal=g) self.assertEqual(b.goal(), g)
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)
def setUp(self): self.b = Board()