private void identifySuccessors(GridNode curNode)
    {
        //Use two for loops to cycle through all 8 directions
        for(int dx = -1; dx <= 1; dx++) 
        {
            for(int dy = -1; dy <= 1; dy++)
            {
                if(dx == 0 && dy == 0) //Skip the curNode 
                    continue;
                
                //If the neighbor exists at this direction and is valid contiue
                if(isValidNeighbor(curNode, myGrid.getNode(curNode.getX() + dx, curNode.getY() + dy)))
                {
                    //Try to find a jump node (One that is further down the path and has a forced neighbor)
                    GridNode jumpNode = jump(curNode, dx, dy);
                    if(jumpNode != null)
                    {
                        //If we found one add it to the open list if its not already on it
                        if(!openList.contains(jumpNode) && !closedList.contains(jumpNode))
                        {
                            jumpNode.setParent(curNode); //Set its parent so we can find our way back later
                            calculateNodeScore(jumpNode);   //Calculate its score to pull it from the open list later
                            openList.add(jumpNode);     // Add it to the open list for continuing the path
                        }
                    }
                }
                
            }
        }
    }//end identifySuccessors