def test_known_clues(self): with CrypticClueSolver() as solver: for clue_text in open('clues/known_clues.txt', 'r').readlines(): print "\n========================================" phrases, lengths, pattern, known_answer = split_clue_text( clue_text) solver.setup(clue_text) answers = solver.run() print answers[0].long_derivation() for a in answers[:5]: print a self.assertEqual(answers[0].answer.lower(), known_answer.lower().strip())
def test_timed_clues(self): with CrypticClueSolver() as solver: solver.quiet = True start = time.time() for clue_text in open('clues/known_clues.txt', 'r').readlines(): print "\n========================================" print clue_text phrases, lengths, pattern, known_answer = split_clue_text( clue_text) solver.setup(clue_text) answers = solver.run() print answers[0].long_derivation() # for a in answers[:5]: # print a self.assertEqual(answers[0].answer.lower(), known_answer.lower().strip()) print "\n========================================" print "Finished timed set in {:.1f} seconds".format(time.time() - start)
None, clue, "Sorry, I can't reliably handle clues longer than 7 phrases yet. Try grouping some words into phrases by putting an underscore instead of a space between them" ) solver.setup(clue) solver.run() answers = solver.collect_answers() print "returning:", answers return render.solver(answers, solver.clue_text, "") else: return render.solver(None, "", "") # class halt: # def POST(self): # print "trying to halt" # solver.stop() # raise web.seeother('/') if __name__ == '__main__': render = web.template.render('pycryptics/crypticweb/templates/') urls = ('/', 'index', '/solve/(.*)', 'solve') solver = CrypticClueSolver() app = web.application(urls, globals()) print "Starting up server. Press Ctrl+c to shut down" # webbrowser.open("http://localhost:8080", new=2) app.run() print "Shutting down...."
import pycryptics.puzpy.puz as puz from pycryptics.solve_clue import CrypticClueSolver import sys import readline def rlinput(prompt, prefill=''): readline.set_startup_hook(lambda: readline.insert_text(prefill)) try: return raw_input(prompt) finally: readline.set_startup_hook() with CrypticClueSolver() as solver: fname = sys.argv[1] p = puz.read(fname) while True: p.print_clue_state() action = raw_input("Action? [q]uit [s]ave or enter a clue ID (e.g. 12a): ") if action == "q": break elif action == "s": p.save(fname) else: clue = p.find_clue(action.strip()) if clue is not None: while True: print "Current clue:", p.encode_clue_for_solver(clue) action = raw_input("Clue action? [s]olve [b]ack [g]uess [e]dit: ") if action == "s":