示例#1
0
 def test_rule_one(self):
     """
     # Any live cell with fewer than two live neighbours dies.
                     
          #      -->          
          
     """
     grid = set([(2, 2)])
     new_grid = game_of_life.step(grid)
     self.assertNotIn((2, 2), new_grid)
示例#2
0
    def test_rule_three(self):
        """
        # Any live cell with more than three live neighbours dies.

             #              #
            ###     -->    # #
             #              #
        """
        grid = set([(1, 0), (2, 0), (3, 0), (2, 1), (2, -1)])
        new_grid = game_of_life.step(grid)
        self.assertNotIn((2, 0), new_grid)
示例#3
0
    def test_rule_two(self):
        """
        # Any live cell with two or three live neighbours remains alive.

            ##     -->     ##
             #             ##
        """
        grid = set([(1, 0), (2, 0), (2, -1)])
        new_grid = game_of_life.step(grid)
        for cell in grid:
            self.assertIn(cell, new_grid)
示例#4
0
    def test_rule_one(self):
        """
        # Any live cell with fewer than two live neighbours dies.

             #      -->

        """
        grid = set([(2, 2)])
        new_grid = game_of_life.step(grid)
        for cell in grid:
            self.assertNotIn(cell, new_grid)
示例#5
0
    def test_rule_four(self):
        """
        # Any dead cell with exactly three live neighbours becomes a live cell.

            #
            #      -->    ###
            #
        """
        grid = set([(1, 0), (2, 0), (3, 0)])
        new_grid = game_of_life.step(grid)
        self.assertNotIn((1, 0), new_grid)
        self.assertNotIn((3, 0), new_grid)
        self.assertIn((2, 0), new_grid)
        self.assertIn((2, 1), new_grid)
        self.assertIn((2, -1), new_grid)
示例#6
0
def run(state):
    clock = pygame.time.Clock()
    running = True
    while running:
        layer.fill((0,0,0,))
        for cell in state:
            layer.set_at(cell, (255,255,255))
        
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

        pygame.display.flip()
        state = game_of_life.step(state)
        clock.tick(24)
示例#7
0
def run(state):
    clock = pygame.time.Clock()
    running = True
    while running:
        layer.fill((
            0,
            0,
            0,
        ))
        for cell in state:
            layer.set_at(cell, (255, 255, 255))

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

        pygame.display.flip()
        state = game_of_life.step(state)
        clock.tick(24)
示例#8
0
def run(game_state, width, height, percent):
    """
    Main loop
    """
    clock = pygame.time.Clock()
    running = True
    black = (0, 0, 0)
    white = (255, 255, 255)
    origin = (0, 0)
    start = origin
    end = width, height
    screen, surface = init_screen(width, height)

    pygame.font.init()
    myfont = pygame.font.SysFont('Comic Sans MS', 30)
    screen_stats = "start: {0}, end: {1}"
    textsurface = myfont.render(screen_stats.format(0, 0), False,
                                (255, 255, 0))
    while running:
        surface.fill(black)
        for cell in game_state:
            surface.set_at(cell, white)

        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN or event.type == pygame.QUIT:
                running = False
            if event.type == pygame.MOUSEBUTTONDOWN:
                start = pygame.mouse.get_pos()
            if event.type == pygame.MOUSEBUTTONUP:
                end = pygame.mouse.get_pos()
                textsurface = myfont.render(screen_stats.format(start, end),
                                            False, (255, 255, 0))
                game_state = game_state.union(
                    game_of_life.create_cells(start, end, percent))

        screen.blit(surface.convert(), origin)
        screen.blit(textsurface.convert(), origin)
        pygame.display.flip()
        game_state = game_of_life.step(game_state)
        clock.tick(24)
示例#9
0
def run(game_state, width, height, percent):
    """
    Main loop
    """
    clock = pygame.time.Clock()
    running = True
    black = (0, 0, 0)
    white = (255, 255, 255)
    origin = (0, 0)
    start = origin
    end = width, height
    screen, surface = init_screen(width, height)

    pygame.font.init()
    myfont = pygame.font.SysFont('Comic Sans MS', 30)
    screen_stats = "start: {0}, end: {1}"
    textsurface = myfont.render(screen_stats.format(0, 0), False, (255, 255, 0))
    while running:
        surface.fill(black)
        for cell in game_state:
            surface.set_at(cell, white)

        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN or event.type == pygame.QUIT:
                running = False
            if event.type == pygame.MOUSEBUTTONDOWN:
                start = pygame.mouse.get_pos()
            if event.type == pygame.MOUSEBUTTONUP:
                end = pygame.mouse.get_pos()
                textsurface = myfont.render(screen_stats.format(start, end), False, (255, 255, 0))
                game_state = game_state.union(game_of_life.create_cells(start, end, percent))


        screen.blit(surface.convert(), origin)
        screen.blit(textsurface.convert(), origin)
        pygame.display.flip()
        game_state = game_of_life.step(game_state)
        clock.tick(24)
示例#10
0
def test_glider(before, after):
    assert equal(step(before), after)
示例#11
0
def test_still(filename):
    cells = load_cells(asset(filename))
    assert equal(step(cells), cells)