% draw trees 

% traverse in breath first


draw(CurrentNode-CurrendNodeEITIs,BestCandidate):-
	%write('------------------------Another round: CurrentNode is '),portray_clause(CurrentNode-CurrendNodeEITIs),nl,
	expandNode(CurrentNode,ChildNodes),
	extractEndNode(ChildNodes,EndNodeEITIs0,NonEndChildNodes),sort(EndNodeEITIs0,EndNodeEITIs), 
	
	write([(endNode-EndNodeEITIs)|NonEndChildNodes]),nl,nl,nl,
	maplist(draw,NonEndChildNodes,ReturnedCandidates). % if NonEndChildNodes=[], then--???



expandNode(CurrentNode,ChildNodes):-
	findall(Child-Flux,connect(CurrentNode,Child,Flux),ChildNodes).

extractEndNode([],[],[]).
extractEndNode([ChildNode|ChildNodes],EndNodeCoverge,NonEndNode):-
	extractEndNode(ChildNodes,PreEndNodeCoverge,PreNonEndNode),
	(ChildNode=endNode-EI-TI-EITIs ->
		EndNodeCoverge=[EI-TI|PreEndNodeCoverge], NonEndNode=PreNonEndNode;	
		EndNodeCoverge=PreEndNodeCoverge, NonEndNode=[ChildNode|PreNonEndNode]
	).