public ArrayList<ACTION> GetPossibleActions(State state)
	{
		ArrayList<ACTION> ret = new ArrayList<ACTION>();
		for(ACTION action: ACTION.values())
		{
			if(action == ACTION.UP)
			{
				if(state.YCoord + 1 < this.States[0].length )//&& !this.States[state.XCoord][state.YCoord + 1].IsWall)
				{
					ret.add(action);
				}
			}else if(action == ACTION.DOWN)
			{
				if(state.YCoord - 1 >= 0)// && !this.States[state.XCoord][state.YCoord - 1].IsWall)
				{
					ret.add(action);
				}
			}else if(action == ACTION.LEFT)
			{
				if(state.XCoord - 1 >= 0)// && !this.States[state.XCoord - 1][state.YCoord].IsWall)
				{
					ret.add(action);
				}
			}else
			{
				if(state.XCoord + 1 < this.States.length)// && !this.States[state.XCoord + 1][state.YCoord].IsWall)
				{
					ret.add(action);
				}
			}
		}
		return ret;
	}