示例#1
0
 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())
示例#2
0
 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)
示例#3
0
文件: server.py 项目: kod3r/cryptics
                    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...."
示例#4
0
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":