def testTokenOverlap(self):
        tokens = Tokens()
        tokens.addLettersWithValue(1, "abccd")

        assert tokens.countOverlapForValue(1, "acd") == 3
        assert tokens.countOverlapForValue(1, "accd") == 4
        assert tokens.countOverlapForValue(1, "acdd") == 3
        
        pass
 def testDecrement(self):
     tokens = Tokens()
     tokens.addLettersWithValue(2, "ham")
     tokens.addLettersWithValue(3, "spam")
     
     tokens.decrement()
     assert tokens.countOverlapForValue(1, "ham") == 3
     assert tokens.countOverlapForValue(2, "spam") == 4
     
     tokens.decrement()
     assert tokens.countOverlapForValue(0, "ham") == 3
     assert tokens.countOverlapForValue(1, "spam") == 4
     
     tokens.decrement()
     assert tokens.countOverlapForValue(0, "ham") == 3
     assert tokens.countOverlapForValue(0, "spam") == 4
     
     pass
 def testDeltetDecrementTokens(self):   
     tokens = Tokens()
     tokens.addLettersWithValue(1, "ham")
     tokens.addLettersWithValue(3, "spam")
     tokens.addLettersWithValue(5, "shrubbery")
     
     tokens.deleteLowestLetters('shamm')
     tokens.decrement()
     assert tokens.countOverlapForValue(1, "ham") == 0
     assert tokens.countOverlapForValue(0, "ham") == 0
     assert tokens.countOverlapForValue(3, "spam") == 0
     assert tokens.countOverlapForValue(2, "spam") == 2
     assert tokens.countOverlapForValue(5, "shrubbery") == 0
     assert tokens.countOverlapForValue(4, "shrubbery") == 9
     
     tokens.deleteLowestLetters('shamm')
     tokens.decrement()
     assert tokens.countOverlapForValue(3, "spam") == 0
     assert tokens.countOverlapForValue(2, "spam") == 0
     assert tokens.countOverlapForValue(1, "spam") == 1
     assert tokens.countOverlapForValue(5, "shrubbery") == 0
     assert tokens.countOverlapForValue(4, "shrubbery") == 0
     assert tokens.countOverlapForValue(3, "shrubbery") == 7
     
     pass
 def testAddDeleteTokens(self):
     
     tokens = Tokens()
     tokens.addLettersWithValue(1, "ham")
     tokens.addLettersWithValue(2, "spam")
     
     assert tokens.countOverlapForValue(1, "ham") == 3
     assert tokens.countOverlapForValue(2, "ham") == 2
     assert tokens.countOverlapForValue(1, "spam") == 2
     assert tokens.countOverlapForValue(2, "spam") == 4
     assert tokens.countOverlapForValue(2, "egg") == 0
     
     tokens.addLettersWithValue(3, "egg")
     assert tokens.countCharacterForValue(3, 'g') == 2
     assert tokens.countOverlapForValue(3, "egg") == 3
     tokens.deleteLowestLetters('ag')
     assert tokens.countCharacterForValue(1, 'a') == 0
     assert tokens.countCharacterForValue(2, 'a') == 1
     assert tokens.countCharacterForValue(3, 'g') == 1
     
     tokens.deleteLowestLetters('mm')
     assert tokens.countCharacterForValue(1, 'm') == 0
     assert tokens.countCharacterForValue(2, 'm') == 0
     assert tokens.countCharacterForValue(3, 'm') == 0
Exemplo n.º 5
0
     try:
         value = int(cInput)
         if value >= 1 and value <= 10 : 
             pass
         else :
             print 'Invalid number'
             continue
     except ValueError:
         print 'Invalid number'
         continue
     
     cInput = raw_input("Add Letters\t:")
     try:
         letters = str(cInput)
         if letters.isalpha() : 
             board.addLettersWithValue(value, letters.lower())
         else:
             print 'Invalid characters'
             continue
     except ValueError:
         print 'Invalid character'
         continue   
             
 # solve
 print
 print board.getAsTable()
 
 solutions = scorer.sort(solver.solve(board.getCharacters()), board)
 currentWord = solutions[0] if len(solutions) > 0 else ''
 
 board.deleteLowestLetters(currentWord)
Exemplo n.º 6
0
# create board
board = Tokens()

random.seed(666)
charList = generateCharacterOccurance()
currentWord = '12345'
for k in range(1000):
    
    if len(currentWord) < 1:
        currentWord = '1'
    newChars = ''
    while not len(newChars) > 0 or not len(newChars) < 15 or not isPossible(board.getCharacters() + newChars, solver): 
        newChars = ''
        for i in range(len(currentWord)):
            for k in range(random.randrange(3)):
                newChars += charList[random.randrange(len(charList))]
               
    board.addLettersWithValue(5, newChars)
    # solve
    print board.getAsTable()
    
    solutions = scorer.sort(solver.solve(board.getCharacters()), board)
    currentWord = solutions[0] if len(solutions) > 0 else ''
    
    board.deleteLowestLetters(currentWord)
    board.decrement()
    
    print '\n' + currentWord + ' (' + str(len(solutions)) + ')\n' if len(currentWord) > 0 else "!!No Word found!! -> \n"