Created
October 6, 2016 00:09
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
abi çok iyi ya... <3