Game ini dibikin pakai Quick Basic. Tapi karena ini dibuatnya tahun 1998, jadi grafiknya kurang bagus, gamenya juga cuma jalan 256 color, animasi objectnya juga kacau dan gambarnya juga kurang bagus. Tapi untuk menggambar semua object yang ada, saya menggunakan program yang ditulis dalam Quick Basic juga. Tapi dari sisi algoritma program, kurang baik karena banyak lompatan di dalamnya. Jadi program ini tidak bisa dicompile jadi EXE karena disamping baris programnya yang panjang, manajemen memori yang ngga diatur dan compiler Quick Basic yang saya gunakan adalah versi 4.5.
Untuk mereka yang baru belajar algoritma dan pemrograman, lumayanlah buat referensi. bisa dilihat sourcenya di sini. Dan silakan dimodifikasi, tapi kalo sudah dimodifikasi tolong saya dikasihtahu…
Game ini sangat mudah, bahkan dapat anda selesaikan dengan cepat. Menceritakan petualangan Rosetta yang mengumpulkan barang-barang sihir dan mantra sihir untuk menghadapi musuh terakhirnya. Hanya sayangnya karena tidak ada unsur arcadenya, game jadi keliatan monoton. Saya sempat membuat sekuel dari game ini, hanya saja belum selesai. Berikut adalah source codenya…

‘*************************************************

‘ QUEST of ROSETTA ( Demo Version )
‘ Programmed by Yulius Candra Wahyu Kurniawan
‘ An Experiment Program Logic Adventures Game

‘*************************************************

DECLARE FUNCTION Pilihan% (x.pos%, y.pos%, y.awal%, y.akhir%, y.ofset%)
DECLARE SUB Peace ()
DECLARE SUB Inventory ()
DECLARE SUB Cek17 ()
DECLARE SUB Cek19 ()
DECLARE SUB Cek22 ()
DECLARE SUB Cek28kiri ()
DECLARE SUB Cek28kanan ()
DECLARE SUB Final ()
DECLARE SUB Tyverra ()
DECLARE SUB HouseNol ()
DECLARE SUB HouseOne ()
DECLARE SUB HouseTwo ()
DECLARE SUB Box (x1%, y1%, x2%, y2%, c1%, c2%, c3%)
DECLARE SUB PutFont (col%, row%, delay%, text$)
DECLARE SUB Waitkey (keys%)
DECLARE SUB Winkle ()
DECLARE SUB Camiria ()

COMMON SHARED house AS INTEGER, house1 AS INTEGER, shouse AS INTEGER, shouse1 AS INTEGER, shouse2 AS INTEGER
COMMON SHARED hut AS INTEGER, cave AS INTEGER, gold AS INTEGER
COMMON SHARED protect AS INTEGER, satana AS INTEGER, akylla AS INTEGER
COMMON SHARED ceksound AS INTEGER

CLEAR

CONST item1$ = “Magic Book”
CONST item2$ = “Magic Candle”
CONST item3$ = “Magic Horn”
CONST item4$ = “Magic Potion”
CONST item5$ = “Magic Key”
CONST item6$ = “Magic Bow”
CONST item7$ = “Magic Arrow”
CONST item8$ = “Magic Shield”
CONST item9$ = “Magic Rod”
CONST item10$ = “Magic Ring”
CONST item11$ = “Protect”
CONST item12$ = “Flame”
CONST item13$ = “Thunder”
CONST d = 10000
CONST x1 = 5, y1 = 120, x2 = 315, y2 = 190
CONST x3 = 5, y3 = 10, x4 = 100, y4 = 110
CONST x.awal = 210, y.awal = 50
CONST x.ofset = 2, y.ofset = 2
CONST batas1 = 30, batas2 = 140, batas3 = 260, batas4 = 70

DEFINT A-Z

PRINT “QUEST of ROSETTA ( Demo Version )”
PRINT “Created on December 1998 by Yulius Candra Wahyu Kurniawan”
PRINT “Copyright (C) 1998 MagicTouch Software Inc.”
PRINT “Kind of language : “
PRINT “1. Indonesian”
PRINT “2. English”
INPUT “Input Language do you wish to use ( Default. English ) : “, language
IF language = 1 THEN filetext$ = “indones.dat” ELSE filetext$ = “english.dat”
PRINT “Loading Text “;
OPEN filetext$ FOR INPUT AS #1
DIM SHARED t$(475)
FOR i = 0 TO 475
INPUT #1, t$(i)
IF i MOD 50 = 0 THEN PRINT “.”;
NEXT
CLOSE #1
PRINT

PRINT “Loading Font “;

OPEN “gothic.dat” FOR INPUT AS #1
DIM SHARED sa(33): FOR i = 0 TO 33: INPUT #1, sa(i): NEXT: PRINT “.”;
DIM SHARED sb(29): FOR i = 0 TO 29: INPUT #1, sb(i): NEXT: PRINT “.”;
DIM SHARED sc(29): FOR i = 0 TO 29: INPUT #1, sc(i): NEXT: PRINT “.”;
DIM SHARED sd(33): FOR i = 0 TO 33: INPUT #1, sd(i): NEXT: PRINT “.”;
DIM SHARED se(29): FOR i = 0 TO 29: INPUT #1, se(i): NEXT: PRINT “.”;
DIM SHARED sf(29): FOR i = 0 TO 29: INPUT #1, sf(i): NEXT: PRINT “.”;
DIM SHARED sg(33): FOR i = 0 TO 33: INPUT #1, sg(i): NEXT: PRINT “.”;
DIM SHARED sh(29): FOR i = 0 TO 29: INPUT #1, sh(i): NEXT: PRINT “.”;
DIM SHARED si(20): FOR i = 0 TO 20: INPUT #1, si(i): NEXT: PRINT “.”;
DIM SHARED sj(20): FOR i = 0 TO 20: INPUT #1, sj(i): NEXT: PRINT “.”;
DIM SHARED sk(33): FOR i = 0 TO 33: INPUT #1, sk(i): NEXT: PRINT “.”;
DIM SHARED sl(20): FOR i = 0 TO 20: INPUT #1, sl(i): NEXT: PRINT “.”;
DIM SHARED sm(51): FOR i = 0 TO 51: INPUT #1, sm(i): NEXT: PRINT “.”;
DIM SHARED sn(38): FOR i = 0 TO 38: INPUT #1, sn(i): NEXT: PRINT “.”;
DIM SHARED so(29): FOR i = 0 TO 29: INPUT #1, so(i): NEXT: PRINT “.”;
DIM SHARED sp(33): FOR i = 0 TO 33: INPUT #1, sp(i): NEXT: PRINT “.”;
DIM SHARED sq(33): FOR i = 0 TO 33: INPUT #1, sq(i): NEXT: PRINT “.”;
DIM SHARED sr(33): FOR i = 0 TO 33: INPUT #1, sr(i): NEXT: PRINT “.”;
DIM SHARED ss(29): FOR i = 0 TO 29: INPUT #1, ss(i): NEXT: PRINT “.”;
DIM SHARED st(24): FOR i = 0 TO 24: INPUT #1, st(i): NEXT: PRINT “.”;
DIM SHARED su(38): FOR i = 0 TO 38: INPUT #1, su(i): NEXT: PRINT “.”;
DIM SHARED sv(33): FOR i = 0 TO 33: INPUT #1, sv(i): NEXT: PRINT “.”;
DIM SHARED sw(47): FOR i = 0 TO 47: INPUT #1, sw(i): NEXT: PRINT “.”;
DIM SHARED sx(38): FOR i = 0 TO 38: INPUT #1, sx(i): NEXT: PRINT “.”;
DIM SHARED sy(33): FOR i = 0 TO 33: INPUT #1, sy(i): NEXT: PRINT “.”;
DIM SHARED sz(24): FOR i = 0 TO 24: INPUT #1, sz(i): NEXT: PRINT “.”;
DIM SHARED ba(42): FOR i = 0 TO 42: INPUT #1, ba(i): NEXT: PRINT “.”;
DIM SHARED bb(38): FOR i = 0 TO 38: INPUT #1, bb(i): NEXT: PRINT “.”;
DIM SHARED bc(29): FOR i = 0 TO 29: INPUT #1, bc(i): NEXT: PRINT “.”;
DIM SHARED bd(42): FOR i = 0 TO 42: INPUT #1, bd(i): NEXT: PRINT “.”;
DIM SHARED be(42): FOR i = 0 TO 42: INPUT #1, be(i): NEXT: PRINT “.”;
DIM SHARED BF(38): FOR i = 0 TO 38: INPUT #1, BF(i): NEXT: PRINT “.”;
DIM SHARED bg(38): FOR i = 0 TO 38: INPUT #1, bg(i): NEXT: PRINT “.”;
DIM SHARED bh(42): FOR i = 0 TO 42: INPUT #1, bh(i): NEXT: PRINT “.”;
DIM SHARED bi(29): FOR i = 0 TO 29: INPUT #1, bi(i): NEXT: PRINT “.”;
DIM SHARED bj(29): FOR i = 0 TO 29: INPUT #1, bj(i): NEXT: PRINT “.”;
DIM SHARED bk(42): FOR i = 0 TO 42: INPUT #1, bk(i): NEXT: PRINT “.”;
DIM SHARED bl(33): FOR i = 0 TO 33: INPUT #1, bl(i): NEXT: PRINT “.”;
DIM SHARED bm(51): FOR i = 0 TO 51: INPUT #1, bm(i): NEXT: PRINT “.”;
DIM SHARED bn(42): FOR i = 0 TO 42: INPUT #1, bn(i): NEXT: PRINT “.”;
DIM SHARED bo(38): FOR i = 0 TO 38: INPUT #1, bo(i): NEXT: PRINT “.”;
DIM SHARED bp(38): FOR i = 0 TO 38: INPUT #1, bp(i): NEXT: PRINT “.”;
DIM SHARED bq(42): FOR i = 0 TO 42: INPUT #1, bq(i): NEXT: PRINT “.”;
DIM SHARED br(42): FOR i = 0 TO 42: INPUT #1, br(i): NEXT: PRINT “.”;
DIM SHARED bs(33): FOR i = 0 TO 33: INPUT #1, bs(i): NEXT: PRINT “.”;
DIM SHARED bt(38): FOR i = 0 TO 38: INPUT #1, bt(i): NEXT: PRINT “.”;
DIM SHARED bu(38): FOR i = 0 TO 38: INPUT #1, bu(i): NEXT: PRINT “.”;
DIM SHARED bv(38): FOR i = 0 TO 38: INPUT #1, bv(i): NEXT: PRINT “.”;
DIM SHARED bw(51): FOR i = 0 TO 51: INPUT #1, bw(i): NEXT: PRINT “.”;
DIM SHARED bx(42): FOR i = 0 TO 42: INPUT #1, bx(i): NEXT: PRINT “.”;
DIM SHARED by(38): FOR i = 0 TO 38: INPUT #1, by(i): NEXT: PRINT “.”;
DIM SHARED bz(38): FOR i = 0 TO 38: INPUT #1, bz(i): NEXT: PRINT “.”;
DIM SHARED f0(33): FOR i = 0 TO 33: INPUT #1, f0(i): NEXT: PRINT “.”;
DIM SHARED f1(24): FOR i = 0 TO 24: INPUT #1, f1(i): NEXT: PRINT “.”;
DIM SHARED f2(33): FOR i = 0 TO 33: INPUT #1, f2(i): NEXT: PRINT “.”;
DIM SHARED f3(33): FOR i = 0 TO 33: INPUT #1, f3(i): NEXT: PRINT “.”;
DIM SHARED f4(33): FOR i = 0 TO 33: INPUT #1, f4(i): NEXT: PRINT “.”;
DIM SHARED f5(33): FOR i = 0 TO 33: INPUT #1, f5(i): NEXT: PRINT “.”;
DIM SHARED f6(33): FOR i = 0 TO 33: INPUT #1, f6(i): NEXT: PRINT “.”;
DIM SHARED f7(33): FOR i = 0 TO 33: INPUT #1, f7(i): NEXT: PRINT “.”;
DIM SHARED f8(29): FOR i = 0 TO 29: INPUT #1, f8(i): NEXT: PRINT “.”;
DIM SHARED f9(33): FOR i = 0 TO 33: INPUT #1, f9(i): NEXT: PRINT “.”;
DIM SHARED tanya(33): FOR i = 0 TO 33: INPUT #1, tanya(i): NEXT: PRINT “.”;
DIM SHARED seru(20): FOR i = 0 TO 20: INPUT #1, seru(i): NEXT: PRINT “.”;
DIM SHARED titik(20): FOR i = 0 TO 20: INPUT #1, titik(i): NEXT: PRINT “.”;
DIM SHARED koma(20): FOR i = 0 TO 20: INPUT #1, koma(i): NEXT: PRINT “.”;
DIM SHARED petik1(20): FOR i = 0 TO 20: INPUT #1, petik1(i): NEXT: PRINT “.”;
DIM SHARED petik2(20): FOR i = 0 TO 20: INPUT #1, petik2(i): NEXT: PRINT “.”;
DIM SHARED buka(20): FOR i = 0 TO 20: INPUT #1, buka(i): NEXT: PRINT “.”;
DIM SHARED tutup(20): FOR i = 0 TO 20: INPUT #1, tutup(i): NEXT: PRINT “.”;
DIM SHARED ttkdua(20): FOR i = 0 TO 20: INPUT #1, ttkdua(i): NEXT: PRINT “.”;
DIM SHARED ttkoma(20): FOR i = 0 TO 20: INPUT #1, ttkoma(i): NEXT: PRINT “.”
CLOSE #1

PRINT “Loading Sprite “;
OPEN “sprite.dat” FOR INPUT AS #1
DIM SHARED spru1(222): FOR i = 0 TO 222: INPUT #1, spru1(i): NEXT: PRINT “.”;
DIM SHARED spru2(222): FOR i = 0 TO 222: INPUT #1, spru2(i): NEXT: PRINT “.”;
DIM SHARED sprl1(222): FOR i = 0 TO 222: INPUT #1, sprl1(i): NEXT: PRINT “.”;
DIM SHARED sprl2(222): FOR i = 0 TO 222: INPUT #1, sprl2(i): NEXT: PRINT “.”;
DIM SHARED sprr1(222): FOR i = 0 TO 222: INPUT #1, sprr1(i): NEXT: PRINT “.”;
DIM SHARED sprr2(222): FOR i = 0 TO 222: INPUT #1, sprr2(i): NEXT: PRINT “.”;
DIM SHARED sprd1(222): FOR i = 0 TO 222: INPUT #1, sprd1(i): NEXT: PRINT “.”;
DIM SHARED sprd2(222): FOR i = 0 TO 222: INPUT #1, sprd2(i): NEXT: PRINT “.”
CLOSE #1

PRINT “Loading Object “;
OPEN “object.dat” FOR INPUT AS #1
DIM SHARED pointer(34): FOR i = 0 TO 34: INPUT #1, pointer(i): NEXT: PRINT “.”;
DIM SHARED book(172): FOR i = 0 TO 172: INPUT #1, book(i): NEXT: PRINT “.”;
DIM SHARED candle(189): FOR i = 0 TO 189: INPUT #1, candle(i): NEXT: PRINT “.”;
DIM SHARED horn(117): FOR i = 0 TO 117: INPUT #1, horn(i): NEXT: PRINT “.”;
DIM SHARED potion(145): FOR i = 0 TO 145: INPUT #1, potion(i): NEXT: PRINT “.”;
DIM SHARED keys(78): FOR i = 0 TO 78: INPUT #1, keys(i): NEXT: PRINT “.”;
DIM SHARED bow(114): FOR i = 0 TO 114: INPUT #1, bow(i): NEXT: PRINT “.”;
DIM SHARED arrow(77): FOR i = 0 TO 77: INPUT #1, arrow(i): NEXT: PRINT “.”;
DIM SHARED shield(189): FOR i = 0 TO 189: INPUT #1, shield(i): NEXT: PRINT “.”;
DIM SHARED rod(77): FOR i = 0 TO 77: INPUT #1, rod(i): NEXT: PRINT “.”;
DIM SHARED ring(42): FOR i = 0 TO 42: INPUT #1, ring(i): NEXT: PRINT “.”;
DIM SHARED rock1(222): FOR i = 0 TO 222: INPUT #1, rock1(i): NEXT: PRINT “.”;
DIM SHARED rock2(222): FOR i = 0 TO 222: INPUT #1, rock2(i): NEXT: PRINT “.”;
DIM SHARED tree(222): FOR i = 0 TO 222: INPUT #1, tree(i): NEXT: PRINT “.”;
DIM SHARED town(222): FOR i = 0 TO 222: INPUT #1, town(i): NEXT: PRINT “.”;
DIM SHARED home(222): FOR i = 0 TO 222: INPUT #1, home(i): NEXT: PRINT “.”;
DIM SHARED river(222): FOR i = 0 TO 222: INPUT #1, river(i): NEXT: PRINT “.”
CLOSE #1

PRINT “Loading Character “;
OPEN “face.dat” FOR INPUT AS #1
DIM SHARED man1(340): FOR i = 0 TO 340: INPUT #1, man1(i): NEXT: PRINT “.”;
DIM SHARED man2(340): FOR i = 0 TO 340: INPUT #1, man2(i): NEXT: PRINT “.”;
DIM SHARED oldman1(340): FOR i = 0 TO 340: INPUT #1, oldman1(i): NEXT: PRINT “.”;
DIM SHARED oldman2(340): FOR i = 0 TO 340: INPUT #1, oldman2(i): NEXT: PRINT “.”;
DIM SHARED oldman3(340): FOR i = 0 TO 340: INPUT #1, oldman3(i): NEXT: PRINT “.”;
DIM SHARED girl1(340): FOR i = 0 TO 340: INPUT #1, girl1(i): NEXT: PRINT “.”;
CLOSE #1

CLS
SCREEN 13

ON KEY(1) GOSUB toggle

DIM SHARED item$(13)
FOR i = 1 TO 13
item$(i) = “”
NEXT
house = 0: house1 = 0: shouse = 0: shouse1 = 0: shouse2 = 0
hut = 0: cave = 0: gold = 0
protect = 0: satana = 0: akylla = 0
ceksound = 0

PutFont 80, 80, 1, t$(0)
PutFont 50, 100, 1, t$(1)
a$ = INPUT$(1)

CLS

KEY(1) ON
Box 5, 10, 100, 110, 15, 9, 12
Box 5, 120, 315, 190, 15, 9, 12
GOSUB sc10
Peace

x.pos = x.awal: y.pos = y.awal
x.old = x.pos: y.old = y.pos
y.atas = batas1: x.kiri = batas2: x.kanan = batas3: y.bawah = batas4
md = 0: mu = 0: ml = 0: mr = 0
c = 4
cek = 1
GOSUB sc1
Inventory
FOR z = 1 TO 10
PUT (x.pos, y.pos), sprd1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprd1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprl1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprl1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), spru1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), spru1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprr1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprr1: FOR delay = 1 TO 25000: NEXT
NEXT
PUT (x.pos, y.pos), sprd1

main:
DO WHILE NOT Salah
a$ = INKEY$
IF a$ = CHR$(27) THEN GOTO ending
IF a$ = “” THEN n = 0
IF LEN(a$) = 2 THEN n = ASC(MID$(a$, 2, 1)) ELSE n = 0
IF n = 72 THEN GOSUB atas
IF n = 75 THEN GOSUB kiri
IF n = 77 THEN GOSUB kanan
IF n = 80 THEN GOSUB bawah
LOOP

atas:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 1
SELECT CASE cek
CASE 0
y.bawah = y.atas
CASE 1
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 2, 3, 4, 14
y.bawah = y.atas
CASE 5
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.atas
CASE 6, 8, 15, 17, 18, 19, 22, 23, 24
y.atas = y.atas + 20
y.bawah = y.atas
CASE 7, 9, 28, 29
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.atas + 20: y.bawah = y.atas
CASE 10
y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 11, 20, 25, 33, 34
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.atas + 20: y.bawah = y.atas
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
y.bawah = y.atas
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.atas
CASE 31
y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 37
y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF mu = 0 THEN
IF y.pos <= y.atas THEN
IF cek = 1 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 0: GOSUB sc0
IF cek = 5 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 2: GOSUB sc2
IF cek = 7 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 4: GOSUB sc4
IF cek = 9 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 10: GOSUB sc10
IF cek = 12 THEN cek = 13: GOSUB sc13
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 12: GOSUB sc12
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 6: GOSUB sc6
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 21 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 25 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 15: GOSUB sc15
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 31: GOSUB sc31
IF cek = 29 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 32 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 37: GOSUB sc10
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 33 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
y.pos = y.bawah
ELSE
y.pos = y.pos – y.ofset
END IF
PUT (x.pos, y.pos), spru2
x.old = x.pos: y.old = y.pos
mu = 1
ELSE
IF y.pos <= y.atas THEN
IF cek = 1 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 0: GOSUB sc0
IF cek = 5 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 2: GOSUB sc2
IF cek = 7 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 4: GOSUB sc4
IF cek = 9 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 10: GOSUB sc10
IF cek = 12 THEN cek = 13: GOSUB sc13
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 12: GOSUB sc12
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 6: GOSUB sc6
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 21 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 25 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 15: GOSUB sc15
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 31: GOSUB sc31
IF cek = 29 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 32 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 37: GOSUB sc10
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 33 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
y.pos = y.bawah
ELSE
y.pos = y.pos – y.ofset
END IF
PUT (x.pos, y.pos), spru1
x.old = x.pos: y.old = y.pos
mu = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

kiri:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 2
SELECT CASE cek
CASE 0, 4, 16, 26, 27, 29, 30, 33, 35, 36
x.kiri = x.kiri + 40
x.kanan = x.kiri
CASE 1
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 6, 12
x.kanan = x.kiri
CASE 7, 9, 25, 32
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
CASE 10
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 11, 20, 34
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
x.kanan = x.kiri
CASE 15
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
CASE 17
IF (x.pos >= 240 AND y.pos >= 50) AND (x.pos <= 260 AND y.pos <= 70) THEN Cek17: cek = 19: GOSUB sc8: GOSUB Initsprite: GOTO main
x.kiri = x.kiri + 100
x.kanan = x.kiri
CASE 19
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN
Cek19
IF protect = 0 THEN
cek = 19: GOSUB sc8: GOSUB Initsprite: GOTO main
ELSE
cek = 18: GOSUB sc8: GOSUB Initsprite: GOTO main
END IF
END IF
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
x.kanan = x.kiri
CASE 22
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Cek22: GOSUB Initsprite: GOTO main
CASE 28
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN
Cek28kiri
IF satana = 0 THEN
cek = 28: GOSUB sc28: GOSUB Initsprite: GOTO main
ELSE
cek = 29: GOSUB sc29: GOSUB Initsprite: GOTO main
END IF
END IF
CASE 31
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 37
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF ml = 0 THEN
IF x.pos <= x.kiri THEN
IF cek = 2 THEN cek = 1: GOSUB sc1
IF cek = 3 THEN cek = 2: GOSUB sc2
IF cek = 5 THEN cek = 4: GOSUB sc4
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 6: GOSUB sc6
IF cek = 8 THEN cek = 7: GOSUB sc7
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 11 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 9: GOSUB sc7
IF cek = 14 THEN cek = 13: GOSUB sc13
IF cek = 15 THEN cek = 14: GOSUB sc14
IF cek = 18 THEN cek = 17: GOSUB sc17
IF cek = 19 THEN cek = 18: GOSUB sc8
IF cek = 20 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 19: GOSUB sc8
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 22: GOSUB sc22
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 25 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 29: GOSUB sc29
IF cek = 34 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
x.pos = x.kanan
ELSE
x.pos = x.pos – x.ofset
END IF
PUT (x.pos, y.pos), sprl2
x.old = x.pos: y.old = y.pos
ml = 1
ELSE
IF x.pos <= x.kiri THEN
IF cek = 2 THEN cek = 1: GOSUB sc1
IF cek = 3 THEN cek = 2: GOSUB sc2
IF cek = 5 THEN cek = 4: GOSUB sc4
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 6: GOSUB sc6
IF cek = 8 THEN cek = 7: GOSUB sc7
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 11 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 9: GOSUB sc7
IF cek = 14 THEN cek = 13: GOSUB sc13
IF cek = 15 THEN cek = 14: GOSUB sc14
IF cek = 18 THEN cek = 17: GOSUB sc17
IF cek = 19 THEN cek = 18: GOSUB sc8
IF cek = 20 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 19: GOSUB sc8
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 22: GOSUB sc22
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 25 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 29: GOSUB sc29
IF cek = 34 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
x.pos = x.kanan
ELSE
x.pos = x.pos – x.ofset
END IF
PUT (x.pos, y.pos), sprl1
x.old = x.pos: y.old = y.pos
ml = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

kanan:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 3
SELECT CASE cek
CASE 0, 11, 15, 16, 20, 25, 26, 27, 30, 33, 34, 35, 36
x.kanan = x.kanan – 40
x.kiri = x.kanan
CASE 1
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 3, 5, 12
x.kiri = x.kanan
CASE 6
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kanan
CASE 7, 9, 29, 32
IF y.pos >= 25 AND y.pos <= 48 THEN x.kanan = x.kanan – 40: x.kiri = x.kanan
CASE 10
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan – 40: x.kiri = x.kanan
x.kiri = x.kanan
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
CASE 14
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kanan
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kanan
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
x.kiri = x.kanan
CASE 28
IF y.pos >= 25 AND y.pos <= 48 THEN x.kanan = x.kanan – 40: x.kiri = x.kanan
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan – 40: x.kiri = x.kanan
IF (x.pos >= 240 AND y.pos >= 50) AND (x.pos <= 260 AND y.pos <= 70) THEN
Cek28kanan
IF akylla = 0 THEN
cek = 28: GOSUB sc28: GOSUB Initsprite: GOTO main
ELSE
cek = 34: GOSUB sc34: GOSUB Initsprite: GOTO main
END IF
END IF
CASE 31
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan – 40: x.kiri = x.kanan
x.kiri = x.kanan
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 37
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan – 40: x.kiri = x.kanan
x.kiri = x.kanan
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF mr = 0 THEN
IF x.pos >= x.kanan THEN
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 34: GOSUB sc34
IF cek = 29 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 25: GOSUB sc25
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 22 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 19 THEN cek = 20: GOSUB sc11
IF cek = 18 THEN cek = 19: GOSUB sc8
IF cek = 17 THEN cek = 18: GOSUB sc8
IF cek = 14 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 15: GOSUB sc15
IF cek = 13 THEN cek = 14: GOSUB sc14
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 11: GOSUB sc11
IF cek = 8 THEN cek = 9: GOSUB sc7
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 6 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 7: GOSUB sc7
IF cek = 4 THEN cek = 5: GOSUB sc5
IF cek = 2 THEN cek = 3: GOSUB sc3
IF cek = 1 THEN cek = 2: GOSUB sc2
x.pos = x.kiri
ELSE
x.pos = x.pos + x.ofset
END IF
PUT (x.pos, y.pos), sprr2
x.old = x.pos: y.old = y.pos
mr = 1
ELSE
IF x.pos >= x.kanan THEN
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 34: GOSUB sc34
IF cek = 29 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 25: GOSUB sc25
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 22 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 19 THEN cek = 20: GOSUB sc11
IF cek = 18 THEN cek = 19: GOSUB sc8
IF cek = 17 THEN cek = 18: GOSUB sc8
IF cek = 14 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 15: GOSUB sc15
IF cek = 13 THEN cek = 14: GOSUB sc14
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 11: GOSUB sc11
IF cek = 8 THEN cek = 9: GOSUB sc7
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 6 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 7: GOSUB sc7
IF cek = 4 THEN cek = 5: GOSUB sc5
IF cek = 2 THEN cek = 3: GOSUB sc3
IF cek = 1 THEN cek = 2: GOSUB sc2
x.pos = x.kiri
ELSE
x.pos = x.pos + x.ofset
END IF
PUT (x.pos, y.pos), sprr1
x.old = x.pos: y.old = y.pos
mr = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

bawah:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 4
SELECT CASE cek
CASE 1
y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 3, 5, 14
y.atas = y.bawah
CASE 2, 4, 6, 15
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.bawah
CASE 7, 8, 9, 17, 18, 19, 22, 23, 24, 25, 29, 33
y.bawah = y.bawah – 20
y.atas = y.bawah
CASE 10
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah – 20: y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 11, 20, 28, 34
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah – 20: y.atas = y.bawah
CASE 12
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.bawah
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
y.bawah = y.bawah – 20: y.atas = y.bawah
CASE 31
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah – 20: y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 32
y.bawah = y.bawah – 40
y.atas = y.bawah
CASE 37
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah – 20: y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF md = 0 THEN
IF y.pos >= y.bawah THEN
IF cek = 0 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 1: GOSUB sc1
IF cek = 2 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 5: GOSUB sc5
IF cek = 4 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 7: GOSUB sc7
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 21: GOSUB sc21
IF cek = 6 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 10 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 9: GOSUB sc7
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 33: GOSUB sc33
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 37 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 32: GOSUB sc32
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 29: GOSUB sc29
IF cek = 31 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 15 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 25: GOSUB sc25
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 12 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 13 THEN cek = 12: GOSUB sc12
y.pos = y.atas
ELSE
y.pos = y.pos + y.ofset
END IF
PUT (x.pos, y.pos), sprd2
x.old = x.pos: y.old = y.pos
md = 1
ELSE
IF y.pos >= y.bawah THEN
IF cek = 0 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 1: GOSUB sc1
IF cek = 2 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 5: GOSUB sc5
IF cek = 4 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 7: GOSUB sc7
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 21: GOSUB sc21
IF cek = 6 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 10 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 9: GOSUB sc7
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 33: GOSUB sc33
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 37 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 32: GOSUB sc32
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 29: GOSUB sc29
IF cek = 31 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 15 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 25: GOSUB sc25
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 12 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 13 THEN cek = 12: GOSUB sc12
y.pos = y.atas
ELSE
y.pos = y.pos + y.ofset
END IF
PUT (x.pos, y.pos), sprd1
x.old = x.pos: y.old = y.pos
md = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

sc0:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (160 + 20 * i, 10), rock1
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (100 + 20 * j, 10 + 20 * i), rock2
PUT (220 + 20 * j, 10 + 20 * i), rock2
NEXT
NEXT
RETURN

sc1:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (120, 10 + 20 * i), rock2
NEXT
PUT (160, 50), town
RETURN

sc2:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 90), rock2
NEXT
RETURN

sc3:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), rock2
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (280, 10 + 20 * i), rock2
NEXT
RETURN

sc4:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 90), tree
NEXT
FOR i = 1 TO 3
FOR j = 1 TO 4
PUT (100 + 20 * i, 10 + 20 * j), tree
NEXT
NEXT
RETURN

sc5:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (280, 10 + 20 * i), rock2
NEXT
RETURN

sc6:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 90), tree
NEXT
PUT (120, 50), tree
PUT (120, 70), tree
PUT (280, 70), tree
RETURN

sc7:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
FOR j = 0 TO 1
PUT (100 + 20 * i, 10 + 20 * j), tree
PUT (220 + 20 * i, 10 + 20 * j), tree
NEXT
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
RETURN

sc8:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
RETURN

sc10:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 2
PUT (120, 10 + 20 * i), tree
PUT (280, 10 + 20 * i), tree
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 70), tree
PUT (220 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 90), tree
NEXT
PUT (160, 50), home
RETURN

sc11:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

sc12:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 3
PUT (120, 10 + 20 * i), tree
PUT (280, 10 + 20 * i), tree
NEXT
RETURN

sc13:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 4
PUT (120, 10 + 20 * i), tree
NEXT
PUT (160, 50), town
RETURN

sc14:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 90), tree
NEXT
PUT (280, 30), tree
PUT (280, 70), tree
RETURN

sc15:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
FOR i = 1 TO 6
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
NEXT
RETURN

sc16:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
PUT (100 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

sc17:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 8
PUT (120 + 20 * i, 10), tree
PUT (120 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 4
PUT (120, 10 + 20 * i), tree
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 30), tree
PUT (220 + 20 * i, 70), tree
NEXT
FOR i = 1 TO 5
FOR j = 1 TO 3
PUT (120 + 20 * i, 10 + 20 * j), river
NEXT
NEXT
RETURN

sc21:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (220 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
PUT (120, 30), tree
PUT (120, 50), tree
PUT (160, 50), home
PUT (280, 30), tree
PUT (280, 50), tree
RETURN

sc22:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
PUT (160, 50), rock1
PUT (120, 50), tree
LINE (165, 60)-(175, 69), 0, BF
RETURN

sc23:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
RETURN

sc25:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
FOR i = 0 TO 2
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

sc28:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 10), tree
PUT (220 + 20 * i, 30), tree
PUT (220 + 20 * i, 70), tree
PUT (220 + 20 * i, 90), tree
NEXT
RETURN

sc29:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (100 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 10), tree
PUT (220 + 20 * i, 30), tree
NEXT
FOR i = 1 TO 6
PUT (160 + 20 * i, 70), tree
PUT (160 + 20 * i, 90), tree
NEXT
RETURN

sc31:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 2
PUT (120, 10 + 20 * i), tree
PUT (280, 10 + 20 * i), tree
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 70), tree
PUT (220 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 90), tree
NEXT
PUT (160, 50), town
RETURN

sc32:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (220 + 20 * i, 10), tree
PUT (220 + 20 * i, 30), tree
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 50), tree
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
RETURN

sc33:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 50), tree
PUT (220 + 20 * i, 10), river
PUT (220 + 20 * i, 30), river
PUT (220 + 20 * i, 50), river
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
RETURN

sc34:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), river
NEXT
NEXT
RETURN

sc35:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), river
PUT (100 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

ending:
SCREEN 0
WIDTH 80
CLS
PRINT “QUEST of ROSETTA ( Demo Version )”
PRINT “Created on December 1998 by Yulius Candra Wahyu Kurniawan”
PRINT “Copyright (C) 1998 MagicTouch Software Inc.”
PRINT “Thank you for testing…”
END

Initsprite:
x.pos = x.awal: y.pos = y.awal
x.old = x.pos: y.old = y.pos
y.atas = batas1: x.kiri = batas2: x.kanan = batas3: y.bawah = batas4
md = 0
c = 4
PUT (x.pos, y.pos), sprd1
RETURN

toggle:
IF ceksound = 1 THEN ceksound = 0 ELSE ceksound = 1
RETURN

SUB Box (x1%, y1%, x2%, y2%, c1%, c2%, c3%)

LINE (x1 – 1, y1 – 1)-(x1 + 3, y1 + 3), c1, B
LINE (x1, y1)-(x1 + 2, y1 + 2), c3, BF
LINE (x2 – 1, y1 – 1)-(x2 + 3, y1 + 3), c1, B
LINE (x2, y1)-(x2 + 2, y1 + 2), c3, BF
LINE (x1 + 5, y1)-(x2 – 3, y1), c1
LINE (x1 + 5, y1 + 1)-(x2 – 3, y1 + 1), c2
LINE (x1 + 5, y1 + 2)-(x2 – 3, y1 + 2), c1
FOR i = y1 + 5 TO y2 – 3
LINE (x1, y1 + 5)-(x1, i), c1
LINE (x1 + 1, y1 + 5)-(x1 + 1, i), c2
LINE (x1 + 2, y1 + 5)-(x1 + 2, i), c1
LINE (x2, y1 + 5)-(x2, i), c1
LINE (x2 + 1, y1 + 5)-(x2 + 1, i), c2
LINE (x2 + 2, y1 + 5)-(x2 + 2, i), c1
NEXT
LINE (x1 – 1, y2 – 1)-(x1 + 3, y2 + 3), c1, B
LINE (x1, y2)-(x1 + 2, y2 + 2), c3, BF
LINE (x2 – 1, y2 – 1)-(x2 + 3, y2 + 3), c1, B
LINE (x2, y2)-(x2 + 2, y2 + 2), c3, BF
LINE (x1 + 5, y2)-(x2 – 3, y2), c1
LINE (x1 + 5, y2 + 1)-(x2 – 3, y2 + 1), c2
LINE (x1 + 5, y2 + 2)-(x2 – 3, y2 + 2), c1

END SUB

SUB Camiria
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
PutFont 100, 155, d, t$(8)
Waitkey 13
PutFont 30, 25, 1, t$(9)
PutFont 30, 40, 1, t$(10)
PutFont 30, 55, 1, t$(11)
PutFont 30, 70, 1, t$(12)
PutFont 30, 85, 1, t$(13)

DO WHILE NOT False
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(14)
a = Pilihan(15, 25, 25, 85, 15)

SELECT CASE a

CASE 1
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(15)
PutFont 50, 160, d, t$(16)
PutFont 50, 170, d, t$(17)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 50, 150, 1, t$(18)
PutFont 50, 160, 1, t$(19)
PutFont 150, 150, 1, t$(20)
PutFont 150, 160, 1, t$(21)
a = Pilihan(50, 150, 150, 160, 10)
IF a = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(2) <> “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(22)
END IF
IF gold < 50 THEN
IF item$(2) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(23)
PutFont 50, 160, d, t$(24)
END IF
ELSE
IF item$(2) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(25)
PutFont 50, 160, d, t$(26)
PutFont 50, 170, d, t$(27)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), candle
PutFont 100, 170, 1, t$(28)
gold = gold – 50
item$(2) = item2$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF
END IF
IF a = 2 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(3) <> “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(29)
END IF
IF gold < 150 THEN
IF item$(3) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(30)
PutFont 50, 160, d, t$(31)
END IF
ELSE
IF item$(3) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(32)
PutFont 50, 160, d, t$(33)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), horn
PutFont 100, 170, 1, t$(34)
gold = gold – 150
item$(3) = item3$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF
END IF
Waitkey 13

CASE 2
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF house = 3 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(35)
PutFont 50, 160, d, t$(36)
END IF
IF house = 2 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(37)
PutFont 50, 160, d, t$(38)
PutFont 50, 170, d, t$(39)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(40)
PutFont 50, 150, d, t$(41)
PutFont 50, 160, d, t$(42)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(43)
item$(11) = item11$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
house = 3
END IF
IF house = 1 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(44)
PutFont 50, 160, d, t$(45)
PutFont 50, 170, d, t$(46)
END IF
IF house = 0 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(47)
PutFont 50, 160, d, t$(48)
PutFont 50, 170, d, t$(49)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(50)
PutFont 50, 160, d, t$(51)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(52)
PutFont 50, 160, d, t$(53)
PutFont 50, 170, d, t$(54)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(55)
PutFont 50, 150, d, t$(56)
PutFont 50, 160, d, t$(57)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(58)
PutFont 50, 160, d, t$(59)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(60)
PutFont 50, 160, d, t$(61)
PutFont 50, 170, d, t$(62)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(63)
PutFont 50, 150, d, t$(64)
PutFont 50, 160, d, t$(65)
PutFont 50, 170, d, t$(66)
house = 1
END IF
Waitkey 13

CASE 3
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF hut = 6 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(67)
PutFont 50, 160, d, t$(68)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(69)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 25
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
hut = 4
END IF
IF hut = 5 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(70)
PutFont 50, 160, d, t$(71)
END IF
IF hut = 4 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(72)
PutFont 50, 160, d, t$(73)
PutFont 50, 170, d, t$(74)
hut = 5
END IF
IF hut = 3 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(75)
PutFont 50, 160, d, t$(76)
PutFont 50, 170, d, t$(77)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(78)
PutFont 50, 150, d, t$(79)
PutFont 50, 160, d, t$(80)
PutFont 50, 170, d, t$(81)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(82)
PutFont 50, 150, d, t$(83)
PutFont 50, 160, d, t$(84)
a = Pilihan(50, 150, 150, 160, 10)
IF a = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(85)
PutFont 50, 160, d, t$(86)
hut = 4
END IF
IF a = 2 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(87)
END IF
END IF
IF hut = 2 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(88)
PutFont 50, 160, d, t$(89)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(90)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 50
hut = 3
END IF
IF hut = 1 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(91)
PutFont 50, 160, d, t$(92)
PutFont 50, 170, d, t$(93)
END IF
IF hut = 0 THEN
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(94)
PutFont 50, 160, d, t$(95)
PutFont 50, 170, d, t$(96)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(97)
PutFont 50, 150, d, t$(98)
PutFont 50, 160, d, t$(99)
PutFont 50, 170, d, t$(100)
a = Pilihan(50, 160, 160, 170, 10)
IF a = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(101)
PutFont 50, 160, d, t$(102)
hut = 1
END IF
IF a = 2 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(103)
hut = 0
END IF
END IF
Waitkey 13

CASE 4
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(6)
PutFont 50, 150, d, t$(104)
PutFont 50, 160, d, t$(105)
PutFont 50, 170, d, t$(106)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(107)
PutFont 50, 150, d, t$(108)
PutFont 50, 160, d, t$(109)
PutFont 50, 170, d, t$(110)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(111)
PutFont 50, 150, d, t$(112)
PutFont 50, 160, d, t$(113)
PutFont 50, 170, d, t$(114)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(115)
PutFont 50, 150, d, t$(116)
PutFont 50, 160, d, t$(117)
PutFont 50, 170, d, t$(118)
Waitkey 13

CASE 5
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory
EXIT SUB

END SELECT

LOOP

END SUB

SUB Cek17
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(119)
PutFont 50, 160, d, t$(120)
Waitkey 13
RANDOMIZE TIMER
luck! = INT(RND * 2)
IF luck! = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(121)
PutFont 50, 160, d, t$(122)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(123)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 100
Waitkey 13
ELSE
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(124)
PutFont 50, 160, d, t$(125)
Waitkey 13
END IF
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory

END SUB

SUB Cek19
IF item$(11) = “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(126)
PutFont 50, 160, d, t$(127)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
protect = 0
ELSE
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(128)
PutFont 50, 160, d, t$(129)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, d, t$(130)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(131)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
protect = 1
END IF

END SUB

SUB Cek22
IF item$(5) <> “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(132)
PutFont 50, 160, d, t$(133)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
ELSE
IF item$(2) = “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(134)
PutFont 50, 160, d, t$(135)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
ELSE
IF cave = 0 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(136)
PutFont 50, 160, d, t$(137)
PutFont 50, 170, d, t$(138)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(139)
PutFont 50, 150, d, t$(140)
PutFont 50, 160, d, t$(141)
PutFont 50, 170, d, t$(142)
Waitkey 13
cave = 1
END IF
IF cave = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
PutFont 100, 155, 1, t$(143)
Waitkey 13
PutFont 30, 25, 1, t$(144)
PutFont 30, 40, 1, t$(145)
PutFont 30, 55, 1, t$(146)
PutFont 30, 70, 1, t$(147)
PutFont 30, 85, 1, t$(148)
RANDOMIZE TIMER
luck! = INT(RND * 5)

a = Pilihan(15, 25, 25, 85, 15)

SELECT CASE a

CASE 1
IF luck! = 1 THEN GOSUB FoundIt ELSE GOSUB NoFound
CASE 2
IF luck! = 2 THEN GOSUB FoundIt ELSE GOSUB NoFound
CASE 3
IF luck! = 3 THEN GOSUB FoundIt ELSE GOSUB NoFound
CASE 4
IF luck! = 4 THEN GOSUB FoundIt ELSE GOSUB NoFound
CASE 5
IF luck! = 5 THEN GOSUB FoundIt ELSE GOSUB NoFound

END SELECT

END IF
END IF
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory
END IF
EXIT SUB

FoundIt:
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(149)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), keys
PutFont 100, 170, 1, t$(150)
item$(5) = item5$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
Waitkey 13
RETURN

NoFound:
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(151)
Waitkey 13
RETURN

END SUB

SUB Cek28kanan
IF akylla = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(152)
PutFont 50, 160, d, t$(153)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
END IF
IF akylla = 0 THEN
IF item$(8) <> “” AND item$(9) <> “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(154)
PutFont 50, 160, d, t$(155)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(156)
PutFont 50, 160, d, t$(157)
PutFont 50, 170, d, t$(158)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 150), ring
PutFont 100, 170, 1, t$(159)
item$(10) = item10$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
akylla = 1
ELSE
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(160)
PutFont 50, 160, d, t$(161)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
akylla = 0
END IF
END IF

END SUB

SUB Cek28kiri
IF satana = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(162)
PutFont 50, 160, d, t$(163)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
END IF
IF satana = 0 THEN
IF item$(6) <> “” AND item$(7) <> “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(164)
PutFont 50, 160, d, t$(165)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(166)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
satana = 1
ELSE
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(167)
PutFont 50, 160, d, t$(168)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
Inventory
satana = 0
END IF
END IF
END SUB

SUB Final
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (160 + 20 * i, 10), river
PUT (160 + 20 * i, 90), river
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), river
PUT (100 + 20 * j, 10 + 20 * i), river
NEXT
NEXT
PUT (180, 30), tree: PUT (180, 70), tree
PUT (220, 30), tree: PUT (220, 70), tree
Inventory
x.pos = 200: y.pos = 50
FOR z = 1 TO 10
PUT (x.pos, y.pos), sprd1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprd1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprl1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprl1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), spru1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), spru1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprr1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprr1: FOR delay = 1 TO 25000: NEXT
NEXT
PUT (x.pos, y.pos), sprd1
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(169)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(170)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(171)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(172)
PutFont 50, 160, d, t$(173)
PutFont 50, 170, d, t$(174)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(175)
PutFont 50, 150, d, t$(176)
PutFont 50, 160, d, t$(177)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(178)
PutFont 50, 160, d, t$(179)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(180)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(181)
PutFont 50, 160, d, t$(182)
PutFont 50, 170, d, t$(183)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(7)
PutFont 50, 150, d, t$(184)
PutFont 50, 160, d, t$(185)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(186)
PutFont 50, 160, d, t$(187)
PutFont 50, 170, d, t$(188)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(7)
PutFont 50, 150, d, t$(189)
PutFont 50, 160, d, t$(190)
PutFont 50, 170, d, t$(191)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(192)
PutFont 50, 150, d, t$(193)
PutFont 50, 160, d, t$(194)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(195)
PutFont 50, 160, d, t$(196)
PutFont 50, 170, d, t$(197)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(7)
PutFont 50, 150, d, t$(198)
PutFont 50, 160, d, t$(199)
PutFont 50, 170, d, t$(200)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(201)
PutFont 50, 160, d, t$(202)
PutFont 50, 170, d, t$(203)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(7)
PutFont 50, 150, d, t$(204)
PutFont 50, 160, d, t$(205)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(206)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(7)
PutFont 50, 150, d, t$(207)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, d, t$(208)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(7)
PutFont 50, 150, d, t$(209)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(210)
PutFont 50, 160, d, t$(211)
PutFont 50, 170, d, t$(212)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(213)
PutFont 50, 160, d, t$(214)
PutFont 50, 170, d, t$(215)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, d, t$(216)
Waitkey 13
SCREEN 0
WIDTH 80
CLS
PRINT “QUEST of ROSETTA ( Demo Version )”
PRINT “Created on December 1998 by Yulius Candra Wahyu Kurniawan”
PRINT “Copyright (C) 1998 MagicTouch Software Inc.”
PRINT “Thank you for testing…”
END

END SUB

SUB HouseNol
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF shouse = 3 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(217)
Waitkey 13
END IF
IF shouse = 2 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(218)
PutFont 50, 160, d, t$(219)
PutFont 50, 170, d, t$(220)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(221)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 500
shouse = 3
Waitkey 13
END IF
IF shouse = 1 THEN
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(222)
PutFont 50, 160, d, t$(223)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(224)
PutFont 50, 160, d, t$(225)
PutFont 50, 170, d, t$(226)
Waitkey 13
END IF
IF shouse = 0 THEN
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(227)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(228)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF hut = 0 THEN
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(229)
PutFont 50, 160, d, t$(230)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(231)
PutFont 50, 160, d, t$(232)
PutFont 50, 170, d, t$(233)
Waitkey 13
END IF
IF hut = 1 THEN
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(234)
PutFont 50, 160, d, t$(235)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(236)
PutFont 50, 160, d, t$(237)
PutFont 50, 170, d, t$(238)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(239)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 25
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(240)
PutFont 50, 160, d, t$(241)
PutFont 50, 170, d, t$(242)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(243)
Waitkey 13
shouse = 1
hut = 2
END IF
END IF
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory

END SUB

SUB HouseOne
IF shouse1 = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(244)
Waitkey 13
END IF
IF shouse1 = 0 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(245)
PutFont 50, 160, d, t$(246)
Waitkey 13
IF item$(5) <> “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(247)
PutFont 50, 160, d, t$(248)
PutFont 50, 170, d, t$(249)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(250)
PutFont 50, 160, d, t$(251)
PutFont 50, 170, d, t$(252)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(253)
PutFont 50, 150, d, t$(254)
PutFont 50, 160, d, t$(255)
PutFont 50, 170, d, t$(256)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(257)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(258)
PutFont 50, 160, d, t$(259)
PutFont 50, 170, d, t$(260)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), bow
PutFont 100, 170, 1, t$(261)
item$(6) = item6$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(262)
PutFont 50, 160, d, t$(263)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(264)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(265)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 75
Waitkey 13
shouse1 = 1
END IF
END IF
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory

END SUB

SUB HouseTwo
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF shouse2 = 1 THEN
IF item$(12) = “” THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(266)
PutFont 50, 160, d, t$(267)
Waitkey 13
ELSE
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(268)
PutFont 50, 160, d, t$(269)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(270)
item$(13) = item13$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(271)
PutFont 50, 160, d, t$(272)
Waitkey 13
Final
END IF
END IF
IF shouse2 = 0 THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(273)
PutFont 50, 160, d, t$(274)
PutFont 50, 170, d, t$(275)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(276)
PutFont 50, 150, d, t$(277)
PutFont 50, 160, d, t$(278)
PutFont 50, 170, d, t$(279)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(280)
PutFont 50, 150, d, t$(281)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(3) = “” THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(282)
PutFont 50, 160, d, t$(283)
PutFont 50, 170, d, t$(284)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory
EXIT SUB
ELSE
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(285)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(286)
END IF
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(4) = “” THEN
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(287)
PutFont 50, 160, d, t$(288)
Waitkey 13
ELSE
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(289)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(290)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(291)
PutFont 50, 160, d, t$(292)
PutFont 50, 170, d, t$(293)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(294)
PutFont 50, 150, d, t$(295)
PutFont 50, 160, d, t$(296)
shouse = 2
shouse2 = 1
Waitkey 13
END IF
END IF

LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory

END SUB

SUB Inventory
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
PutFont 100, 140, 1, t$(469)
PutFont 40, 155, 1, t$(470)
PutFont 95, 170, 1, t$(471) + STR$(gold) + t$(472)
IF item$(1) <> “” THEN PUT (18, 53), book
IF item$(2) <> “” THEN PUT (38, 50), candle
IF item$(3) <> “” THEN PUT (55, 60), horn
IF item$(4) <> “” THEN PUT (78, 52), potion
IF item$(5) <> “” THEN PUT (83, 80), keys
IF item$(6) <> “” THEN PUT (28, 75), bow
IF item$(7) <> “” THEN PUT (18, 75), arrow
IF item$(8) <> “” THEN PUT (44, 75), shield
IF item$(9) <> “” THEN PUT (64, 75), rod
IF item$(10) <> “” THEN PUT (74, 85), ring
IF item$(11) <> “” THEN PutFont 20, 20, 1, t$(473)
IF item$(12) <> “” THEN PutFont 20, 30, 1, t$(474)
IF item$(13) <> “” THEN PutFont 20, 40, 1, t$(475)

END SUB

SUB Peace
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 50, 155, d, t$(297)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(298)
PutFont 50, 160, d, t$(299)
PutFont 50, 170, d, t$(300)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(301)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(302)
PutFont 50, 160, d, t$(303)
PutFont 50, 170, d, t$(304)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(305)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(306)
PutFont 50, 160, d, t$(307)
PutFont 50, 170, d, t$(308)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(309)
PutFont 50, 150, d, t$(310)
PutFont 50, 160, d, t$(311)
PutFont 50, 170, d, t$(312)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(313)
PutFont 50, 160, d, t$(314)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(315)
PutFont 50, 160, d, t$(316)
PutFont 50, 170, d, t$(317)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(318)
PutFont 50, 150, d, t$(319)
PutFont 50, 160, d, t$(320)
PutFont 50, 170, d, t$(321)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), book
PutFont 100, 170, 1, t$(322)
item$(1) = item1$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(323)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(324)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 25
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(325)
PutFont 50, 160, d, t$(326)
PutFont 50, 170, d, t$(327)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman1
PutFont 50, 140, d, t$(328)
PutFont 50, 150, d, t$(329)
PutFont 50, 160, d, t$(330)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF

END SUB

FUNCTION Pilihan (x.pos%, y.pos%, y.awal%, y.akhir%, y.ofset%)
s = 1
x.old = x.pos: y.old = y.pos
PUT (x.pos, y.pos), pointer
DO WHILE a$ <> CHR$(13)
a$ = INKEY$
IF LEN(a$) > 1 THEN a$ = RIGHT$(a$, 1)
IF a$ = “H” THEN
SOUND 5000, 2 * ceksound
SOUND 5500, 1 * ceksound
PUT (x.old, y.old), pointer
IF y.pos <= y.awal THEN
y.pos = y.awal
ELSE
y.pos = y.pos – y.ofset
s = s – 1
END IF
PUT (x.pos, y.pos), pointer
x.old = x.pos: y.old = y.pos
END IF
IF a$ = “P” THEN
SOUND 5000, 2 * ceksound
SOUND 5500, 1 * ceksound
PUT (x.old, y.old), pointer
IF y.pos >= y.akhir THEN
y.pos = y.akhir
ELSE
y.pos = y.pos + y.ofset
s = s + 1
END IF
PUT (x.pos, y.pos), pointer
x.old = x.pos: y.old = y.pos
END IF
LOOP
PUT (x.old, y.old), pointer
Pilihan = s

END FUNCTION

SUB PutFont (col%, row%, delay%, text$)
spasi = 1
GOSUB cetak
EXIT SUB

cetak:
FOR xx = 1 TO LEN(text$)
num = ASC(MID$(text$, xx, 1))
IF delay% > 1 THEN SOUND 9000, .1 * ceksound
IF num > 47 AND num < 58 THEN
ON num – 47 GOSUB 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
END IF
IF num > 96 AND num < 123 THEN
ON num – 96 GOSUB sa, sb, sc, sd, se, sf, sg, sh, si, sj, sk, sl, sm, sn, so, sp, sq, sr, ss, st, su, sv, sw, sx, sy, sz
END IF
IF num > 64 AND num < 91 THEN
ON num – 64 GOSUB ba, bb, bc, bd, be, BF, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz
END IF
IF num = 33 THEN GOSUB seru
IF num = 34 THEN GOSUB petik2
IF num = 39 THEN GOSUB petik1
IF num = 40 THEN GOSUB buka
IF num = 41 THEN GOSUB tutup
IF num = 44 THEN GOSUB koma
IF num = 46 THEN GOSUB titik
IF num = 58 THEN GOSUB ttkdua
IF num = 59 THEN GOSUB ttkoma
IF num = 63 THEN GOSUB tanya

‘dimension 3 x 8 s/d 10 x 8
SELECT CASE num
CASE 33, 34, 39, 40, 41, 44, 46, 58, 59, 105, 106, 108
col = col + 3 + spasi
CASE 49, 116, 122
col = col + 4 + spasi
CASE 56, 67, 73, 74, 98, 99, 101, 102, 104, 111, 115
col = col + 5 + spasi
CASE 48, 50, 51, 52, 53, 54, 55, 57, 63, 76, 83, 97, 100, 103, 107, 112, 113, 114, 118, 121
col = col + 6 + spasi
CASE 66, 70, 79, 80, 71, 110, 117, 120, 84, 85, 86, 89, 90
col = col + 7 + spasi
CASE 65, 68, 69, 72, 75, 78, 81, 82, 88
col = col + 8 + spasi
CASE 119
col = col + 9 + spasi
CASE 77, 87, 109
col = col + 10 + spasi
CASE ELSE
col = col + 3
END SELECT
FOR z = 1 TO delay%: NEXT
NEXT
RETURN

sa: PUT (col, row), sa: RETURN
sb: PUT (col, row), sb: RETURN
sc: PUT (col, row), sc: RETURN
sd: PUT (col, row), sd: RETURN
se: PUT (col, row), se: RETURN
sf: PUT (col, row), sf: RETURN
sg: PUT (col, row), sg: RETURN
sh: PUT (col, row), sh: RETURN
si: PUT (col, row), si: RETURN
sj: PUT (col, row), sj: RETURN
sk: PUT (col, row), sk: RETURN
sl: PUT (col, row), sl: RETURN
sm: PUT (col, row), sm: RETURN
sn: PUT (col, row), sn: RETURN
so: PUT (col, row), so: RETURN
sp: PUT (col, row), sp: RETURN
sq: PUT (col, row), sq: RETURN
sr: PUT (col, row), sr: RETURN
ss: PUT (col, row), ss: RETURN
st: PUT (col, row), st: RETURN
su: PUT (col, row), su: RETURN
sv: PUT (col, row), sv: RETURN
sw: PUT (col, row), sw: RETURN
sx: PUT (col, row), sx: RETURN
sy: PUT (col, row), sy: RETURN
sz: PUT (col, row), sz: RETURN
ba: PUT (col, row), ba: RETURN
bb: PUT (col, row), bb: RETURN
bc: PUT (col, row), bc: RETURN
bd: PUT (col, row), bd: RETURN
be: PUT (col, row), be: RETURN
BF: PUT (col, row), BF: RETURN
bg: PUT (col, row), bg: RETURN
bh: PUT (col, row), bh: RETURN
bi: PUT (col, row), bi: RETURN
bj: PUT (col, row), bj: RETURN
bk: PUT (col, row), bk: RETURN
bl: PUT (col, row), bl: RETURN
bm: PUT (col, row), bm: RETURN
bn: PUT (col, row), bn: RETURN
bo: PUT (col, row), bo: RETURN
bp: PUT (col, row), bp: RETURN
bq: PUT (col, row), bq: RETURN
br: PUT (col, row), br: RETURN
bs: PUT (col, row), bs: RETURN
bt: PUT (col, row), bt: RETURN
bu: PUT (col, row), bu: RETURN
bv: PUT (col, row), bv: RETURN
bw: PUT (col, row), bw: RETURN
bx: PUT (col, row), bx: RETURN
by: PUT (col, row), by: RETURN
bz: PUT (col, row), bz: RETURN
0 : PUT (col, row), f0: RETURN
1 : PUT (col, row), f1: RETURN
2 : PUT (col, row), f2: RETURN
3 : PUT (col, row), f3: RETURN
4 : PUT (col, row), f4: RETURN
5 : PUT (col, row), f5: RETURN
6 : PUT (col, row), f6: RETURN
7 : PUT (col, row), f7: RETURN
8 : PUT (col, row), f8: RETURN
9 : PUT (col, row), f9: RETURN
tanya: PUT (col, row), tanya: RETURN
seru: PUT (col, row), seru: RETURN
titik: PUT (col, row), titik: RETURN
koma: PUT (col, row), koma: RETURN
petik1: PUT (col, row), petik1: RETURN
petik2: PUT (col, row), petik2: RETURN
buka: PUT (col, row), buka: RETURN
tutup: PUT (col, row), tutup: RETURN
ttkdua: PUT (col, row), ttkdua: RETURN
ttkoma: PUT (col, row), ttkoma: RETURN

END SUB

SUB Tyverra
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
PutFont 100, 155, d, t$(331)
Waitkey 13
PutFont 30, 25, 1, t$(332)
PutFont 30, 40, 1, t$(333)
PutFont 30, 55, 1, t$(334)
PutFont 30, 70, 1, t$(335)
PutFont 30, 85, 1, t$(336)

DO WHILE NOT False
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(337)
a = Pilihan(15, 25, 25, 85, 15)

SELECT CASE a

CASE 1
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(338)
PutFont 50, 160, d, t$(339)
PutFont 50, 170, d, t$(340)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 50, 150, 1, t$(341)
PutFont 50, 160, 1, t$(342)
PutFont 150, 150, 1, t$(343)
PutFont 150, 160, 1, t$(344)
a = Pilihan(50, 150, 150, 160, 10)
IF a = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(7) <> “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(345)
PutFont 50, 160, d, t$(346)
END IF
IF gold < 100 THEN
IF item$(7) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(347)
PutFont 50, 160, d, t$(348)
END IF
ELSE
IF item$(7) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(349)
PutFont 50, 160, d, t$(350)
PutFont 50, 170, d, t$(351)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man2
PutFont 50, 140, d, t$(352)
PutFont 50, 150, d, t$(353)
PutFont 50, 160, d, t$(354)
PutFont 50, 170, d, t$(355)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), arrow
PutFont 100, 170, 1, t$(356)
gold = gold – 100
item$(7) = item7$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF
END IF
IF a = 2 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(8) <> “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(357)
END IF
IF gold < 250 THEN
IF item$(8) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(358)
END IF
ELSE
IF item$(8) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(359)
PutFont 50, 160, d, t$(360)
PutFont 50, 170, d, t$(361)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), shield
PutFont 100, 170, 1, t$(362)
gold = gold – 250
item$(8) = item8$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF
END IF
Waitkey 13

CASE 2
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(363)
PutFont 50, 160, d, t$(364)
PutFont 50, 170, d, t$(365)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(366)
PutFont 50, 150, d, t$(367)
PutFont 50, 160, d, t$(368)
PutFont 50, 170, d, t$(369)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(370)
PutFont 50, 150, d, t$(371)
PutFont 50, 160, d, t$(372)
PutFont 50, 170, d, t$(373)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(374)
PutFont 50, 150, d, t$(375)
PutFont 50, 160, d, t$(376)
PutFont 50, 170, d, t$(377)
Waitkey 13

CASE 3
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(378)
Waitkey 13
IF hut = 5 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(379)
PutFont 50, 160, d, t$(380)
hut = 6
Waitkey 13
END IF

CASE 4
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(6)
PutFont 50, 150, d, t$(381)
PutFont 50, 160, d, t$(382)
PutFont 50, 170, d, t$(383)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(384)
PutFont 50, 150, d, t$(385)
PutFont 50, 160, d, t$(386)
PutFont 50, 170, d, t$(387)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(388)
PutFont 50, 150, d, t$(389)
PutFont 50, 160, d, t$(390)
PutFont 50, 170, d, t$(391)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(392)
PutFont 50, 150, d, t$(393)
PutFont 50, 160, d, t$(394)
PutFont 50, 170, d, t$(395)
Waitkey 13

CASE 5
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory
EXIT SUB
END SELECT

LOOP

END SUB

SUB Waitkey (keys%)
DO
LOOP UNTIL INKEY$ = CHR$(keys%)
END SUB

SUB Winkle
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
PutFont 100, 155, d, t$(396)
Waitkey 13
PutFont 30, 25, 1, t$(397)
PutFont 30, 40, 1, t$(398)
PutFont 30, 55, 1, t$(399)
PutFont 30, 70, 1, t$(400)
PutFont 30, 85, 1, t$(401)

DO WHILE NOT False
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(402)
a = Pilihan(15, 25, 25, 85, 15)

SELECT CASE a

CASE 1
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(403)
PutFont 50, 160, d, t$(404)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 50, 150, 1, t$(405)
PutFont 50, 160, 1, t$(406)
PutFont 150, 150, 1, t$(407)
PutFont 150, 160, 1, t$(408)
a = Pilihan(50, 150, 150, 160, 10)
IF a = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(4) <> “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(409)
END IF
IF gold < 300 THEN
IF item$(4) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(410)
PutFont 50, 160, d, t$(411)
PutFont 50, 170, d, t$(412)
END IF
ELSE
IF item$(4) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(413)
PutFont 50, 160, d, t$(414)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), potion
PutFont 100, 170, 1, t$(415)
gold = gold – 300
item$(4) = item4$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF
END IF
IF a = 2 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
IF item$(9) <> “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(416)
END IF
IF gold < 500 THEN
IF item$(9) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(417)
END IF
ELSE
IF item$(9) = “” THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(418)
PutFont 50, 160, d, t$(419)
PutFont 50, 170, d, t$(420)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man2
PutFont 50, 140, d, t$(421)
PutFont 50, 150, d, t$(422)
PutFont 50, 160, d, t$(423)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (150, 140), rod
PutFont 100, 170, 1, t$(424)
gold = gold – 500
item$(9) = item9$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF
END IF
Waitkey 13

CASE 2
IF house1 = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(425)
Waitkey 13
END IF
IF house1 = 0 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(426)
PutFont 50, 160, d, t$(427)
PutFont 50, 170, d, t$(428)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(429)
PutFont 50, 160, d, t$(430)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(431)
PutFont 50, 160, d, t$(432)
PutFont 50, 170, d, t$(433)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(434)
PutFont 50, 160, d, t$(435)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(4)
PutFont 50, 150, d, t$(436)
PutFont 50, 160, d, t$(437)
PutFont 50, 170, d, t$(438)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman2
PutFont 50, 140, d, t$(439)
PutFont 50, 150, d, t$(440)
PutFont 50, 160, d, t$(441)
PutFont 50, 170, d, t$(442)
house = 2
house1 = 1
Waitkey 13
END IF

CASE 3
IF gold < 20 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(443)
Waitkey 13
ELSE
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(444)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(445)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 50, 150, 1, t$(446)
PutFont 50, 160, 1, t$(447)
a = Pilihan(50, 150, 150, 160, 10)

SELECT CASE a

CASE 1
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(448)
PutFont 50, 160, d, t$(449)
PutFont 50, 170, d, t$(450)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(451)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 50, 145, 1, t$(452)
PutFont 50, 155, 1, t$(453)
PutFont 50, 165, 1, t$(454)
RANDOMIZE TIMER
luck! = INT(RND * 3)

a = Pilihan(50, 145, 145, 165, 10)

SELECT CASE a

CASE 1
IF luck! = 1 THEN GOSUB Dapat ELSE GOSUB Gagal

CASE 2
IF luck! = 2 THEN GOSUB Dapat ELSE GOSUB Gagal

CASE 3
IF luck! = 3 THEN GOSUB Dapat ELSE GOSUB Gagal

END SELECT

CASE 2
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(458)
Waitkey 13
END SELECT
END IF

CASE 4
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(6)
PutFont 50, 150, d, t$(459)
Waitkey 13
IF item$(12) = “” THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(460)
PutFont 50, 150, d, t$(461)
PutFont 50, 160, d, t$(462)
PutFont 50, 170, d, t$(463)
Waitkey 13
IF gold < 1000 THEN
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), man1
PutFont 50, 140, d, t$(464)
PutFont 50, 150, d, t$(465)
PutFont 50, 160, d, t$(466)
Waitkey 13
ELSE
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), girl1
PutFont 50, 140, d, t$(2)
PutFont 50, 150, d, t$(467)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(468)
item$(12) = item12$
gold = gold – 1000
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY “l64 t255 cc#dd#eff#gg#aa#bc”
NEXT
END IF
END IF
END IF

CASE 5
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 – 5, y4 – 5), 0, BF
Inventory
EXIT SUB
END SELECT

LOOP

Dapat:
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(455)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PutFont 100, 155, 1, t$(456)
SOUND 1000, 2 * ceksound
SOUND 3000, 2 * ceksound
gold = gold + 100
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
RETURN

Gagal:
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
PUT (20, 125), oldman3
PutFont 50, 140, d, t$(5)
PutFont 50, 150, d, t$(457)
SOUND 100, 3 * ceksound
gold = gold – 20
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 – 5, y2 – 5), 0, BF
RETURN

END SUB