if (c == Bag.JOKER) {
for (int i=0 ; i<Bag.AVAILABLE_LETTERS.length ; i++) {
char joker = Bag.AVAILABLE_LETTERS[i];
if ((child=dawg.getChild(node, joker))!=-1 &&
allowedLetters[dir.ordinal()].get(square).isAllowed(joker)) {
Letter tmp = removeFromRack(letters, c);
extendRight(dir, board, letters, dir.applyTo(square),
partialWord.append(Character.toLowerCase(joker)),
child, false);
dir.applyReverseTo(square);
partialWord.deleteCharAt(partialWord.length()-1);
letters.addLetter(tmp);
}
}
}
if (c!=Bag.JOKER
&&((child = dawg.getChild(node, c)) != -1)
&& allowedLetters[dir.ordinal()].get(square).isAllowed(c)) {
Letter tmp = letters.removeLetter(l);
extendRight(dir, board, letters, dir.applyTo(square),
partialWord.append(c), child, false);
dir.applyReverseTo(square);
partialWord.deleteCharAt(partialWord.length() - 1);
letters.addLetter(tmp);