def display_results(x, y):
    plt.plot(x, y)
    plt.show()

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                                Main
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if __name__ == "__main__":
    ca = CA(N, N)
    for i in range(1000):
        ca.generate()
        if SHOW_MAP:
            plt.imshow(ca.get_cells(), cmap=plt.cm.gray, interpolation='nearest')
            plt.pause(0.01)
        if ca.check_for_stability():
            plt.title("Stable")
            plt.imshow(ca.get_cells(), cmap=plt.cm.gray, interpolation='nearest')
            plt.show()
            print("Generation: {}".format(i))
            break
    
    train_x, train_y, test_x, test_y = get_testing_data(ca.get_cells())

    runs = []
    efficiency = []
    for i in range(RUNS):
        model = Train(train_x, train_y)
        res = Test(model, test_x, test_y)
        runs.append(i + 1)
        efficiency.append(res)