@Override
	public Movement getMove(Board b) {
		List<PosibleWord> movements = b.getPosibleWords();
		Dictionary dic = b.getDic();
		
		SortedSet<WordInfo> words = new TreeSet<WordInfo>();
		
		for (PosibleWord pw : movements) {
			Iterator<String> it = dic.iterator(pw.getPattern());
			while (it.hasNext()) {
				String word = it.next();
				if (pw.matches(word, dic) && compatibleWithHand(b,word,pw)) {
					words.add(new WordInfo(word,pw,b.scoreWord(word, letters, pw.i, pw.j, pw.direction)));
				}
			}
		}
		
		if (words.isEmpty()) {
			throw new RuntimeException("No moves D:");
		}
		
			
		WordInfo finalWord = words.last();
		return new Movement(finalWord.pw.i, finalWord.pw.j, finalWord.pw.direction, finalWord.word);
	}