package com.lloydm.geosword.common;

public class StarMapC
{
     private int[] map = new int[64];

     public StarMapC(String strmap)
     {
                     for (int i = 0; i < 63; i++)
                     {
                                     map[i] = Integer.decode(strmap.substring(i, i + 1));
                                     // values of 1 to 8....
                     }
     }

     public int getTeamAtXY(int xcoord, int ycoord)
     {
                     if (xcoord >= 0 && ycoord >= 0 && xcoord < 8 && ycoord < 8)
                     {
                                     return map[xcoord + ycoord * 8];
                     }
                     return 0;
     }

     public boolean isCoordinateAdjacentToMe(int txcoord, int tycoord, int xcoord, int ycoord)
     {
                     // check if the target position is adjacent (and also if the target
                     // position belongs to an opponent)
                     if (txcoord >= 0 && tycoord >= 0 && xcoord >= 0 && ycoord >= 0 && txcoord < 8 && tycoord < 8 && xcoord < 8 && ycoord < 8)
                     {
                                     if (tycoord == ycoord)
                                     {
                                                     if (txcoord == (xcoord - 1) || txcoord == (xcoord + 1))
                                                     {
                                                                     if (map[xcoord + ycoord * 8] != map[txcoord + tycoord * 8] && map[txcoord + tycoord * 8] > 0 && map[txcoord + tycoord * 8] < 9)
                                                                     {
                                                                                     return true;
                                                                     }
                                                     }
                                     }
                                     if (txcoord == xcoord)
                                     {
                                                     if (tycoord == (ycoord - 1) || tycoord == (ycoord + 1))
                                                     {
                                                                     if (map[xcoord + ycoord * 8] != map[txcoord + tycoord * 8] && map[txcoord + tycoord * 8] > 0 && map[txcoord + tycoord * 8] < 9)
                                                                     {
                                                                                     return true;
                                                                     }
                                                     }
                                     }
                     }
                     return false;
     }

}