Subversion Repositories programming

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
408 ira 1
#!/usr/bin/env python
2
 
3
__author__    = "Ira W. Snyder (devel@irasnyder.com)"
4
__copyright__ = "Copyright (c) 2006, Ira W. Snyder (devel@irasnyder.com)"
5
__license__   = "GNU GPL v2 (or, at your option, any later version)"
6
 
7
import time
8
from PyCompat import *
9
from SudokuPuzzle import SudokuPuzzle, solve
10
from Menu import Menu
11
 
12
def input_puzzle (puzzle):
13
	print 'Enter a row at a time. Use \'e\' for empty squares.'
14
	for i in xrange(9):
15
		e = raw_input('line %d: ' % i)
16
		temp = e.split ()
17
 
18
		count = 0
19
		for j in temp:
20
			try:
21
				puzzle[i,count].set_value (int(j))
22
			except:
23
				pass
24
 
25
			count += 1
26
 
27
def input_and_solve_puzzle ():
28
	puzzle = SudokuPuzzle ()
29
 
30
	# Input the Puzzle
31
	input_puzzle (puzzle)
32
	print
33
 
34
	# Solve the Puzzle
35
	tstart = time.time ()
36
	solution = solve (puzzle)
37
	tend = time.time ()
38
 
39
	# Print the Solution
40
	print '\nThe solution is:'
41
	print str(solution)
42
	print
43
	print 'Took %s seconds to solve' % str(tend - tstart)
44
	print
45
 
46
 
47
 
48
def main ():
49
	m = Menu (autorun=True)
50
	m.add_entry ('1', 'Enter & Solve Sudoku Puzzle', input_and_solve_puzzle)
51
	m.add_entry ('2', 'Quit', sys.exit)
52
 
53
	# Run the menu forever, until it auto-exits
54
	while True:
55
		m.run_menu ()
56
 
57
if __name__ == '__main__':
58
	main ()
59