Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
program starydom;
RND(0)>0.4
Random(10)>4
10 ? RND(0)
20 GOTO 10
;BYTE FUNC Rand(BYTE range)
; returns random number between 0 and
; range-1. If range=0, then a random
; number between 0 and 255 is returned
ldy $d20a ; RANDOM
lda range
beq stop
sta ecx
sty eax
jsr imulCL
tay
stop sty Result
if isIn then begin // check room
l := locate(x + 2 * zx, y + 2 * zy);
if l=32 then begin
q := random(2);
if (a = 0) and (x > 8) and (y > 4) and (random(10) > 4) then begin
if q = 0 then l := 195
else l := 208;
end else begin
a := random(6);
if a = 0 then begin
if q = 0 then l := 195
else l := 208;
end;
end;
end;
if l=195 then begin
position(x + 2 * zx, y + 2 * zy);
write('C'*);
position(2,22);
writeln('W POKOJU JEST CIEMNO,');
if hasItem('G') then begin
write(tTab[1], 'KAGANEK.');
isIn := true;
end else begin
write(tTab[2], 'KAGANKA.');
isIn := false;
end;
readkey;
clearLine;
end;
if l=208 then begin
position(x + 2 * zx, y + 2 * zy);
write('P'*);
position(2,22);
writeln('W POKOJU NIE MA POD'#12'OGI,');
if hasItem('D') then begin
write(tTab[1], 'DESK'#11'.');
isIn := true;
end else begin
write(tTab[2], 'DESKI.');
isIn := false;
end;
readkey;
clearLine;
end;
if l=214 then begin
// wyjscie
end;
if isIn then begin
e := e - 0.5;
end;
end;
0100 ;eXecute RND function
0110 ;
0120 BDIV = $AD38
0130 FLD1R = $DD98
0140 FR0 = $D4
0150 GETVAR = $ABE9
0160 IFP = $D9AA
0170 PUTVAR = $ABB2
0180 RANDOM = $D20A
0190 ;
0200 *= $B076
0210 ;
0220 LDX # <RNDC
0230 LDY # >RNDC
0240 JSR FLD1R
0250 JSR GETVAR
0260 LDY RANDOM
0270 STY FR0
0280 LDY RANDOM
0290 STY FR0+1
0300 JSR IFP
0310 JSR BDIV
0320 JMP PUTVAR
0330 ;
0340 ;RaNDom Constant
0350 ;
0360 RNDC .BYTE $42,$06,$55,$36,$00,$00
bocianu:
RND(0)>0.4(peek($D20A) or peek($D20A) shl 8) > 26214