#!/usr/bin/env python3
"""Auto-generated by AGI Loop cycle #1038
Task: Write a Python function that implements Conway's Game of Life on a 20x20 grid for 10 generations and prints final state
Generated: 2026-02-12T17:55:25.948110
"""

import numpy as np

def conways_game_of_life(initial_state, generations=10):
    grid = np.copy(initial_state)
    for gen in range(generations):
        new_grid = np.zeros_like(grid)
        rows, cols = grid.shape
        for i in range(rows):
            for j in range(cols):
                neighbors = np.sum(grid[max(0, i-1):min(rows, i+2), max(0, j-1):min(cols, j+2)])
                if grid[i, j] == 1:
                    if neighbors < 2 or neighbors > 3:
                        new_grid[i, j] = 0
                    else:
                        new_grid[i, j] = 1
                else:
                    if neighbors == 3:
                        new_grid[i, j] = 1
                    else:
                        new_grid[i, j] = 0
        grid = new_grid
    print("Final state after", generations, "generations:")
    print(grid)

if __name__ == '__main__':
    # Initial state: a 20x20 grid with a simple glider pattern
    initial_state = np.zeros((20, 20), dtype=int)
    initial_state[5, 5] = 1
    initial_state[5, 6] = 1
    initial_state[5, 7] = 1
    initial_state[6, 7] = 1
    initial_state[7, 6] = 1
    conways_game_of_life(initial_state, generations=10)