Skip to content

Instantly share code, notes, and snippets.

@ssg
Created October 6, 2016 00:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssg/ce29998fa3ddc47feb42c79c9d2e4232 to your computer and use it in GitHub Desktop.
Save ssg/ce29998fa3ddc47feb42c79c9d2e4232 to your computer and use it in GitHub Desktop.
Dedektif - A simple adventure/RPG-like game I wrote back in 1989 for Amstrad CPC464. This is the oldest code I wrote that I was able to scavenge from my tapes.
10 SPEED KEY 17,2
20 CLS:INK 0,0:BORDER 0:PAPER 0
30 MODE 1:INK 1,29:PEN 1:INK 2,13:INK 3,20
40 DIM I$(15),DT(15),DY$(15),SS(15),ESGY$(15):RESTORE 250
50 FOR N=1 TO 15
60 READ I$(N),DT(N),DY$(N),SS(N),ESGY$(N)
70 NEXT N
80 OK=0:YOU=0:KLL=0:FOUND=0:MONEY=1000000:CEPTEKI=0:MIDE=10:KATIL=INT(RND*15):IF KATIL<1 THEN 80
90 KATIL1=INT(RND*15):IF KATIL1<1 THEN 90
100 KATIL2=INT(RND*15):IF KATIL2<1 THEN 100
110 DIM FOOD$(10),FPRICE(10)
120 RESTORE 150
130 FOR N=1 TO 10:READ FOOD$(N),FPRICE(N)
140 NEXT N:GOTO 550
150 DATA PORTAKALLI TAVUK,1500
160 DATA SPAGETTI,950
170 DATA PILIC KIZARTMASI,1250
180 DATA 1 BARDAK KOLA,500
190 DATA 1 BARDAK PORTAKAL SUYU,380
200 DATA 1 BARDAK VISNE LIKORU,900
210 DATA 1 BARDAK BIRA,780
220 DATA 1 BARDAK RAKI,800
230 DATA KIZARMIS KOFTE,1000
240 DATA SALATA,300
250 DATA HASAN EL-SABBAH,1942,IRAN
260 DATA 5,ISRAIL
270 DATA OMER SERIF,1949,SUUDI ARABISTAN
280 DATA 9,SUUDI ARABISTAN
290 DATA YURI KOSKOF,1945,YUGOSLAVYA
300 DATA 4,TURKIYE
310 DATA ORHAN MISAKOREVIC,1951,AFGANISTAN
320 DATA 7,RUSYA
330 DATA OTTO VON HAUSEN,1943,ALMANYA
340 DATA 12,ISVICRE
350 DATA FRANCOIS DE VILLE,1950,FRANSA
360 DATA 7,FRANSA
370 DATA OSMAN KAZIM,1941,TURKIYE
380 DATA 10,TURKIYE
390 DATA JOHN BRUTY,1949,INGILTERE
400 DATA 5,TURKIYE
410 DATA ROSS MCWATT,1952,IRLANDA
420 DATA 9,AMERIKA
430 DATA SAI-CHO NIMITRA,1950,TIBET
440 DATA 25,JAPONYA
450 DATA ARNOLD SWARCHZENGER,1955,AMERIKA
460 DATA 20,HOLLANDA
470 DATA KARL TAITO,1953,INGILTERE
480 DATA 11,INGILTERE
490 DATA JACK WOODPECKER,1940,AMERIKA
500 DATA 9,AMERIKA
510 DATA JOE SAMSON,1951,AMERIKA
520 DATA 12,ISVICRE
530 DATA MICO GOGOREVIC,1953,RUSYA
540 DATA 3,RUSYA
550 REM ****** GAME LOOP ********
560 CLS
570 A$="DEDEKTIF":A=20-(LEN(A$)/2)
580 LOCATE A,1:PEN 1:PRINT A$
590 A$="PROGRAM:":A=10-(LEN(A$)/2)
600 LOCATE A,3:PEN 2:PRINT A$
610 LOCATE A,4:PEN 3:PRINT"SEDAT KAPANOGLU"
620 A$="COPYRIGHT:"
630 LOCATE A,6:PEN 2:PRINT A$
640 LOCATE A,7:PEN 3:PRINT"SSG 1989"
650 A$="PRESS ANY KEY":A=20-(LEN(A$)/2)
660 LOCATE A,10:PEN 1:PRINT A$
670 CALL &BB18
680 CLS
690 PRINT" SECENEKLER :"
700 PRINT" ------------":PEN 3
710 PRINT
720 PRINT"TUTUKLAMA IZNI...........1"
730 PRINT"DATABANK BILGISAYARI.....2"
740 PRINT"ARABA KIRALAMA...........3"
750 PRINT"BANKADAN PARA CEKME......4"
760 PRINT"KARAKOLA TELEFON ETME....5"
770 PRINT"LOKANTAYA GIRME..........6"
780 PRINT"MUHBIRLE RANDEVU.........7"
790 PRINT"GOREV BITTI..............8"
800 PRINT"DURUM RAPORU.............9"
810 PRINT:PEN 2
820 PRINT"HANGI SECENEK?":PEN 1
830 A$=INKEY$:IF A$<"1" OR A$>"9" THEN 830
840 A=VAL(A$):MIDE=MIDE-0.25
850 IF MIDE=0 THEN 1990
860 IF MIDE<5 THEN 2160
870 ON A GOSUB 940,1060,1260,1870,2610,2220,2940,1370,1670
880 GOTO 670
890 REM ====== DEGERLERI SIFIRLAMA ===
900 MONEY=1000000:CEPTEKI=0:KLL=0
910 YOU=0:FOUND=0:OK=0
920 MIDE=10:CAR=0:IZIN=0
930 KATIL=INT(RND*15):IF KATIL<1 THEN 930 ELSE RETURN
940 REM ===== TUTUKLAMA IZNI ======
950 CLS
960 IF FOUND=0 THEN PRINT"DAHA ADAMI BULAMADIN KI!":PRINT:PRINT"BIR TUSA BAS":RETURN
970 IF CEPTEKI<5000 THEN PRINT"PARAN YETMEDI!":PRINT:PRINT"BIR TUSA BAS":RETURN
980 PRINT"KASAYA 5000TL ODEYECEK MISINIZ?(E/H)"
990 A$=UPPER$(INKEY$):IF A$<>"E" AND A$<>"H" THEN 990
1000 IF A$="E" THEN 1020
1010 PRINT:PRINT"BIR TUSA BAS":RETURN
1020 CEPTEKI=CEPTEKI-5000
1030 PRINT:PRINT"TUTUKLAMA IZNI VERILMISTIR..."
1040 PRINT:PRINT"BIR TUSA BAS":IZIN=1:RETURN
1050 REM =============================
1060 REM === DATABANK BILGISAYARI ====
1070 CLS
1080 TERMINAL=INT(RND*100)
1090 PRINT"DATABANK BILGISAYAR TERMINALI";TERMINAL
1100 MOVE 0,380:DRAW 640,380,1
1110 PRINT
1120 FOR N=1 TO 15:PRINT N;"- "I$(N):NEXT
1130 PRINT
1140 LOCATE 1,20:PRINT CHR$(20);"SIRA NUMARASINI YAZIN:";:INPUT"",SRNO
1150 IF SRNO<1 OR SRNO>15 THEN 1140
1160 CLS
1170 PRINT"ISMI : ";I$(SRNO)
1180 PRINT"DOGUM TARIHI :";DT(SRNO)
1190 PRINT"DOGUM YERI : ";DY$(SRNO)
1200 PRINT"SABIKA SAYISI:";SS(SRNO)
1210 PRINT"EN SON"
1220 PRINT"GORULDUGU YER: ";ESGY$(SRNO)
1230 PRINT
1240 PRINT"BIR TUSA BASIN"
1250 RETURN
1260 REM === ARABA KIRALAMA ========
1270 CLS
1280 IF CEPTEKI<100000 THEN PRINT"ARABA KIRALAMAYA PARAN YETMEZ!":PRINT:PRINT"BIR TUSA BAS":RETURN
1290 PRINT"100000TL ODEYECEKMISIN?(E/H)"
1300 A$=UPPER$(INKEY$):IF A$<>"E" AND A$<>"H" THEN 1300
1310 IF A$="E" THEN 1330
1320 PRINT:PRINT"BIR TUSA BAS":RETURN
1330 CEPTEKI=CEPTEKI-100000:CAR=1
1340 PRINT"BIR ARABA VERILDI"
1350 PRINT:PRINT"BIR TUSA BAS":RETURN
1360 REM ============================
1370 REM ===== GOREV BITTI ======
1380 CLS
1390 IF OK=0 THEN 1570
1400 PRINT"TEBRIKLER!"
1410 FOR N=1 TO 1000:NEXT
1420 PRINT"SANA BUNUN ICIN"
1430 FOR N=1 TO 1000:NEXT
1440 PRINT"BIR ODUL VERIYORUM:"
1450 FOR N=1 TO 1000:NEXT
1460 PRINT"TAM 100.000.000 TL"
1470 FOR N=1 TO 1000:NEXT
1480 PRINT"NASIL? IYI MI?"
1490 FOR N=1 TO 1000:NEXT
1500 PRINT:PRINT"BIR TUSA BAS"
1510 MONEY=MONEY+100000000
1520 FOUND=0:OK=0:MIDE=10:KLL=0
1530 YOU=0:KATIL=INT(RND*15):IF KATIL<1 THEN 1530
1540 KATIL1=INT(RND*15):IF KATIL1<1 THEN 1540
1550 KATIL2=INT(RND*15):IF KATIL2<1 THEN 1550
1560 RETURN
1570 PRINT"COK KOTU!"
1580 FOR N=1 TO 1000:NEXT
1590 PRINT"NIYE GOREVYI YARIDA BIRAKTIN KI?"
1600 FOR N=1 TO 1000:NEXT
1610 PRINT"BU YUZDEN SENI"
1620 FOR N=1 TO 1000:NEXT
1630 PRINT"KOVUYORUM!"
1640 FOR N=1 TO 1000:NEXT
1650 PRINT"BIR TUSA BAS"
1660 GOSUB 890:RETURN
1670 CLS
1680 PRINT"DURUM RAPORU :"
1690 PRINT"--------------"
1700 PEN 2
1710 PRINT
1720 PRINT"CEPTEKI PARAN :";CEPTEKI
1730 PRINT"BANKADAKI PARAN :";MONEY
1740 IF IZIN=1 THEN IZ$=" VAR" ELSE IZ$=" YOK"
1750 PRINT"TUTUKLAMA IZNI :";IZ$
1760 IF CAR=1 THEN CR$=" VAR" ELSE CR$=" YOK"
1770 PRINT"ARABAN :";CR$
1780 IF FOUND=1 THEN F$=" BULDUN" ELSE F$=" BULAMADIN"
1790 PRINT"KATILI :";F$
1800 IF MIDE<5 THEN K$=" AC" ELSE K$=" TOK"
1810 PRINT"KARNIN :";K$
1820 IF OK=1 THEN G$=" BITTI" ELSE G$=" DEVAM EDIYOR"
1830 PRINT"GOREV :";G$
1840 PEN 1
1850 PRINT
1860 PRINT"BIR TUSA BAS":RETURN
1870 '======= PARA CEKME ===========
1880 CLS
1890 IF MONEY=0 THEN PRINT"BANKADA HIC PARANIZ YOK!":PRINT:PRINT"BIR TUSA BAS":RETURN
1900 PRINT"BANKADA";MONEY;"TL PARAN VAR."
1910 LOCATE 1,2:PRINT CHR$(20);"NE KADAR CEKECEKSIN:";:INPUT"",CEK
1920 IF CEK=0 THEN PRINT:PRINT"BIR TUSA BAS":RETURN
1930 IF INT(CEK)<0 OR INT(CEK)>MONEY THEN 1910
1940 CEPTEKI=CEPTEKI+CEK
1950 MONEY=MONEY-CEK
1960 PRINT
1970 PRINT"BIR TUSA BAS":RETURN
1980 REM =========================
1990 CLS
2000 PRINT"YEMEK YEMEDIGIN ICIN"
2010 FOR N=1 TO 1000:NEXT
2020 PRINT"GEBERMIS"
2030 FOR N=1 TO 1000:NEXT
2040 PRINT"BULUNMAKTASIN!"
2050 FOR N=1 TO 1000:NEXT
2060 PRINT"OZUR DILERIM,FAKAT"
2070 FOR N=1 TO 1000:NEXT
2080 PRINT"OYUNU BASTAN"
2090 FOR N=1 TO 1000:NEXT
2100 PRINT"BASLATMAK"
2110 FOR N=1 TO 1000:NEXT
2120 PRINT"ZORUNDAYIM"
2130 PRINT:PRINT"BIR TUSA BAS"
2140 GOSUB 870
2150 RUN
2160 REM ===== MIDE ALARMI ========
2170 CLS
2180 PRINT"ALO! ORASI BEYIN MI? BEN MIDE!"
2190 PRINT"BEN COK ACIKTIM! SU ADAMA SOY-"
2200 PRINT"LE DE BIR LOKANTAYA GIRSIN..."
2210 PRINT:PRINT"BIR TUSA BAS":RETURN
2220 REM ======= LOKANTAYA GIRME =====
2230 CLS
2240 A$="MENU":A=20-(LEN(A$)/2)
2250 LOCATE A,1:PEN 3:PRINT A$:PEN 1
2260 MOVE 0,380:DRAW 640,380
2270 PRINT
2280 FOR N=1 TO 10
2290 PRINT FOOD$(N):NEXT
2300 Y=3
2310 FOR N=1 TO 10
2320 LOCATE 25,Y:PRINT FPRICE(N)
2330 Y=Y+1:NEXT
2340 PRINT
2350 PRINT"HANGISINDEN ARZU EDERSINIZ?"
2360 LOCATE 1,15:PRINT CHR$(20);:LINE INPUT">";YEMEK$
2370 FOR N=1 TO 10
2380 IF UPPER$(YEMEK$)=FOOD$(N) THEN 2410
2390 NEXT
2400 GOTO 2360
2410 MIDE=10
2420 IF CEPTEKI<FPRICE(N) THEN 2440
2430 CEPTEKI=CEPTEKI-FPRICE(N):PRINT:PRINT"BIR TUSA BAS":RETURN
2440 CLS
2450 PRINT"DEMEK"
2460 FOR N=1 TO 1000:NEXT
2470 PRINT"LOKANTAYA BES PARASIZ OLARAK"
2480 FOR N=1 TO 1000:NEXT
2490 PRINT"GIRDIN"
2500 FOR N=1 TO 1000:NEXT
2510 PRINT"VE"
2520 FOR N=1 TO 1000:NEXT
2530 PRINT"BULASIKLARI SANA YIKATTILAR,HA?"
2540 FOR N=1 TO 1000:NEXT
2550 PRINT"POLIS SEREFINI IKI PARALIK ETTIN!"
2560 PRINT"KOVUYORUM SENI!"
2570 PRINT
2580 PRINT"BIR TUSA BAS!"
2590 CALL &BB18
2600 RUN
2610 REM ====== KARAKOL ==========
2620 CLS
2630 IF CAR=0 THEN PRINT"BIR ARABAN YOK!":PRINT:PRINT"BIR TUSA BAS":RETURN
2640 LOCATE 1,1:PRINT CHR$(20);"KIMDEN SUPHELENIYORSUN:";:INPUT"",KIM$
2650 KIM$=UPPER$(KIM$)
2660 FOR N=1 TO 15
2670 IF KIM$=I$(N) THEN KLL=N:GOTO 2710
2680 NEXT
2690 PRINT:PRINT"KAYITLARDA BOYLE BIRI YOK!"
2700 PRINT:PRINT"BIR TUSA BAS":RETURN
2710 LOCATE 1,2:PRINT CHR$(20);"NEREDE YASIYOR:";:INPUT"",N$
2720 N$=UPPER$(N$)
2730 FOR N=1 TO 15
2740 IF N$=ESGY$(N) THEN YOU=N:GOTO 2780
2750 NEXT
2760 PRINT:PRINT"ORASI NERESI?"
2770 PRINT:PRINT"BIR TUSA BAS":RETURN
2780 CLS:IF YOU<>KLL THEN BUL=0 ELSE BUL=1
2790 PRINT"YOLA CIKTIK!"
2800 T=TIME
2810 IF TIME-T<900 THEN 2810
2820 PRINT"VARDIK..ONU ARIYORUZ.."
2830 T=TIME
2840 IF TIME-T<900 THEN 2840
2850 IF BUL=0 THEN PRINT"BURDA BOYLE BIRI YOK..BOSUNA GETIRDIN!":PRINT:PRINT"BIR TUSA BAS":RETURN
2860 IF IZIN=0 THEN PRINT"AKSILIGE BAK..ADAMI BULDUK AMA TUTUKLAMAIZNIMIZ YOK..TELEFON ETTE AL BARI...":PRINT:PRINT"BIR TUSA BAS":FOUND=1:RETURN
2870 FOUND=1
2880 PRINT"MADEM TUTUKLAMA IZNIN VAR..O ZAMAN YAKALIYALIM!..."
2890 FOR N=1 TO 2000:NEXT
2900 IF KLL<>KATIL THEN PRINT"GORDUN MU? MAHKEMEDE ADAM SUCSUZ CIKTI. DEMEK KI BU DEGILMIS...":IZIN=0:PRINT:PRINT"BIR TUSA BAS":RETURN
2910 CLS
2920 PRINT"HA HA .. ADAMI HAPSE TIKTILAR.. YASASIN!ODULU ALABILECEKSIN EN SONUNDA.."
2930 OK=1:PRINT:PRINT"BIR TUSA BAS":RETURN
2940 REM ====== MUHBIRLE RANDEVU =====
2950 CLS
2960 PRINT"700.000 TL'YE BU IS BITER? OKEY MI?"
2970 PRINT"(E)VET VEYA (H)AYIR:";
2980 A$=UPPER$(INKEY$):IF A$<>"E" AND A$<>"H" THEN 2980
2990 IF A$="E" THEN PRINT" EVET":GOTO 3020
3000 PRINT"PARAN YOKSA NE DIYE GELDIN?"
3010 PRINT:PRINT"BIR TUSA BAS":RETURN
3020 IF CEPTEKI<700000 THEN PRINT"HEM ODEMEYI KABUL ETTIN HEM DE YANINDA SADECE";CEPTEKI;"KADAR PARA VAR.":PRINT"DEFOL!":GOTO 3010
3030 CEPTEKI=CEPTEKI-700000
3040 CLS
3050 PRINT"GUZEEL..GUZEEL..PESIN PARAYLA CALISIRIM.SIMDI SOYLIYECEKLERIMI DIKKATLE DINLE :"
3060 PRINT
3070 PRINT"KADIKOY CINAYETINDE 3 KUVVETLI SUPHELI VAR..BUNLAR :"
3080 PRINT
3090 PRINT"1 - ";I$(KATIL1)
3100 PRINT"2 - ";I$(KATIL)
3110 PRINT"3 - ";I$(KATIL2)
3120 GOTO 3010
@vigo
Copy link

vigo commented Jul 27, 2020

abi çok iyi ya... <3

@ssg
Copy link
Author

ssg commented Jul 29, 2020

abi çok iyi ya... <3

❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment