public void validateAndScore(GameConfig gc_local)
    {
        gc_local.wordbag.clear();
        gc_local.lasPoints.clear();
        
        // For every word in the list, validate and score
        for(int loop=0;loop<gc_local.PlayerWords.size();loop++)
        {
            String playerword = gc_local.PlayerWords.get(loop);
            //log.trace("Word is " + playerword);
            // First see if it contains correct letters from its stack.
            ArrayList<Character> availableLetters = new ArrayList<Character>();
            // Lets fill this from secret and open letters
            for(int loop2=0;loop2<gc_local.openstateList.get(loop).openLetters.size();loop2++)
            {
                Character temp_char = new Character(gc_local.openstateList.get(loop).openLetters.get(loop2).character);
                availableLetters.add(temp_char);
            }
            for(int loop2=0;loop2<gc_local.secretstateList.get(loop).secretLetters.size();loop2++)
            {
                Character temp_char = new Character(gc_local.secretstateList.get(loop).secretLetters.get(loop2).character);
                availableLetters.add(temp_char);
            }
            // Create a string out of them, and add to wordbag
            String wordbagString = " ";
            for(int loopx=0;loopx<availableLetters.size();loopx++)
            {
                wordbagString += availableLetters.get(loopx).toString() + " ";
            }
            gc_local.wordbag.add(wordbagString);

            //Now we start removing all of them
            Boolean wordOK = true;
            for(int loop2=0;loop2<playerword.length();loop2++)
            {
                Character currCh = playerword.charAt(loop2);
                if(availableLetters.contains(currCh))
                {
                    availableLetters.remove(currCh);
                }
                else
                {
                    wordOK = false;
                    log.error("Invalid word by Player: " + gc_local.PlayerList.get(loop));
                    break;
                }
            }
            if(wordOK && LetterGame.getWordScore(playerword) != -1)
            {
                // Award them the points
                int Currscore = LetterGame.getWordScore(playerword);
                if(playerword.length() == 7)
                {
                    Currscore = Currscore + 50;
                }
                //Now add this to his secretstate
                gc_local.secretstateList.get(loop).score += Currscore;
                gc_local.lasPoints.add(Currscore);

            }
            else
            {
                gc_local.lasPoints.add(0);
            }


        }

    }