CADI DAMASI
Retro bilgisayarBASIC program köşemizde bu ay yine kısa bir oyun dökümü veriyoruz. Cadı Daması adındaki oyunumuz aslında oynanış bakımından bildiğimiz damadan pek farklı değil. Oyun, cadılar ve hayaletler olmak üzere iki kişi arasında oynanabildiği gibi, bir tarafın başlangıç ve bitiş hamleleri için RETURN tuşuna basarak bilgisayara karşı da oynayabilirsiniz. Taşların hareket edebildiği yönler ekranda gösterilmektedir. Başarılar.

GOTO Programkontrol
Programkontrol:
CLEAR
GOSUB Initialize
GOTO istek
ikio:
h=0 :K=0
FOR a=7 TO 35 : GOSUB altmiş : NEXT a
uco:
GOSUB terk
IF h<0 THEN Quarterc
h=0 : K=0 : a=t : GOSUB altmis
IF h<l THEN Quarterc
GOTO uco
Initialize:
SCREEN 2,320,200,4,1 : COLOR 1,0 : CLS : WINDOW 2,"CADI DAMASI",,,2
DIM hayalet(121),cadi(121),kare(98),d(28),x(35),y(35)
DIM K35),xl(35),yl(35),n(28),b(42)
LINE (50,80)-(81,103),l,b
LOCATE 12,12:PRINT "CADI DAMASI"
LINE (230,80)-(261,103),l,b
GET (50,80)-(81,103),kare
GOSUB hayaletyapimi
s=-l
FOR a=0 TO 7 : READ m(a) : NEXT a
FOR a=0 TO 28 : READ d(a) : NEXT a
b=48 : c=32 : d=59 :e=12
FOR a=0 TO 4
FO
R f=0 TO 4
h=6*a+f+7 : x(h)=b*f+d-15 : y(h)=c*a+e-11 : l(h)=g+97 : n(g)=h
g=g+1 : xl(h)=6*f+10 : yl(h)=4*a+1
NEXT f
NEXT a
CLS
'
FOR a=0 TO 4
LINE(d,c*a+e)-(b*4+d,c*a+e),2 : LINE(b*a+d,e)-(b*a+d,c*4+e),2
NEXT a
a=0 : f=0
GOSUB Lne
a=b+b
GOSUB Lne
f=c+c
GOSUB Lne
a=0
GOSUB Lne
FOR a=0 TO 42 : READ b(a) : GOSUB yedialtio : NEXT a
RETURN
Lne:
LINE (d+a,e+f)-(2*b+d+a,2*c+e+f),2 : LINE (d+a,2*c+e+f)-(2*b+d+a,e+f),2
RETURN
yedialtio:
IF b(a)=2 THEN RETURN
IF b(a)<0 THEN PUT (x(a),y(a)),cadi,PSET
IF b(a)=0 THEN PUT (x(a),y(a)),kare,PSET
IF b(a)>0 THEN PUT (x(a),y(a)),hayalet,PSET
LOCATE yl(a),xl(a) : PRINT CHR$(l(a))
RETURN
istek:
d=0 : LOCATE 20,1
IF s=l THEN PRINT:PRINT "HAYALET" ELSE PRINT:PRINT "CADI"
LOCATE 21,1
PRINT TAB (16) "BAŞLANGIÇ:";
Lpl:
e=e+l : K$= INKEY$ : IF K$=" THEN Lpl
IF ASC(K$)=13 THEN GOSUB Bos : RANDOMIZE TIMER : GOTO ikio
IF ASC (K$)<97 OR ASC (K$)>121 THEN Lpl
PRINT K$ : a=n(ASC(K$)-97) : z=a
Lp3:
LOCATE 23,18 : PRINT "BITIS:";
Lp2:
K$=INKEY$ : IF K$="" THEN Lp2
IF ASC (K$)<97 OR ASC (K$)>121 THEN Lp2
PRINT K$; : tl=n(ASC(K$)-97)
ck=l : 1=0 : kl=0 : GOSUB aitmiş : ok=0 : h=0 : a=7 : IF a=36 THEN calim
Dm2:
GOSUB aitmiş : IF h> = l THEN calim
a=a+l : IF a<36 THEN Dm2
calim:
IF d THEN dortyedio
IF 1 THEN dortsekizo
ses:
SOUND 99,5 : GOTO istek
dortyedio:
IF 1=0 OR kl=0 THEN SOUND 99,5 : GOTO besbir
dortsekizo:
IF kl=0 AND h>=l THEN ses
f=z : t=tl : K=kl : GOSUB terk
IF kl=0 THEN Quarterc
a=t : z=a : h=0 : GOSUB altmiş
IF h<l THEN Quarterc
besbir:
GOSUB Bos : d=l : GOTO Lp3
terk:
b(t)=b(f) : b(f)=0 : a=f : GOSUB yedialtio
IF K THEN b(K)=0 : a=K : GOSUB yedialtio
a-t : GOTO yedialtio
terk2:
IF b(c+ra(b)) THEN 160
sc=l+RND(l)*.9
IF h<sc THEN h=se : f = a : t=c+m(b) : K=c
IF ek=0 THEN GOTO 160
IF tl=c+m(b) THEN 1=1 : kl=c : b=7
RETURN
Quarterc:
s = -s : h=0 : a=7
ikialtio:
IF a=36 THEN ikic
GOSUB altmiş
IF h=0 THEN a= a+1 : GOTO ikialtio
GOTO istek
Bos:
LOCATE 21,1 :PRINT SPACE$(30);
LOCATE 23,1 :PRINT SPACE$(30);
RETURN
altmiş:
IF b(a)=0 OR b(a)=-s OR b(a)=2 THEN RETURN
FOR b = 0 TO d(a-7)
c=a+m(b)
IF b(c)=s OR b(c)=2 THEN 160
IF b(c) THEN terk2:
sc=RND(l)*.9
IF h<sc THEN h=sc : f = a : t=c
IF ck=l AND tl = c THEN 1=1 : b=7
160 NEXT:RETURN
ikic :
GOSUB Bos
LOCATE 20,1
IF s = l THEN PRINT "CADILAR KAZANDI i"; :GOTO basla
PRINT "HAYALETLER KAZANDI i" : GOTO basla
basla:
LOCATE 23 1
PRINT "TEKRAR OYNAMAK İSTER MISINIZ? (E/H)"
dongu:
K$=INKEY$:IF K$="" THEN dongu
IF K$="e" OR K$="e" THEN RUN
WINDOW CLOSE 2 : SCREEN CLOSE 2 : CLEAR : SYSTEM
hayaletyapimi:
PALETTE 14,.33,.13,0 : PALETTE 13,1,.81,.67 : PALETTE 15,.46,.46,.46
FOR y=82 TO 101
FOR x=58 TO 73
READ col : IF col=50 THEN Nextx
PRESET (x,y),col
Nextx:
NEXT x
NEXT y
GET (50,80)-(81,103),cadi
FOR y=82 TO 100
FOR x=232 TO 245
READ col : IF col=50 THEN Nextxl
PRESET (x,y),col
Nextxl:
NEXT x
NEXT y
GET (230,80)-(261,103),hayalet
RETURN
REM
CADI DATASI
210
DATA 50,50,02,50,50,50,50,50,50,50,50,50,50,50,50.50
201
DATA 50,02,02,02,50,50,50,50,50,50,50,50,50,50,50,50
230
DATA 50,02,02,02,02,02,50,50,50,50,50,50,50,50,50,50
240
DATA 02,50,02,02,02,02,02,02,02,02,50,50,50,50,50,50
250
DATA 50,50,02,02,14,14,14,14,14,50,02,02,02,50,50,50
260
DATA 50,02,50,13,13,13,14,14,14,14,50,50,50,50,50,50
270
DATA 02,50,13,50,13,13,02,02,14,14,50,50,50,50,50,50
280
13,50,02,02,02,02,02,02,-50.50.50.50
DATA 50,50,50,50,
290
DATA 50,50,50,13,50,50,02,02,15,02,02,02,02,50,50,50
300
DATA 50,50,13,13,02,02,02,02,15,02,02,02,02,50,50,50
310
DATA 50,50,13,13,02,02,02,02,15,02,02,02,02,50,50,50
301
DATA 50,50,50,50,02,02,02,02,15,02,02,02.50.50,50,50
330
DATA 50,50,50,50,50,15,15,15,02,02,02,02,50,50,50,50
340
DATA 50,50,50,50,50,02,02,15,02,02,15,02,50,50,50,50
350
DATA 50,50,50,50,50,02,02,15,02,02,15,02,02,50,50,50
360
DATA 50,50,50,50,50,15,15,15,15,15,15,02.02,02,50,50
370
DATA 50,50,50,50,50,50,15,15,15,15,15,15,15,15,50,50
380
DATA 50,50,50,50,50,50,15,15,15,15,15,15,15,15,15,50
390
DATA 50,50,50,50,50,50,14,14,50,15,15,15,15,15,15,15
400
DATA 50,50,50,50,50,14,14,14,50,50,14,14,14,50,50,50
410
REM HAYALET DATASI
430
DATA 50,50,50,50,50,50,01,01,50,01,01,50,50,50
440
DATA 50,50,50,50,50,50,50,01,01,01,01,01,50,50
450
DATA 50,50,01,01,01,50,50,01,01,01,01,01,01,50
460
DATA 50,50,01,01,02,01,50,01,01,01,01,01,01,50
470
DATA 50,50,01,02,01,01,01,01,01,01,01,50,01,50
480
DATA 50,50,01,01,01,02,01,01,01,01,01,01,50,50
490
DATA 50,50,50,50,01,01,01,01,01,01,01,01,50,50
500
DATA 50,01,50,01,01,01,01,01,01,01,50,01,50,50
510
DATA 50,01,01,01,01,01,01,01,01,01,01,50,50,50
501
DATA 01,01,01,01,01,01,01,01,01,01,01,01,01,50
530
DATA 50,01,01,01,01,50,50,01,01,01,15,01,01,50
540
DATA 50,01,01,01,01,50,50,01,01,01,15,01,01,50
550
DATA 50,50,01,01,50,50,01,01,01,15,01,15,01,50
560
DATA 50,50,01,01,50,01,01,15,01,15,01,01,15,50
570
DATA 50,50,01,50,50,01,01,15,01,15,01,01,50,50
580
DATA 50-, 50, 50, 50, 01, 01,15, 01, 01,15, 01, 01, 50, 50
590
DATA 50,50,50,01,01,15,01,01,01,15,01,01,01,50
600
DATA 50,50,50,01,01,50,01,01,01,15,01,01,01,01
610
DATA 50,50,50,50,50,50,01,01,01,50,50,01,01,01
KONTROL DATASI
DATA -6,1,6,-1,-5,7,5,-7
DATA 7,3,7,3,7,0,3,7,3,7,3,0
DATA 7,3,7,3,7,0,3,7,3,7,3,0,7,3,7,3,7
DATA 2,2,2,2,2,2,2,-1,-1,-1,-1,-1.2
DATA -1,-1,-1,-1,-1,2,-1,-1,0,1,1.2
DATA 1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,2,2