Subversion Repositories programming

Rev

Rev 397 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 397 Rev 398
Line 52... Line 52...
52
 
52
 
53
def m_render_graph (result):
53
def m_render_graph (result):
54
	if have_yapgvb():
54
	if have_yapgvb():
55
		import yapgvb
55
		import yapgvb
56
 
56
 
-
 
57
	if result.result_graph == None:
-
 
58
		print 'The search failed, therefore I cannot render the graph!'
-
 
59
		return
-
 
60
 
57
	from DrawGraph import DrawGraph
61
	from DrawGraph import DrawGraph
58
 
62
 
59
	if have_yapgvb():
63
	# Always render stupid mode
60
		dg = DrawGraph (result.search_name, result.result_graph)
64
	dg = DrawGraph (result.search_name, result.result_graph)
61
		dg.render_stupid ('generated_by')
65
	dg.render_stupid ('generated_by')
62
		print
66
	print
63
 
67
 
64
	# Try to render the graph, nicely
68
	# Try to render the graph, nicely
65
	if result.result_graph != None:
69
	if have_yapgvb():
66
		fname = raw_input('Enter filename (press ENTER for \'res.svg\'): ')
70
		fname = raw_input('Enter filename (press ENTER for \'res.svg\'): ')
67
		print
71
		print
68
 
72
 
69
		if fname == '':
73
		if fname == '':
70
			fname = 'res.svg'
74
			fname = 'res.svg'
71
 
75
 
72
		# Actually draw the graph
76
		# Actually draw the graph
73
		dg = DrawGraph (result.search_name, result.result_graph)
77
		dg = DrawGraph (result.search_name, result.result_graph)
74
		dg.render_graphviz (fname, yapgvb.engines.dot)
78
		dg.render_graphviz (fname, yapgvb.engines.dot)
75
	else:
-
 
76
		print 'The search failed, therefore I cannot render the graph!'
-
 
77
 
79
 
78
def gen_start_state (goal_node):
80
def gen_start_state (goal_node):
79
	DEPTH=12
81
	DEPTH=12
80
	result = PuzzleSearch.get_nth_child (goal_node, DEPTH)
82
	result = PuzzleSearch.get_nth_child (goal_node, DEPTH)
81
 
83
 
Line 117... Line 119...
117
	goal_node = PuzzlePiece (goal_config)
119
	goal_node = PuzzlePiece (goal_config)
118
 
120
 
119
	m = Menu ()
121
	m = Menu ()
120
	m.add_entry ('1', 'Enter start state', input_start_state)
122
	m.add_entry ('1', 'Enter start state', input_start_state)
121
	m.add_entry ('2', 'Generate Reachable Start State', gen_start_state)
123
	m.add_entry ('2', 'Generate Reachable Start State', gen_start_state)
122
	m.add_entry ('3', 'Quit', sys.exit)
124
	m.add_entry ('q', 'Quit', sys.exit)
123
	(entry, callback) = m.run_menu ()
125
	(entry, callback) = m.run_menu ()
124
 
126
 
125
	# Must be from #1
127
	# Must be from #1
126
	if entry == '1':
128
	if entry == '1':
127
		start_node = PuzzlePiece (callback(), 0, goal_node, 'root')
129
		start_node = PuzzlePiece (callback(), 0, goal_node, 'root')
128
	elif entry == '2':
130
	elif entry == '2':
129
		start_node = callback(goal_node)
131
		start_node = callback(goal_node)
-
 
132
	else:
-
 
133
		callback ()
130
 
134
 
131
	# Get set up for the next menu
135
	# Get set up for the next menu
132
	search_result = None
136
	search_result = None
133
 
137
 
134
	# Set up the final menu
138
	# Set up the final menu