//     
public void setNewHeart() {
    //       
    int xPartMaxNum = (width-5)/imageSize;
    //       
    int yPartMaxNum = (height-5)/imageSize;
    //   
    int len = snake.size();    
    //     
    Random rnd = new Random();
    //   
    boolean setFlag = false;
    // ,      
    while ( !setFlag ) {
        //    
        setFlag = true;
        //    ,  imageSize
        xHeart = imageSize*(Math.abs(rnd.nextInt())%xPartMaxNum+1);
        //    ,  imageSize
        yHeart = imageSize*(Math.abs(rnd.nextInt())%yPartMaxNum+1);
        //     
        //    
        for ( int i=0; i<len-1; i++ )
            if ( xHeart == ((SnakePart)(snake.elementAt(i))).getX() &&
                yHeart == ((SnakePart)(snake.elementAt(i))).getY())
                //    
                setFlag = false;
    }
}
