-
Notifications
You must be signed in to change notification settings - Fork 0
/
vorfertigen.pl
128 lines (109 loc) · 3.52 KB
/
vorfertigen.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
:- module(vorfertigen, [vorgefertigeLoesungenErstellen/0,
fertigeLoesung/5]).
:- dynamic(fertigeLoesung/5).
/* Liste der Rohstoffe, die vorgefertigt werden sollen */
vorfertigen(diWasserStoff).
vorfertigen(sauerStoff).
vorfertigen(kupfer).
vorfertigen(pugneum).
vorfertigen(deuterium).
vorfertigen(aktiviertesCadmium).
vorfertigen(aktiviertesEmeril).
vorfertigen(aktiviertesIndium).
vorfertigen(aktiviertesKupfer).
vorfertigen(cadmium).
vorfertigen(emeril).
vorfertigen(indium).
vorfertigen(gammaWurzel).
vorfertigen(natrium).
vorfertigen(kobalt).
vorfertigen(kuerbisKnolle).
vorfertigen(chlor).
vorfertigen(ferritStaub).
vorfertigen(ammoniak).
vorfertigen(kaktusFleisch).
vorfertigen(kohlenStoff).
vorfertigen(faecium).
vorfertigen(tritium).
/* Basis */
vorfertigen(reinesFerrit).
vorfertigen(magnetisiertesFerrit).
vorfertigen(natriumNitrat).
vorfertigen(paraffinium).
vorfertigen(ionisiertesKobalt).
vorfertigen(dioxit).
vorfertigen(salz).
vorfertigen(phosphor).
vorfertigen(schwefelin).
vorfertigen(radon).
vorfertigen(uran).
vorfertigen(frostKristall).
/* mittlere agglomeration*/
vorfertigen(antiMaterie).
vorfertigen(antiMaterieGehaeuse).
vorfertigen(glas).
vorfertigen(instabilesGel).
vorfertigen(instabilesNatrium).
vorfertigen(kohlenStoffKristall).
vorfertigen(saeure).
vorfertigen(seltenesMetallElement).
vorfertigen(stickStoffSalz).
vorfertigen(superOxidKristall).
vorfertigen(tetraKobalt).
vorfertigen(angereicherterKohlenStoff).
vorfertigen(chlorGitter).
vorfertigen(herox).
vorfertigen(lemmium).
vorfertigen(magnoGold).
vorfertigen(strassenKoeterBronze).
vorfertigen(aronium).
vorfertigen(grantine).
vorfertigen(silber).
vorfertigen(gold).
vorfertigen(pyrit).
vorfertigen(platin).
vorfertigen(chromatischesMetall).
vorfertigen(thermischesKondensat).
vorfertigen(organischerKatalysator).
/* kochen */
vorfertigen(geraeuchertesFleisch).
vorfertigen(geheimnisVollerFleischEintopf).
vorfertigen(immerBrennendeMarmelade).
vorfertigen(schlaengelndeMarmelade).
vorfertigen(kaktusGelee).
vorfertigen(geschlageneButter).
vorfertigen(protoButter).
vorfertigen(verfeinertesMehl).
vorfertigen(klebrigerPudding).
vorfertigen(monstroeserPudding).
vorfertigen(salzigerPudding).
vorfertigen(protoTeig).
vorfertigen(heulenderTeig).
vorfertigen(kuchenTeig).
vorfertigen(dickerSuesserTeig).
vorfertigen(extraFluffigerTeig).
vorfertigen(windenderAufgewuehlterTeig).
vorfertigen(tortenBoden).
vorfertigen(delikatessBaiser).
vorfertigen(klobigerDonut).
vorfertigen(wuerzigerKaese).
vorfertigen(synthetischerHonig).
vorfertigen(knusperKaramell).
vorgefertigeLoesungenErstellen :-
abolish(fertigeLoesung/5),
forall((spielStatus:planeten(_, System, Planet, _), System \= 'System'), \+alleVorfertigen(System, Planet)).
alleVorfertigen(System, Planet) :-
vorfertigen(Stoff),
debug(myTrace, 'System: ~k Planet: ~k Stoff: ~k startet', [System, Planet, Stoff]),
\+generiereFertigeLoesungen(System, Planet, Stoff),
fail.
generiereFertigeLoesungen(System, Planet, Stoff) :-
optimierung:optimierungsZiel(Strategie),
ignore(retractall(fertigeLoesung(System, Planet, Strategie, Stoff, _))),
\+suchAlgorithmus:baueFuerVorfertigung(System, Planet, Strategie, 1, Stoff),
(optimierung:optimierungsStrategie(Strategie, Stoff, _, Vorgaenge, _, _, _, _, _) ->
assertz(fertigeLoesung(System, Planet, Strategie, Stoff, Vorgaenge));
assertz(fertigeLoesung(System, Planet, Strategie, Stoff, []))
),
debug(myTrace, 'System: ~k Planet: ~k Stoff: ~k Strategie: ~k generiert', [System, Planet, Stoff, Strategie]),
fail.