#include "vision.h"
#include <bits/stdc++.h>
using namespace std;

std::vector<int> getVisionPattern1d()
{
    return {3, 1, 1, 1, 2, 1};
}

int getMove1d(std::vector<int> v)
{
    int vis=(v.size()-1)/2;
    if (vis==1)
    {
        if (v[0]>v[2]) return 0;
        return 2;
    }
    if (vis==2)
    {
        if (v[0] > v[4]) return 0;
        return 4;
    }
    if (vis==3)
    {
        if (v[1] > v[5]) return 6;
        return 0;
    }
    return 0;
}

std::vector<std::vector<int>> getVisionPattern2d()
{
    return {    {2, 1, 3, 1, 1, 1},
                {1, 1, 1, 1, 1, 1},
                {2, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 2, 1}};
}

std::pair<int, int> getMove2d(std::vector<std::vector<int>> v)
{
    int vis=(v.size()-1)/2;

    if (vis==1)
    {
        for (int i=2 ; i>=0 ; i--)
        {
            for  (int j=2 ; j>=0 ; j--)
            {
                if (v[i][j] == 3) return {i, j};
            }
        }
        for (int i=2 ; i>=0 ; i--)
        {
            for  (int j=2 ; j>=0 ; j--)
            {
                if (v[i][j] == 2) return {i, j};
            }
        }
        return {1, 0};
    }
    if (vis==2)
    {
        for (int i=0 ; i<5 ; i++)
        {
            for  (int j=0 ; j<5 ; j++)
            {
                if (v[i][j] == 3) return {i, j};
            }
        }
    }
    if (vis==3)
    {
        int x, y;
        if (v[3][1] == 2)
        {
            y=6;
            if (v[2][5] == 2) x=6;
            else x=0;
        }
        else
        {
            y=0;
            if (v[2][1] == 2) x=6;
            else x=0;
        }
        return {x, y};
    }
    while (true){}
}
