Package pdp.scrabble.ia.impl

Source Code of pdp.scrabble.ia.impl.GaddagMoveGen

package pdp.scrabble.ia.impl;

import pdp.scrabble.game.Board;
import pdp.scrabble.dictionary.Node;
import pdp.scrabble.game.Rack;
import pdp.scrabble.ia.AbstractMoveGenStep;
import pdp.scrabble.ia.MoveModel;
import pdp.scrabble.ia.AIBoardModel;
import pdp.scrabble.dictionary.GADDAGItf;
import pdp.scrabble.dictionary.GADDAGNode;
import pdp.scrabble.game.GameEnvironment;
import pdp.scrabble.game.Letter;
import pdp.scrabble.game.Player;
import pdp.scrabble.ia.MoveAccumulator;
import pdp.scrabble.game.Location;
import pdp.scrabble.game.impl.LocationImpl;

public class GaddagMoveGen extends AbstractMoveGenStep {

  private GADDAGItf gaddag;
 
  public GaddagMoveGen(GameEnvironment env, Player current, MoveAccumulator accu,GADDAGItf g){
    super( env, current,accu);
    gaddag =g;
  }
 
  @Override
  public void generate(Board board, Rack letters) {
    // TODO Auto-generated method stub
    AIBoardModel aiBoard = new AIBoardModel(board);
    for(int x =0; x<Board.HORI_DIM; x++)
      for(int y= 0; y<Board.VERT_DIM;y++)
        if(aiBoard.isAnchorSquare(x,y)){
          int posRelative = 0;
          Location posAbs = new LocationImpl(y,x);
          generate_aux(aiBoard,posRelative,posAbs,"",letters, gaddag.getTop());
        }
  }

  private void generate_aux(AIBoardModel iaBoard,int posRelative, Location posAbs, String word, Rack letters, GADDAGNode node){
    if(!iaBoard.isFree(posAbs.getH(), posAbs.getV())){
      String s= ""+iaBoard.getCharAt(posAbs);
      //franchement je sais pas ce qu'il faut a la place de node.getPatent(),
      //je pense pas que ce soit �a mais bon en attendant...
      GoOn(posRelative,posAbs,s,word,letters,node.getParent(),node);
    }
    else
      for(int i=0;i<letters.getNumberOfLetters();i++)
      {
        char c =letters.getLetter(i).getName();
        String s= ""+ c;
        if(node.contains(s)){
          GADDAGNode newNode = node.getChild(c);
          Letter l=letters.getLetter(i);
          letters.removeLetter(l);
          GoOn(posRelative, posAbs,s, word,letters, newNode, node);
          letters.addLetter(l);
        }
        if(letters.getLetter(i).getJokerChar()=='_')
          for(int k=0; k<node.numberChilds();k++)
          {
            Letter l=letters.getLetter(i);
            letters.removeLetter(l);
            GoOn(posRelative,posAbs,node.getChild(k).getValue(), word ,letters,node.getChild(k),node);
            letters.addLetter(l);
          }
      }
    }
  }
 

 
  private void GoOn(int posRelative,Location podsAbs, String currentLetter, String word, Rack letters, GADDAGNode newNode, GADDAGNode oldNode){
    if(posRelative<=0) // moving left
    {
     
    }
    else // moving right
    {
     
    }
  }
 
 
 
 
}
TOP

Related Classes of pdp.scrabble.ia.impl.GaddagMoveGen

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.