-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfactjalan.pl
560 lines (451 loc) · 18.8 KB
/
factjalan.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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
/*FACT JALAN JALAN */
:- dynamic(aku_di/1).
:- dynamic(uang/1).
:- dynamic(energi/1).
:- dynamic(ada_orang_di/2).
:- dynamic(tertangkap/1).
:- dynamic(misi/2).
:- retractall(ada_di(_, _)), retractall(aku_di(_)), retractall(alive(_)), retractall(uang(_)), retractall(energi(_)), retractall(ada_orang_di(_,_)), retractall(tertangkap(_)), retractall(misi(_,_)).
jalan(mabes_polri,n,ruang_kapolri).
jalan(mabes_polri,e,jalan_in_aja).
jalan(mabes_polri,s,jalan_kesepian).
jalan(ruang_kapolri,s,mabes_polri).
jalan(ruang_kapolri,w,gudang_senjata).
jalan(ruang_kapolri,n,ruang_kenaikan_pangkat).
jalan(ruang_kapolri,e,kantin_kapolri).
jalan(jalan_in_aja,s,markas_copet_pasar).
jalan(jalan_in_aja,w,mabes_polri).
jalan(ruang_kenaikan_pangkat,s,ruang_kapolri).
jalan(gudang_senjata,e,ruang_kapolri).
jalan(kantin_kapolri,w,ruang_kapolri).
jalan(markas_copet_pasar,w,jalan_kesepian).
jalan(markas_copet_pasar,n,jalan_in_aja).
jalan(markas_copet_pasar,s,pasar).
jalan(jalan_kesepian,w,perempatan_kuy).
jalan(jalan_kesepian,n,mabes_polri).
jalan(jalan_kesepian,s,kantor_pasar).
jalan(jalan_kesepian,e,markas_copet_pasar).
jalan(pasar,n,markas_copet_pasar).
jalan(pasar,e,warteg).
jalan(pasar,w,kantor_pasar).
jalan(pasar,s,kolong_jembatan).
jalan(kolong_jembatan,n,pasar).
jalan(kolong_jembatan,w,markas_teroris).
jalan(warteg,w,pasar).
jalan(kantor_pasar,e,pasar).
jalan(kantor_pasar,n,jalan_kesepian).
jalan(markas_teroris,e,kolong_jembatan).
jalan(perempatan_kuy,e,jalan_kesepian).
jalan(perempatan_kuy,n,bareskrim).
jalan(perempatan_kuy,w,kebun_binatang).
jalan(perempatan_kuy,s,gang_depan).
jalan(bareskrim,s,perempatan_kuy).
jalan(bareskrim,n,pasar_gelap).
jalan(pasar_gelap,s,bareskrim).
jalan(pasar_gelap,w,markas_mafia).
jalan(markas_mafia,e,pasar_gelap).
jalan(gang_depan,n,perempatan_kuy).
jalan(gang_depan,w,markas_preman).
jalan(gang_depan,s,rumah).
jalan(rumah,n,gang_depan).
jalan(rumah,s,kuburan_hitler).
jalan(markas_preman,e,gang_depan).
jalan(kuburan_hitler,n,rumah).
jalan(kebun_binatang,e,perempatan_kuy).
jalan(kebun_binatang,w,kandang_beruang).
jalan(kandang_beruang,e,kebun_binatang).
aku_di(mabes_polri).
uang(100000).
energi(100).
ada_orang_di(bos,ruang_kapolri).
ada_orang_di(copet,markas_copet_pasar).
ada_orang_di(pegawai,kantor_pasar).
ada_orang_di(pedagang,pasar).
ada_orang_di(zookeeper,kebun_binatang).
ada_orang_di(ibu_warteg,warteg).
/*ada_di().*/
misi(tangkap_copet,belom).
misi(lawan_teroris,belom).
misi(lawan_mafia,belom).
misi(bunuh_hitler,belom).
misi(jinakkan_beruang,belom).
misi(lawan_preman,belom).
n :-pergi(n).
s :-pergi(s).
e :-pergi(e).
w :-pergi(w).
u :-pergi(u).
d :-pergi(d).
/* This rule tells how to move in a given direction. */
dimana :-
aku_di(Here),
write(Here),nl,
deskripsi(Here).
pergi(Direction) :-
aku_di(Here),
jalan(Here,Direction,There),
write('Aku di '),
write(There),nl,!,
retract(aku_di(Here)),
asserta(aku_di(There)),
nl.
pergi(_) :-
write('Disana tidak ada jalan.'),nl.
tidur :-
aku_di(rumah),
!,
energi(X),
retract(energi(X)),
Y is 100,
asserta(energi(Y)),
write('Energi kamu sudah penuh kembali.'),nl.
tidur :-
write('Kamu tidak bisa tidur disini.'),nl.
/*ENERGI*/
cekenergi :-
energi(X),
write('Energi kamu '),write(X),write('%.'),nl.
energiminimal(Min) :-
energi(X),
X > Min.
/*KERJA*/
kerja :-
aku_di(jalan_in_aja),
energiminimal(50),!,
uang(X),
Y is X + 50000,
retract(uang(X)),
asserta(uang(Y)),
energi(A),
B is A - 50,
retract(energi(A)),
asserta(energi(B)),
write('Selamat kamu dapat 50.000'),nl,
write('uang kamu sekarang '),
write(Y),nl.
kerja :-
aku_di(jalan_in_aja),!,
write('Energi kamu ga cukup'),nl.
kerja :-
aku_di(perempatan_kuy),
energiminimal(50),!,
uang(X),
Y is X + 50000,
retract(uang(X)),
asserta(uang(Y)),
energi(A),
B is A - 50,
retract(energi(A)),
asserta(energi(B)),
write('Selamat kamu dapat 50.000'),nl,
write('uang kamu sekarang '),
write(Y),nl.
kerja :-
aku_di(perempatan_kuy),!,
write('Energi kamu ga cukup'),nl.
kerja :-
write('Kamu ga bisa kerja di sini.'),nl,
/*write('Ga ada lowongan kerja di sini'),nl,*/
write('Kamu kira ini dimana ?!'),nl.
/*CEK UANG*/
cekdompet :-
uang(X),
write('uang kamu sekarang '),
write(X),nl.
/*NGOMONG*/
bicara :-
aku_di(X),
ada_orang_di(Y,X),!,
talk(Y).
bicara :-
write('tak ada orang disini').
talk(bos) :-
misi(X,complete),misi(X,onprogres),!,
energi(A),
B is A - 65,
retract(energi(A)),
asserta(energi(B)),
write('selamat kamu berhasil menjalankan misi '),write(X),nl,
retract(misi(X,onprogres)).
talk(bos) :-
aku_di(ruang_kapolri),
write('Bos : Ada beberapa misi yang dapat kamu ambil. silahkan pilih.'),nl,!,
tampilkanmisi,!,
read(Misi),
(energiminimal(65) -> ambilmisi(Misi) ; write('Energi mu tidak cukup untuk menjalankan misi.'),nl)
.
talk(pegawai) :-
aku_di(kantor_pasar),
misi(tangkap_copet,onprogres),!,
write('ada pasar dekat sini dan ada banyak pedagang yang lapor beberapa kali kecopetan.'),nl,
write('sampai saat ini copetnya belum tertangkapp.'),nl.
talk(pegawai) :-
aku_di(kantor_pasar),
write('hai saya pegawai disini.'),nl,!.
talk(pedagang) :-
aku_di(pasar),
ada_orang_di(copet,markas_copet_pasar),!,
write('toloong!! saya kecopetan! dia lari ke arah utara'),nl.
talk(pedagang) :-
aku_di(pasar),
write('terima kasih sudah menangkap pencopetnya'),nl.
/*SPCEIAL SKILL*/
tangkap :-
aku_di(markas_copet_pasar),
ada_orang_di(copet,markas_copet_pasar),!,
retract(ada_orang_di(copet,markas_copet_pasar)),
asserta(tertangkap(copet)),
misi(X,onprogres),
asserta(misi(X,complete)),
write('Selamat kamu berhasil menangkap copet'),nl.
tangkap :-
write('tak ada yg bisa kamu tangkap'),nl.
/*MISI*/
tampilkanmisi :-
misi(X,belom),
write('> '),write(X),nl,fail.
tampilkanmisi :-
nl.
ambilmisi(no):-
write('Ok!'),!.
ambilmisi(X) :-
(misi(Y,onprogres) -> write('Kamu sedang dalam misi '),write(Y),nl ;
cekmisi(X)).
cekmisi(X) :-
misi(X,belom),!,
retract(misi(X,belom)),
asserta(misi(X,onprogres)),
write('Kamu telah mengambil misi '),write(X).
cekmisi(_) :-
write('kamu tidak bisa mengambil misi itu').
misiku :-
misi(X,onprogres),
write(X).
/*Deskripsi dari setiap tempat, tergantung dari kondisinya */
deskripsi(ruang_kenaikan_pangkat) :-
ada_di(lencana, in_hand),
write('Hari ini adalah harimu! Seluruh negara menjadi saksi atas kehebatanmu.'), nl,
write('Lencana Kapolri telah tertempel di bahumu. Tetapi, ini adalah awal yang baru.'), nl,
write('Musuh akan terus ada, dan semua itu menjadi tantanganmu.'), nl,
write('Selamat atas gelar barumu, Bapak Kapolri!'), nl,
finish.
deskripsi(mabes_polri) :-
write('Saat ini kamu ada di markas besar polisi. Jangan pernah'), nl,
write('lupakan cita-citamu untuk menjadi seorang Kapolri yang hebat!'), nl,
write('Di utara ada Ruang Kapolri, di sebelah timur ada Jalan in Aja,'), nl,
write('dan di sebelah selatan ada Jalan Kesepian. Ingat, masyarakat'), nl,
write('amat membutuhkan bantuanmu!'), nl.
deskripsi(ruang_kapolri) :-
write('Jaga perilakumu di depan Bapak Kapolri! Bicaralah padanya, banyak'), nl,
write('informasi yang bisa kamu dapatkan darinya, terutama untuk menggapai cita-citamu'), nl,
write('menjadi seorang Kapolri! Di sebelah timur ada Kantin Kapolri, di sebelah selatan'), nl,
write('ada Markas Besar Polri, di sebelah barat ada Gudang Senjata, dan di sebelah utara'), nl,
write('ada Ruang Kenaikan Pangkat, ruangan yang tidak bisa kamu masuki kecuali dengan'), nl,
write('syarat-syarat tertentu!'), nl.
deskripsi(kantin_kapolri) :-
write('Isi energi mu dengan menyantap berbagai makanan dan minuman disini. Di sebelah'), nl,
write('barat ada Ruang Kapolri. Ingat, kamu perlu uang untuk membeli makanan disini.'), nl.
deskripsi(gudang_senjata) :-
write('Melawan penjahat tidak cukup dengan tangan kosong, maka lengkapi senjatamu disini!'), nl,
write('Ada Granat, Rifle, Shotgun, Handgun, Gas Air Mata, dan Bazooka'), nl,
write('Tetapi ingat, senjata ini tidak gratis, jadi bawa uangmu! Di sebelah timur ada'), nl,
write('Ruang Kapolri'), nl.
deskripsi(jalan_in_aja) :-
write('Jalan penuh keterpaksaan, jalanin aja. Tidak terlalu besar, tetapi cukup berbahaya'), nl,
write('terutama malam hari, mengingat saat ini banyak begal berkeliaran. Kamu bisa bekerja'), nl,
write('disini, tidak begitu melelahkan meskipun upahnya tidak besar. Di sebelah barat ada'), nl,
write('Markas Besar Polri. Hmm, seperti ada sesuatu di dekat sini.'), nl.
deskripsi(jalan_kesepian) :-
write('Sepi sekali jalan ini. Oh mungkin karena bukan waktunya, jalan ini dekat dengan pasar'), nl,
write('sehingga ramainya di pagi hari. Kamu bisa bekerja disini, masyarakat butuh seseorang'), nl,
write('untuk mengatur arus transportasi disini. Di sebelah selatan ada Kantor Pasar, di sebelah'), nl,
write('barat ada Perempatan Kuy, dan di sebelah utara ada Markas Besar Polri. Hm, kok rasanya'), nl,
write('mirip di Jalan In Aja ya'), nl.
deskripsi(kantor_pasar) :-
tertangkap(copet), !,
write('Bapak Kepala Pasar sangat bangga padamu yang berhasil menangkap copet yang meresahkan pasar'), nl,
write('Sekali lagi, selamat! Di sebelah utara ada Jalan Kesepian, dan di sebelah timur ada Pasar.'), nl.
deskripsi(kantor_pasar) :-
write('Wah kantornya tidak cukup besar. Disini ada Bapak Kepala Pasar yang bisa kamu ajak bicara'), nl,
write('mengenai keadaan pasar. Banyak isu beredar bahwa pasar saat ini tidak aman, ada banyak copet'), nl,
write('dan jambret disana. Mungkin kamu bisa membantu membasmi itu semua. Di sebelah utara ada'), nl,
write('Jalan Kesepian, dan di sebelah timur ada Pasar.'), nl.
deskripsi(pasar) :-
tertangkap(copet), !,
write('Suasana di pasar sangat ramai. Semua orang berbelanja dengan tenang sekarang. Tidak ada lagi'), nl,
write('yang perlu dikhawatirkan karena sang copet beserta antek-anteknya sudah tertangkap! Ini semua'), nl,
write('karena jasamu, dan lihatlah semua orang di pasar menghormatimu! Di sebelah utara ada Markas Copet,'), nl,
write('di sebelah timur ada Warung Tegal, di sebelah selatan ada Kolong Jembatan, dan di sebelah barat ada'), nl,
write('Kantor Pasar.'), nl.
deskripsi(pasar) :-
ada_orang_di(copet,markas_copet_pasar),
misi(tangkap_copet,onprogres),!,
write('HUAAAAAAAAAAAA! Terdengar suara teriakan seorang perempuan dari sebelah utara pasar! Seketika situasi'), nl,
write('di pasar menjadi tidak terkendali! Kamu melihat seorang pencopet sedang berlari setelah mengambil tas'), nl,
write('dari perempuan yang berteriak tadi ke arah utara! Tunggu apa lagi?! Cepat kejar dia!'), nl.
deskripsi(pasar) :-
write('Pasar ramai seperti biasanya.').
deskripsi(warteg) :-
write('Isi energi mu dengan menyantap berbagai makanan dan minuman disini. Di sebelah barat ada Pasar'), nl.
deskripsi(kolong_jembatan) :-
tertangkap(teroris), !,
write('Sudah tak ada kehidupan disini sejak komplotan teroris tertangkap.'), nl,
write('Di sebelah utara ada Pasar, dan di sebelah barat ada Markas Teroris.'), nl,
write(''), nl.
deskripsi(kolong_jembatan) :-
write('Tempat ini asing sekali. Kamu melihat banyak orang asing dan imigran disini. Aneh sekali.'), nl,
write('Kamu melihat sebuah senter di pojok sini. Di sebelah barat terlihat sebuah komplotan.'), nl,
write('Siapa mereka? Berhati-hatilah dan gunakan sentermu, disana gelap. Di sebelah utara ada Pasar.'), nl.
deskripsi(markas_teroris) :-
tertangkap(teroris), !,
write('Teroris telah tertangkap. Semua rekan-rekan jahatnya sudah diamankan juga. Tempat ini'), nl,
write('menjadi kosong sekarang. Di sebelah timur ada Kolong Jembatan.'), nl.
deskripsi(markas_teroris) :-
ada_di(senter, in_hand), !,
write('Setelah menyalakan sentermu kamu melihat sekelompok orang sedang melakukan'), nl,
write('sebuah ritual. Sialnya, mereka mengetahui keberadaanmu! Tapi, apakah mereka'), nl,
write('orang baik atau jahat? Bicaralah pada seseorang dari mereka yang bernama Yalchi.'), nl,
write('Di sebelah timur ada Kolong Jembatan.'), nl.
deskripsi(markas_teroris) :-
write('Kenapa kamu tidak menyalakan senter?! Kami sudah mengingatkanmu!'), nl,
write('Sekarang orang-orang tiba2 mengelilingimu, tetapi kamu tidak dapat'), nl,
write('melihatnya. Perlahan mereka mendekatimu, semakin dekat, semakin dekat...'), nl,
write('CRASSSSSS!! Darahmu bertebaran! CRASSSSSS! Lagi! CRASSSSSS! '), nl,
mati.
deskripsi(perempatan_kuy) :-
write('Perempatan paling ramai di kota. Pusat dari segala aktivitas.'), nl,
write('Bekerja disini mungkin melelahkan, tapi upah yang didapat pun'), nl,
write('banyak. Di sebelah barat ada Kebun Binatang, di sebelah utara'), nl,
write('ada Badan Resor Kriminal, di sebelah timur ada Jalan Kesepian'), nl,
write(', dan di sebelah selatan ada Gang Depan. Oh ternyata rumahmu'), nl,
write('ada di sebelah selatan dari dekat sini!'), nl.
deskripsi(kebun_binatang) :-
jinak(beruang), !,
write('Suasana di kebun binatan sudah kondusif sekarang, setiap orang'), nl,
write('senang rekreasi disini. Tidak ada lagi beruang yang mengamuk. Ini'), nl,
write('semua karena jasamu!. Di sebelah barat ada Kandang Beruang, dan di'), nl,
write('sebelah timur ada Perempatan Kuy.'), nl.
deskripsi(kebun_binatang) :-
write('Tempat rekreasi masyarakat kota. Tetapi sepertinya orang-orang'), nl,
write('tidak terlihat senang disini, apa yang terjadi? Mungkin kamu'), nl,
write('bisa bertanya pada zookeeper di pos sebelah sana. Di sebelah'), nl,
write('timur ada Perempatan Kuy.'), nl.
deskripsi(kandang_beruang) :-
jinak(beruang), !,
write('Terlihat beruang yang sangat unyu sedang makan. Pengunjung sangat'), nl,
write('senang melihatnya. Di sebelah timur ada Kebun Binatang.'), nl.
deskripsi(kandang_beruang) :-
write('GROAAAAA! Seekor beruang sedang mengamuk dan menakuti pengunjung!'), nl,
write('Ayo lakukan sesuatu sebelum situasi semakin buruk!'), nl.
deskripsi(gang_depan) :-
tertangkap(preman), !,
write('Terlihat anak-anak sedang bermain dengan senangnya. Keresahan mereka'), nl,
write('telah hilang seiring tertangkapnya preman gang. Ini semua karena mu!'), nl,
write('Warga disini amat bangga punya anggota sepertimu. Di sebelah selatan ada'), nl,
write('Rumah, dan di sebelah utara ada Perempatan Kuy.'), nl.
deskripsi(gang_depan) :-
write('Ketika sampai di gang depan, kamu melihat suasana sepi yang aneh.'), nl,
write('Orang-orang bersembunyi dibalik pintu rumahnya masing-masing. Tetapi'), nl,
write('kamu bisa merasakan bahwa mereka mengintip kedatangan mu dari kedalaman.'), nl,
write('Bertanyalah pada warga! Di sebelah selatan ada Rumah, di sebelah Utara'), nl,
write('Perempatan Kuy.'), nl.
deskripsi(markas_preman) :-
tertangkap(preman), !,
write('Setelah preman tertangkap, tempat ini menjadi tempat nongkrong warga.'), nl,
write('Di salah satu sudut terpampang foto mu yang sangat heroik sebagai bentuk'),nl,
write('apresiasi warga terhadap mu. Di sebelah timur ada Gang Depan.'), nl.
deskripsi(markas_preman) :-
write('Ketika kamu sampai, mereka langsung melihatmu dan lari! Jangan diam saja!'), nl,
write('Cepat kejar mereka dan gunakan peralatan mu!'), nl.
deskripsi(rumah) :-
write('Selamat datang di Rumah! Disini ada banyak barang yang bisa kamu gunakan'), nl,
write('mulai dari seragam polisi, baju santai, pisau, clurit, dompet, hingga bunga.'), nl,
write('Disini kamu bisa beristirahat untuk mengisi energi mu yang terkuras setelah'), nl,
write('bekerja dan memberantas kejahatan. Disini pun ada Satpam yang menjaga keamanan'), nl,
write('rumah mu. Sesekali berbicaralah padanya, mungkin ada informasi yang bisa kamu'), nl,
write('dapatkan. Di sebelah utara ada Gang Depan.'), nl.
deskripsi(kuburan_hitler) :-
mati(hitler), !,
write('Wuh, sekarang Hitler sudah tenang di alam Akhirat sana. Tidak ada yang perlu'), nl,
write('ditakutkan lagi. Tempat ini sudah berubah menjadi sebuah taman yang indah. Di'), nl,
write('sebelah utara ada Rumah.'), nl.
deskripsi(kuburan_hitler) :-
write('GHROAAAAA! Tiba-tiba muncul sesosok yang tidak asing dari bawah tanah! Ia'), nl,
write('merangkak keluar! Itu adalah HITLER! Bagaimana mungkin?! Ia sudah mati'), nl,
write('bertahun-tahun lalu! Tidak ada waktu lagi, gunakan seluruh barang yang'), nl,
write('kau punya. Bahkan jika itu sebuah Bazooka, gunakanlah!'), nl.
deskripsi(bareskrim) :-
mati(hitler),
tertangkap(mafia), !,
write('Sudah tidak ada lagi informasi kejahatan di mading. Mungkin kota sudah aman (?)'), nl,
write('Di sebelah utara ada Pasar Gelap, dan di sebelah selatan ada Perempatan Kuy'), nl.
deskripsi(bareskrim) :-
tertangkap(mafia), !,
write('Mafia sudah tertangkap, tetapi kamu melihat ada sebuah info lagi di mading'), nl,
write('"WANTED: HITLER ZOMBIE, Mayat hidup dari tokoh Adolf Hitler". Sepertinya ini'), nl,
write('tidak masuk akal. Apakah zombie benar-benar ada?. Di sebelah utara ada Pasar Gelap,'), nl,
write('dan di sebelah selatan ada Perempatan Kuy.'), nl.
deskripsi(bareskrim) :-
write('Tempat ini adalah tempat pengumpulan data mengenai krimalitas di kota.'), nl,
write('Kamu melihat ke mading yang ada di pojok ruangan "WANTED: Woo Chin-Whoo,'), nl,
write('Buronan Sindikat Mafia penguasa Pasar Gelap.". Sepertinya ini hal yang'), nl,
write('menarik. Pasar Gelap ada di sebelah utara. Di sebelah selatan ada Perempatan Kuy.'), nl.
deskripsi(pasar_gelap) :-
tertangkap(mafia), !,
write('Setelah mafia tertangkap, tempat ini menjadi sebuah pasar baru. Seorang pengusaha'), nl,
write('menjadikannya sebuah mal kecil tempat perbelanjaan masyarakat. Tempat ini membaik,'), nl,
write('setelah kamu berhasil menangkap sindikat mafia. Berbahagialah! Di sebelah barat ada'), nl,
write('Bar markas mafia, di sebelah selatan ada Bareskrim.'), nl.
deskripsi(pasar_gelap) :-
write('Kamu tidak pernah membayangkan apa yang ada disini. Senjata, narkoba, bahkan'), nl,
write('wanita dan anak-anak dijual disini. Semua ini akibat dari perbuatan sindikat mafia.'), nl,
write('Kamu harus segera menangkapnya. Terlihat di sebelah barat ada sebuah bar, banyak'), nl,
write('orang berkumpul disana. Tidak ada salahnya kamu kesana, tapi sebaiknya persiapkan'), nl,
write('dirimu. Di sebelah selatan ada Bareskrim.'), nl.
deskripsi(markas_mafia) :-
tertangkap(mafia), !,
write('Sindikat mafia sudah tertangkap. Tempat ini menjadi sebuah cafe baru di sebelah mal.'), nl,
write('Di sebelah timur ada Mal Kecil (dulunya pasar gelap).'), nl.
deskripsi(markas_mafia) :-
write('Setelah mendekat, mereka langsung mencurigaimu. Mereka menanyai identitas mu,'), nl,
write('sayangnya kamu tidak punya identitas selain identitasmu sebagi polisi, dan mereka'), nl,
write('sudah mengetahuinya! Mereka langsung mengepungmu! Sigaplah! Gunakan senjatamu atau'), nl,
write('kau akan mati di tangan mereka! Tidak ada waktu lagi!'), nl.
deskripsi(_) :-
nl,!.
/*START*/
start :-
read(Cmd),
valid(Cmd).
/*VALIDASI*/
valid(quit) :- !.
valid(X) :-
isvalid(X),
read(Y),
valid(Y).
isvalid(X) :-
X = 'n',!,
n .
isvalid(X) :-
X = 's',!,
s .
isvalid(X) :-
X = 'e',!,
e .
isvalid(X) :-
X = 'w',!,
w .
isvalid(X) :-
X = 'dimana',!,
dimana.
isvalid(X) :-
X = 'bicara',!,
bicara.
isvalid(X) :-
X = 'cekdompet',!,
cekdompet.
isvalid(X) :-
X = 'cekenergi',!,
cekenergi.
isvalid(_) :-
write('Command salah.'),nl.