find_material(LA,LB,LQ,TA,TB, [QAAX,QAAY,QAAZ],[QBBX,QBBY,QBBZ], [QABX,QABY,QABZ],[QBAX,QBAY,QBAZ]):- repeat, once(find_theme(LA,TA,300)), writeq(a=TA),nl, (theme_cache(LA,TA)-> cached_loops(TA,[QAAX,QAAY,QAAZ]), writeq(cached(aax)=QAAX),nl, writeq(cached(aay)=QAAY),nl, writeq(cached(aaz)=QAAZ),nl; once(find_connection(LQ,TA,TA,QAAX,flat)), writeq(aax=QAAX),nl, once(find_connection(LQ,TA,TA,QAAY,up)), writeq(aay=QAAY),nl, once(find_connection(LQ,TA,TA,QAAZ,down)), writeq(aaz=QAAZ),nl, assert(theme_cache(LA,TA)), assert(cached_loops(TA,[QAAX,QAAY,QAAZ]))), % once(find_theme(LB,TB,300)),TB\=TA, writeq(b=TB),nl, (theme_cache(LB,TB)-> cached_loops(TB,[QBBX,QBBY,QBBZ]), writeq(cached(bbx)=QBBX),nl, writeq(cached(bby)=QBBY),nl, writeq(cached(bbz)=QBBZ),nl; once(find_connection(LQ,TB,TB,QBBX,flat)), writeq(bbx=QBBX),nl, once(find_connection(LQ,TB,TB,QBBY,up)), writeq(bby=QBBY),nl, once(find_connection(LQ,TB,TB,QBBZ,down)), writeq(bbz=QBBZ),nl, assert(theme_cache(LB,TB)), assert(cached_loops(TB,[QBBX,QBBY,QBBZ]))), % once(find_connection(LQ,TA,TB,QABX,flat)), writeq(abx=QABX),nl, once(find_connection(LQ,TB,TA,QBAX,flat)), writeq(bax=QBAX),nl, once(find_connection(LQ,TA,TB,QABY,up)), writeq(aby=QABY),nl, once(find_connection(LQ,TB,TA,QBAY,up)), writeq(bay=QBAY),nl, once(find_connection(LQ,TA,TB,QABZ,down)), writeq(abz=QABZ),nl, once(find_connection(LQ,TB,TA,QBAZ,down)), writeq(baz=QBAZ),nl.