domains Vid,Color,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Rasp,Count=integer MoshMin,MoshMax=integer MassaMin,MassaMax=integer SpeedMin,SpeedMax=integer EkipMin,EkipMax=integer GoodsMin,GoodsMax=integer PassMin,PassMax=integer RaspMin,RaspMax=integer Color1 = symbol database - transpbase transp(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp,Count) predicates rpt menu go(integer) go1(Vid) go2(Vid,Class) go3(Vid,Class,Mosh) go4(Vid,Class,Mosh,Massa) go5(Vid,Class,Mosh,Massa,Speed) go6(Vid,Class,Mosh,Massa,Speed,Ekip) go7(Vid,Class,Mosh,Massa,Speed,Ekip,Goods) go8(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass) go9(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color) go10(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp) gogo(Vid) pk6(integer,integer)%6 строк pk5(integer,integer,integer)%5 строк pk8(integer,integer,integer,Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp)%8 строк. Кнопка, курсор, атрибут, маляжи GC(Color,Color1) Add(integer) Del(integer) saves(integer) clearmaindb Find1(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp) Find2(Vid,Class,MoshMin,MoshMax,Massa,Speed,Ekip,Goods,Pass,Color,Rasp) Find3(Vid,Class,MoshMin,MoshMax,MassaMin,MassaMax,Speed,Ekip,Goods,Pass,Color,Rasp) Find4(Vid,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,Ekip,Goods,Pass,Color,Rasp) Find5(Vid,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,Goods,Pass,Color,Rasp) Find6(Vid,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,Pass,Color,Rasp) Find7(Vid,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,Rasp) Find8(Vid,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,RaspMin,RaspMax) clauses rpt. rpt:-!,rpt. clearmaindb:- retract(transp(_,_,_,_,_,_,_,_,_,_,_)),fail;true. GC(1,"Red"). GC(2,"Orange"). GC(3,"Yellow"). GC(4,"Green"). GC(5,"Azure"). GC(6,"Blue"). GC(7,"Pink"). go(6):- saves(1). go(1):- makewindow(2,30,110,"Vid_transport",1,1,7,20), clearwindow, write("Fly"),nl,write("Auto"),nl,write("Water"),nl,write("Return"),nl,write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk5(Key,Y,0), fail. go(2):- makewindow(2,30,110,"Vid_transport",1,1,7,20), clearwindow, write("Fly"),nl,write("Auto"),nl,write("Water"),nl,write("Return"),nl,write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk5(Key,Y,1), fail. go(3):- makewindow(2,30,110,"New Element",1,1,20,21), clearwindow, write("Fly"),nl,write("Auto"),nl,write("Water"),nl,write("Return"),nl,write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk5(Key,Y,2), fail. go(4):- makewindow(2,30,110,"Del Element",1,1,20,21), clearwindow, write("Fly"),nl,write("Auto"),nl,write("Water"),nl,write("Return"),nl,write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk5(Key,Y,3), fail. go(5):- saves(0), makewindow(2,60,90,"Saves",1,1,3,14), clearwindow, write("Base SAVED!"), cursor(0,0), readchar(_), removewindow, menu. Del(5):- saves(1). Del(4):- removewindow,menu. Del(A):- cursor(5,0), write("Enter Class: "), readint(B),%Класс write("Enter Mosh: "), readint(C),%Мощьность write("Enter Massa: "), readint(D),%Масса write("Enter Speed: "), readint(E),%Скорость write("Enter Ekip: "), readint(F),%Экипаж write("Enter Goods: "), readint(G),%Грузоподьемность write("Enter Pass: "), readint(H),%Пассажиры write("Enter Color(red,Orange,Yellow,Green,Azure,Blue,Pink): "), readint(J),%Цвет write("Enter Rasp: "), readint(K),%Распространённость write("Enter Price: "), readint(L),%Стоймость retract(transp(A,B,C,D,E,F,G,H,J,K,L)), saves(0), removewindow, menu. Add(5):- saves(1). Add(4):- removewindow,menu. Add(A):- cursor(5,0), write("Enter Class: "), readint(B),%Класс write("Enter Mosh: "), readint(C),%Мощьность write("Enter Massa: "), readint(D),%Масса write("Enter Speed: "), readint(E),%Скорость write("Enter Ekip: "), readint(F),%Экипаж write("Enter Goods: "), readint(G),%Грузоподьемность write("Enter Pass: "), readint(H),%Пассажиры write("Enter Color(red,Orange,Yellow,Green,Azure,Blue,Pink): "), readint(J),%Цвет write("Enter Rasp: "), readint(K),%Распространённость write("Enter Price: "), readint(L),%Стоймость assertz(transp(A,B,C,D,E,F,G,H,J,K,L)), saves(0), removewindow, menu. saves(1):- save("trdb.dat",transpbase),clearmaindb,exit. saves(0):- save("trdb.dat",transpbase),clearmaindb,consult("trdb.dat",transpbase). gogo(5):- saves(1). gogo(4):- removewindow, menu. gogo(A):- removewindow, makewindow(12,48,110,"",12,0,38,80), write("#"), write("|Vid T|"), write("Class|"), write("Mosh_Dvig|"), write("Massa|"), write("Speed|"), write("Ekipaj|"), write("Goods|"), write("Passeg|"), write(" Color |"), write("Rasp|"), write("Cost |"), Find1(A,6,6,6,6,6,6,6,8,6). go1(5):- saves(1). go1(4):- removewindow, menu. go1(A):- makewindow(3,30,110,"Class_Nadejnost",1,11,10,20), clearwindow, write("'1'"),nl,write("'2'"),nl,write("'3'"),nl,write("'4'"),nl,write("'5'"),nl,write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,0,A,0,0,0,0,0,0,0,0,0), fail. go2(_,8):- saves(1). go2(A,7):- removewindow, go(1). go2(1,B):- makewindow(4,30,110,"Mosh_Dvigatel",1,21,10,20), clearwindow, write("900...1400"),nl, write("1400...1900"),nl, write("1900...2400"),nl, write("2400...2900"),nl, write("2900...3400"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,1,1,B,0,0,0,0,0,0,0,0), fail. go2(2,B):- makewindow(4,30,110,"Mosh_Dvigatel",1,21,10,20), clearwindow, write("50...240"),nl, write("240...430"),nl, write("430...620"),nl, write("620...810"),nl, write("810...1000"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,1,2,B,0,0,0,0,0,0,0,0), fail. go2(3,B):- makewindow(4,30,110,"Mosh_Dvigatel",1,21,10,20), clearwindow, write("200...500"),nl, write("500...800"),nl, write("800...1100"),nl, write("1100...1400"),nl, write("1400...1700"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,1,3,B,0,0,0,0,0,0,0,0), fail. go3(_,_,8):- saves(1). go3(A,_,7):- removewindow, go1(A). go3(1,B,C):- makewindow(5,30,110,"Massa_Fly",1,31,10,20), clearwindow, write("100...160"),nl, write("160...220"),nl, write("220...280"),nl, write("280...340"),nl, write("340...400"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,2,1,B,C,0,0,0,0,0,0,0), fail. go3(2,B,C):- makewindow(5,30,110,"Massa_Auto",1,31,10,20), clearwindow, write("9...12"),nl, write("12...15"),nl, write("15...18"),nl, write("18...21"),nl, write("21...24"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,2,2,B,C,0,0,0,0,0,0,0), fail. go3(3,B,C):- makewindow(5,30,110,"Massa_Water",1,31,10,20), clearwindow, write("100...700"),nl, write("700...1300"),nl, write("1300...1900"),nl, write("1900...2500"),nl, write("2500...3100"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,2,3,B,C,0,0,0,0,0,0,0), fail. go4(_,_,_,8):- saves(1). go4(A,B,_,7):- removewindow, go2(A,B). go4(1,B,C,D):- makewindow(6,30,110,"Speed_Fly",1,41,10,20), clearwindow, write("300...600"),nl, write("600...900"),nl, write("900...1200"),nl, write("1200...1500"),nl, write("1500...1800"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,3,1,B,C,D,0,0,0,0,0,0), fail. go4(2,B,C,D):- makewindow(6,30,110,"Speed_Auto",1,41,10,20), clearwindow, write("100...180"),nl, write("180...260"),nl, write("260...340"),nl, write("340...420"),nl, write("420...500"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,3,2,B,C,D,0,0,0,0,0,0), fail. go4(3,B,C,D):- makewindow(6,30,110,"Speed_Water",1,41,10,20), clearwindow, write("60...128"),nl, write("128...196"),nl, write("196...264"),nl, write("264...322"),nl, write("322...400"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,3,3,B,C,D,0,0,0,0,0,0), fail. go5(_,_,_,_,8):- saves(1). go5(A,B,C,_,7):- removewindow, go3(A,B,C). go5(1,B,C,D,E):- makewindow(7,30,110,"Ekipaj_Fly",1,51,10,20), clearwindow, write("2...3"),nl, write("3...4"),nl, write("4...6"),nl, write("6...8"),nl, write("8...10"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,4,1,B,C,D,E,0,0,0,0,0), fail. go5(2,B,C,D,E):- makewindow(7,30,110,"Ekipaj_Auto",1,51,10,20), clearwindow, write("1...1"),nl, write("1...2"),nl, write("2...2"),nl, write("2...3"),nl, write("3...4"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,4,2,B,C,D,E,0,0,0,0,0), fail. go5(3,B,C,D,E):- makewindow(7,30,110,"Ekipaj_Water",1,51,10,20), clearwindow, write("6...7"),nl, write("7...8"),nl, write("8...10"),nl, write("10...12"),nl, write("12...14"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,4,3,B,C,D,E,0,0,0,0,0), fail. go6(_,_,_,_,_,8):- saves(1). go6(A,B,C,D,_,7):- removewindow, go4(A,B,C,D). go6(1,B,C,D,E,F):- makewindow(8,30,110,"Zagruz_Fly",11,0,10,20), clearwindow, write("100...360"),nl, write("360...620"),nl, write("620...880"),nl, write("880...1140"),nl, write("1140...1400"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,5,1,B,C,D,E,F,0,0,0,0), fail. go6(2,B,C,D,E,F):- makewindow(8,30,110,"Zagruz_Auto",11,0,10,20), clearwindow, write("10...30"),nl, write("30...50"),nl, write("50...70"),nl, write("70...90"),nl, write("90...110"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,5,2,B,C,D,E,F,0,0,0,0), fail. go6(3,B,C,D,E,F):- makewindow(8,30,110,"Zagruz_Water",11,0,10,20), clearwindow, write("1000...4200"),nl, write("4200...7400"),nl, write("7400...10600"),nl, write("10600...13800"),nl, write("13800...17000"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,5,3,B,C,D,E,F,0,0,0,0), fail. go7(_,_,_,_,_,_,8):- saves(1). go7(A,B,C,D,E,_,7):- removewindow, go5(A,B,C,D,E). go7(1,B,C,D,E,F,G):- makewindow(9,30,110,"Num_Passage_Fly",11,10,10,20), clearwindow, write("500...610"),nl, write("610...720"),nl, write("720...830"),nl, write("830...940"),nl, write("940...1050"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,6,1,B,C,D,E,F,G,0,0,0), fail. go7(2,B,C,D,E,F,G):- makewindow(9,30,110,"Num_Passage_Auto",11,10,10,20), clearwindow, write("3...3"),nl, write("3...4"),nl, write("4...4"),nl, write("4...5"),nl, write("5...6"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,6,2,B,C,D,E,F,G,0,0,0), fail. go7(3,B,C,D,E,F,G):- makewindow(9,30,110,"Num_Passage_Water",11,10,10,20), clearwindow, write("50...340"),nl, write("340...630"),nl, write("630...920"),nl, write("920...1210"),nl, write("1210...1500"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,6,3,B,C,D,E,F,G,0,0,0), fail. go8(_,_,_,_,_,_,_,8):- saves(1). go8(A,B,C,D,E,F,_,7):- removewindow, go6(A,B,C,D,E,F). go8(A,B,C,D,E,F,G,H):- makewindow(10,30,110,"Color",11,20,12,20), clearwindow, write("Red"),nl, write("Orange"),nl, write("Yellow"),nl, write("Green"),nl, write("Azure"),nl, write("Blue"),nl, write("Pink"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,7,A,B,C,D,E,F,G,H,0,0), fail. go9(_,_,_,_,_,_,_,_,10):- saves(1). go9(A,B,C,D,E,F,G,_,9):- removewindow, go7(A,B,C,D,E,F,G). go9(1,B,C,D,E,F,G,H,J):- makewindow(11,30,110,"Rasprostran_Fly",11,30,10,20), clearwindow, write("10...20"),nl, write("20...30"),nl, write("30...40"),nl, write("40...50"),nl, write("50...60"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,8,1,B,C,D,E,F,G,H,J,0), fail. go9(2,B,C,D,E,F,G,H,J):- makewindow(11,30,110,"Rasprostran_Auto",11,30,10,20), clearwindow, write("10...26"),nl, write("26...42"),nl, write("42...58"),nl, write("58...74"),nl, write("74...90"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,8,2,B,C,D,E,F,G,H,J,0), fail. go9(3,B,C,D,E,F,G,H,J):- makewindow(11,30,110,"Rasprostran_Water",11,30,10,20), clearwindow, write("10...18"),nl, write("18...26"),nl, write("26...34"),nl, write("34...42"),nl, write("42...50"),nl, write("Any"),nl, write("Return"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk8(Key,Y,8,3,B,C,D,E,F,G,H,J,0), fail. go10(_,_,_,_,_,_,_,_,_,8):- saves(1). go10(A,B,C,D,E,F,G,H,_,7):- removewindow, go8(A,B,C,D,E,F,G,H). go10(A,B,C,D,E,F,G,H,J,K):- makewindow(12,48,110,"",12,0,38,80), write("#"), write("|Vid T|"), write("Class|"), write("Mosh_Dvig|"), write("Massa|"), write("Speed|"), write("Ekipaj|"), write("Goods|"), write("Passeg|"), write(" Color |"), write("Rasp|"), write("Cost |"), Find1(A,B,C,D,E,F,G,H,J,K). %================================== Find1(1,Class,1,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(1,Class,900,1400,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(1,Class,2,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(1,Class,1400,1900,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(1,Class,3,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(1,Class,1900,2400,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(1,Class,4,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(1,Class,2400,2900,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(1,Class,5,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(1,Class,2900,3400,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(2,Class,1,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(2,Class,50,240,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(2,Class,2,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(2,Class,240,430,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(2,Class,3,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(2,Class,430,620,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(2,Class,4,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(2,Class,620,810,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(2,Class,5,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(2,Class,810,1000,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(3,Class,1,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(3,Class,200,500,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(3,Class,2,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(3,Class,500,800,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(3,Class,3,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(3,Class,800,1100,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(3,Class,4,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(3,Class,1100,1400,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(3,Class,5,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(3,Class,1400,1700,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). Find1(X,Class,Z,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- Find2(X,Class,0,20000,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). %================================== Find2(1,Class,MoshMin,MoshMax,1,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(1,Class,MoshMin,MoshMax,100,160,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(1,Class,MoshMin,MoshMax,2,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(1,Class,MoshMin,MoshMax,160,220,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(1,Class,MoshMin,MoshMax,3,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(1,Class,MoshMin,MoshMax,220,280,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(1,Class,MoshMin,MoshMax,4,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(1,Class,MoshMin,MoshMax,280,340,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(1,Class,MoshMin,MoshMax,5,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(1,Class,MoshMin,MoshMax,340,400,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(2,Class,MoshMin,MoshMax,1,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(2,Class,MoshMin,MoshMax,9,12,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(2,Class,MoshMin,MoshMax,2,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(2,Class,MoshMin,MoshMax,12,15,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(2,Class,MoshMin,MoshMax,3,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(2,Class,MoshMin,MoshMax,15,18,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(2,Class,MoshMin,MoshMax,4,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(2,Class,MoshMin,MoshMax,18,21,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(2,Class,MoshMin,MoshMax,5,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(2,Class,MoshMin,MoshMax,21,24,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(3,Class,MoshMin,MoshMax,1,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(3,Class,MoshMin,MoshMax,100,700,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(3,Class,MoshMin,MoshMax,2,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(3,Class,MoshMin,MoshMax,700,1300,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(3,Class,MoshMin,MoshMax,3,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(3,Class,MoshMin,MoshMax,1300,1900,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(3,Class,MoshMin,MoshMax,4,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(3,Class,MoshMin,MoshMax,1900,2500,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(3,Class,MoshMin,MoshMax,5,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(3,Class,MoshMin,MoshMax,2500,3100,Speed,Ekip,Goods,Pass,Color,Rasp). Find2(X,Class,MoshMin,MoshMax,Z,Speed,Ekip,Goods,Pass,Color,Rasp):- Find3(X,Class,MoshMin,MoshMax,0,20000,Speed,Ekip,Goods,Pass,Color,Rasp). %================================== Find3(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,1,Ekip,Goods,Pass,Color,Rasp):- Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,300,600,Ekip,Goods,Pass,Color,Rasp). Find3(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,2,Ekip,Goods,Pass,Color,Rasp):- Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,600,900,Ekip,Goods,Pass,Color,Rasp). Find3(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,3,Ekip,Goods,Pass,Color,Rasp):- Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,900,1200,Ekip,Goods,Pass,Color,Rasp). Find3(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,4,Ekip,Goods,Pass,Color,Rasp):- Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,1200,1500,Ekip,Goods,Pass,Color,Rasp). Find3(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,5,Ekip,Goods,Pass,Color,Rasp):- Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,1500,1800,Ekip,Goods,Pass,Color,Rasp). Find3(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,1,Ekip,Goods,Pass,Color,Rasp):- Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,100,180,Ekip,Goods,Pass,Color,Rasp). Find3(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,2,Ekip,Goods,Pass,Color,Rasp):- Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,180,260,Ekip,Goods,Pass,Color,Rasp). Find3(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,3,Ekip,Goods,Pass,Color,Rasp):- Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,260,340,Ekip,Goods,Pass,Color,Rasp). Find3(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,4,Ekip,Goods,Pass,Color,Rasp):- Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,340,420,Ekip,Goods,Pass,Color,Rasp). Find3(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,5,Ekip,Goods,Pass,Color,Rasp):- Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,420,500,Ekip,Goods,Pass,Color,Rasp). Find3(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,1,Ekip,Goods,Pass,Color,Rasp):- Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,60,128,Ekip,Goods,Pass,Color,Rasp). Find3(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,2,Ekip,Goods,Pass,Color,Rasp):- Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,128,196,Ekip,Goods,Pass,Color,Rasp). Find3(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,3,Ekip,Goods,Pass,Color,Rasp):- Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,196,264,Ekip,Goods,Pass,Color,Rasp). Find3(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,4,Ekip,Goods,Pass,Color,Rasp):- Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,264,322,Ekip,Goods,Pass,Color,Rasp). Find3(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,5,Ekip,Goods,Pass,Color,Rasp):- Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,322,400,Ekip,Goods,Pass,Color,Rasp). Find3(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,Z,Ekip,Goods,Pass,Color,Rasp):- Find4(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,0,20000,Ekip,Goods,Pass,Color,Rasp). %================================== Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,1,Goods,Pass,Color,Rasp):- Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,2,3,Goods,Pass,Color,Rasp). Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,2,Goods,Pass,Color,Rasp):- Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,3,4,Goods,Pass,Color,Rasp). Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,3,Goods,Pass,Color,Rasp):- Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,4,6,Goods,Pass,Color,Rasp). Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,4,Goods,Pass,Color,Rasp):- Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,6,8,Goods,Pass,Color,Rasp). Find4(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,5,Goods,Pass,Color,Rasp):- Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,8,10,Goods,Pass,Color,Rasp). Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,1,Goods,Pass,Color,Rasp):- Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,1,1,Goods,Pass,Color,Rasp). Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,2,Goods,Pass,Color,Rasp):- Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,1,2,Goods,Pass,Color,Rasp). Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,3,Goods,Pass,Color,Rasp):- Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,2,2,Goods,Pass,Color,Rasp). Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,4,Goods,Pass,Color,Rasp):- Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,2,3,Goods,Pass,Color,Rasp). Find4(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,5,Goods,Pass,Color,Rasp):- Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,3,4,Goods,Pass,Color,Rasp). Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,1,Goods,Pass,Color,Rasp):- Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,6,7,Goods,Pass,Color,Rasp). Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,2,Goods,Pass,Color,Rasp):- Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,7,8,Goods,Pass,Color,Rasp). Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,3,Goods,Pass,Color,Rasp):- Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,8,10,Goods,Pass,Color,Rasp). Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,4,Goods,Pass,Color,Rasp):- Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,10,12,Goods,Pass,Color,Rasp). Find4(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,5,Goods,Pass,Color,Rasp):- Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,12,14,Goods,Pass,Color,Rasp). Find4(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,Z,Goods,Pass,Color,Rasp):- Find5(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,0,20000,Goods,Pass,Color,Rasp). %================================== Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,1,Pass,Color,Rasp):- Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,100,360,Pass,Color,Rasp). Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,2,Pass,Color,Rasp):- Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,360,620,Pass,Color,Rasp). Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,3,Pass,Color,Rasp):- Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,620,880,Pass,Color,Rasp). Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,4,Pass,Color,Rasp):- Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,880,1140,Pass,Color,Rasp). Find5(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,5,Pass,Color,Rasp):- Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,1140,1400,Pass,Color,Rasp). Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,1,Pass,Color,Rasp):- Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,10,30,Pass,Color,Rasp). Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,2,Pass,Color,Rasp):- Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,30,50,Pass,Color,Rasp). Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,3,Pass,Color,Rasp):- Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,50,70,Pass,Color,Rasp). Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,4,Pass,Color,Rasp):- Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,70,90,Pass,Color,Rasp). Find5(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,5,Pass,Color,Rasp):- Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,90,110,Pass,Color,Rasp). Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,1,Pass,Color,Rasp):- Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,1000,4200,Pass,Color,Rasp). Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,2,Pass,Color,Rasp):- Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,4200,7400,Pass,Color,Rasp). Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,3,Pass,Color,Rasp):- Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,7400,10600,Pass,Color,Rasp). Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,4,Pass,Color,Rasp):- Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,10600,13800,Pass,Color,Rasp). Find5(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,5,Pass,Color,Rasp):- Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,13800,17000,Pass,Color,Rasp). Find5(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,Z,Pass,Color,Rasp):- Find6(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,0,20000,Pass,Color,Rasp). %================================== Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,1,Color,Rasp):- Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,500,610,Color,Rasp). Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,2,Color,Rasp):- Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,610,720,Color,Rasp). Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,3,Color,Rasp):- Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,720,830,Color,Rasp). Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,4,Color,Rasp):- Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,830,940,Color,Rasp). Find6(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,5,Color,Rasp):- Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,940,1050,Color,Rasp). Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,1,Color,Rasp):- Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,3,3,Color,Rasp). Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,2,Color,Rasp):- Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,3,4,Color,Rasp). Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,3,Color,Rasp):- Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,4,4,Color,Rasp). Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,4,Color,Rasp):- Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,4,5,Color,Rasp). Find6(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,5,Color,Rasp):- Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,5,6,Color,Rasp). Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,1,Color,Rasp):- Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,50,340,Color,Rasp). Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,2,Color,Rasp):- Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,340,630,Color,Rasp). Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,3,Color,Rasp):- Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,630,920,Color,Rasp). Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,4,Color,Rasp):- Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,920,1210,Color,Rasp). Find6(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,5,Color,Rasp):- Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,1210,1500,Color,Rasp). Find6(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,Z,Color,Rasp):- Find7(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,0,20000,Color,Rasp). %================================== Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,1):- Find8(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,10,20). Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,2):- Find8(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,20,30). Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,3):- Find8(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,30,40). Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,4):- Find8(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,40,50). Find7(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,5):- Find8(1,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,50,60). Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,1):- Find8(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,10,26). Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,2):- Find8(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,26,42). Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,3):- Find8(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,42,58). Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,4):- Find8(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,58,74). Find7(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,5):- Find8(2,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,74,90). Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,1):- Find8(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,10,18). Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,2):- Find8(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,18,26). Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,3):- Find8(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,26,34). Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,4):- Find8(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,34,42). Find7(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,5):- Find8(3,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,42,50). Find7(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,Z):- Find8(X,Class,MoshMin,MoshMax,MassaMin,MassaMax,SpeedMin,SpeedMax,EkipMin,EkipMax,GoodsMin,GoodsMax,PassMin,PassMax,Color,0,20000). %================================== Find8(1,6,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,8,KMin,KMax):- transp(1,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Fly",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(1,6,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,J,KMin,KMax):- transp(1,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Fly",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(1,B,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,8,KMin,KMax):- transp(1,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Fly",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(1,B,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,J,KMin,KMax):- transp(1,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Fly",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. %================================== Find8(2,6,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,8,KMin,KMax):- transp(2,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Auto",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(2,6,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,J,KMin,KMax):- transp(2,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Auto",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(2,B,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,8,KMin,KMax):- transp(2,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Auto",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(2,B,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,J,KMin,KMax):- transp(2,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Auto",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. %================================== Find8(3,6,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,8,KMin,KMax):- transp(3,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Water",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(3,6,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,J,KMin,KMax):- transp(3,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Water",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(3,B,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,8,KMin,KMax):- transp(3,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Water",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. Find8(3,B,CMin,CMax,DMin,DMax,EMin,EMax,FMin,FMax,GMin,GMax,HMin,HMax,J,KMin,KMax):- transp(3,B,C,D,E,F,G,H,J,K,L), C>=CMin,C<=CMax, D>=DMin,D<=DMax, E>=EMin,E<=EMax, F>=FMin,F<=FMax, G>=GMin,G<=GMax, H>=HMin,H<=HMax, K>=KMin,K<=KMax, GC(J,Z), writef("%1|%5|%5|%9|%5|%5|%6|%5|%6|%9|%4|%6|"," ","Water",B,C,D,E,F,G,H,Z,K,L),fail;true, readchar(_), removewindow, menu. %================================== pk6(0,A):-inkey(Key),pk6(Key,A). pk6(72,A):-field_attr(A,0,18,30), A>0,!, Z=A-1, cursor(Z,0) ; cursor(5,0). pk6(80,A):-field_attr(A,0,18,30), A<5,!, Z=A+1, cursor(Z,0) ; cursor(0,0). pk6(13,A):-Z=A+1,go(Z). pk5(0,A,B):-inkey(Key),pk5(Key,A,B). pk5(72,A,_):-field_attr(A,0,18,30), A>0,!, Z=A-1, cursor(Z,0) ; cursor(4,0). pk5(80,A,_):-field_attr(A,0,18,30), A<4,!, Z=A+1, cursor(Z,0) ; cursor(0,0). pk5(13,A,B):-B=0,Z=A+1,go1(Z); B=1,Z=A+1,gogo(Z); B=2,Z=A+1,Add(Z); B=3,Z=A+1,Del(Z). pk8(0,A,B,Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):-inkey(Key),pk8(Key,A,B,Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp). pk8(72,A,7,_,_,_,_,_,_,_,_,_,_):-field_attr(A,0,18,30), A>0,!, Z=A-1, cursor(Z,0) ; cursor(9,0). pk8(72,A,_,_,_,_,_,_,_,_,_,_,_):-field_attr(A,0,18,30), A>0,!, Z=A-1, cursor(Z,0) ; cursor(7,0). pk8(80,A,7,_,_,_,_,_,_,_,_,_,_):-field_attr(A,0,18,30), A<9,!, Z=A+1, cursor(Z,0) ; cursor(0,0). pk8(80,A,_,_,_,_,_,_,_,_,_,_,_):-field_attr(A,0,18,30), A<7,!, Z=A+1, cursor(Z,0) ; cursor(0,0). pk8(13,A,B,Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Rasp):- B=0,Z=A+1,go2(Vid,Z); B=1,Z=A+1,go3(Vid,Class,Z); B=2,Z=A+1,go4(Vid,Class,Mosh,Z); B=3,Z=A+1,go5(Vid,Class,Mosh,Massa,Z); B=4,Z=A+1,go6(Vid,Class,Mosh,Massa,Speed,Z); B=5,Z=A+1,go7(Vid,Class,Mosh,Massa,Speed,Ekip,Z); B=6,Z=A+1,go8(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Z); B=7,Z=A+1,go9(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Z); B=8,Z=A+1,go10(Vid,Class,Mosh,Massa,Speed,Ekip,Goods,Pass,Color,Z). menu :- makewindow(1,30,110,"Menu",0,0,8,20), clearwindow, write("Find in db"),nl, write("Show db"),nl, write("Add to Base"),nl, write("Del in Base"),nl, write("Save Base"),nl, write("Exit"), cursor(0,0), rpt, cursor(Y,_), field_attr(Y,0,18,112), inkey(Key),pk6(Key,Y), fail. goal consult("trdb.dat",transpbase),menu.