Kirjoittaja: tArzAn
Kirjoitettu: 11.06.2002 – 27.11.2011
Tagit: grafiikka, demo, koodi näytille, vinkki
Ohessa "AWARE"-intron QB-lähdekoodi.
' ÜÛÜ Û Û ÜÛÜ ÛßÛÜÜ Ûßßßßßßß
' Û Û Û Û Û Û Û ßÛÜ Û
' ÜÛ ÛÜ Û Û ÜÛ ÛÜ Û ßÛ Û
' Û Û Û Û Û Û Û ÜÛß Û
' ÜÛ ÛÜ Û Û Û ÜÛ ÛÜ ÛÜÜÜÛß Ûßßßß
' Û Û Û ÛßÛ Û Û Û ÛÛÜ Û
' ÛßßßßßÛ Û Ûß ßÛ Û ÛßßßßßÛ Û ßÛÜ Û
'Ûß ßÛ ÛÛß ßÛÛ Ûß ßÛ Û ßÛÜ Û
'Û Û Û Û Û Û Û ßÛÜ ÛÜÜÜÜÜÜÜ
'
'Copyright (c) 1994
'
' This source code is Greetware. If you learn
' something from here, you should greet
' in some of your products..
' ..But I think that nobody will learn anything
' from this source code, unless what somebody
' SHOULD NOT do when coding something..
'
' And as you probably have noticed, we didn't
' made this as a serious product, if we would
' then this would not be basic .. :)
'
'-------------------------------------------------
' Hoo?! Who writed that crap?!
'
'
'METAMORPHER
morfpoints = 62
DIM dx1(morfpoints)
DIM dx2(morfpoints)
DIM dtx(morfpoints)
DIM dy1(morfpoints)
DIM dy2(morfpoints)
DIM dty(morfpoints)
DIM dc(morfpoints)
DATA" zbA "," yaMcB "," 9LYNd " : 'A
DATA" x8X ZeC "," 7K Of "," w6V WgD "
DATA" 5J Ph "," v4nopqrstiE "," 3I Qj "
DATA"u2T UkF","1H Rl","0G Sm"
DATA"0A Kc","1B Ld","2C Me" : 'W
DATA"3D Nf","4E Og","5F y Ph"
DATA"6G YwzxZ Qi","7H Vu vX Rj","8IUs tWSk"
DATA"9Jp rTl","ao qm","b n"
DATA" zbA "," yaMcB "," 9LYNd " : 'A
DATA" x8X ZeC "," 7K Of "," w6V WgD "
DATA" 5J Ph "," v4nopqrstiE "," 3I Qj "
DATA"u2T UkF","1H Rl","0G Sm"
DATA"bcdefghij ","aL Mk ","9K Nl " : 'R
DATA"8J Vm ","7I Pn ","6H Oo "
DATA"5wvutsrqp ","4G QB ","3FW RA "
DATA"2EX Sz ","1DY Ty ","0CZ Ux"
DATA"defghijklmnop","qUL ","rTK " : 'E
DATA"sSJ ","tRI ","uABCDEFGH "
DATA"vQZ ","wPY ","xOX "
DATA"yNW ","zMV ","789abc0123456"
ware$ = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SCREEN 13
FOR a = 1 TO morfpoints
dy2(a) = 100
dx2(a) = 160
NEXT a
OUT &H3C8, 1
FOR a = 1 TO 31
OUT &H3C9, a * 2
OUT &H3C9, 15
OUT &H3C9, a
NEXT
FOR a = 31 TO 1 STEP -1
OUT &H3C9, a * 2
OUT &H3C9, 15
OUT &H3C9, a
NEXT
laskuri = 0
lups:
laskuri = laskuri + 1
'x = INT(RND * 600) + 300
'y = INT(RND * 600) + 300
'z = INT(RND * 1000)
IF laskuri = 1 THEN
FOR a = 1 TO morfpoints
x = 350: y = 350: z = 500
dx1(a) = dx2(a): dy1(a) = dy2(a)
dx2(a) = (SIN((a + z) * x * .0001) * 150 + 160): dtx(a) = dx1(a)
dy2(a) = (COS((a + z) * y * .0001) * 90 + 100): dty(a) = dy1(a)
dc(a) = a: NEXT a
END IF
IF laskuri = 2 THEN
FOR a = 1 TO morfpoints
x = 300: y = 900: z = 800
dx1(a) = dx2(a): dy1(a) = dy2(a)
dx2(a) = (SIN((a + z) * x * .0001) * 150 + 160): dtx(a) = dx1(a)
dy2(a) = (COS((a + z) * y * .0001) * 90 + 100): dty(a) = dy1(a)
dc(a) = a: NEXT a
END IF
IF laskuri = 3 THEN
FOR a = 1 TO morfpoints
x = 900: y = 400: z = 100
dx1(a) = dx2(a): dy1(a) = dy2(a)
dx2(a) = (SIN((a + z) * x * .0001) * 75 + 160): dtx(a) = dx1(a)
dy2(a) = (COS((a + z) * y * .0001) * 45 + 100): dty(a) = dy1(a)
dc(a) = a: NEXT a
END IF
IF laskuri = 4 THEN
REM .. SYMPTOM .. PRESENTS ..
OUT &H3C8, 70: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
LOCATE 14, 20: COLOR 70: PRINT "SYMPTOM"
FOR a = 0 TO 63: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a: OUT &H3C9, a
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT
FOR a = 63 TO 0 STEP -1: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a: OUT &H3C9, a
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT
LOCATE 14, 20: PRINT " presents"
FOR a = 0 TO 63: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a / 2: OUT &H3C9, a
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT
FOR a = 63 TO 0 STEP -1: OUT &H3C8, 70: OUT &H3C9, a / 2: OUT &H3C9, a / 2: OUT &H3C9, a
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: NEXT
OUT &H3C8, 200: OUT &H3C9, 12: OUT &H3C9, 6: OUT &H3C9, 18
COLOR 200: LOCATE 24, 11: PRINT "A salute to B-WARE";
FOR b = 1 TO 12
READ a$: 'This routine grabs the first A
FOR a = 1 TO LEN(a$)
IF MID$(a$, a, 1) <> " " THEN
FOR c = 1 TO LEN(ware$)
IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN
dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c)
dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25
END IF
NEXT c
END IF
NEXT a
NEXT b
END IF
IF laskuri = 5 THEN
FOR b = 1 TO 12
READ a$
FOR a = 1 TO LEN(a$)
IF MID$(a$, a, 1) <> " " THEN
FOR c = 1 TO LEN(ware$)
IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN
dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c)
dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25
END IF
NEXT c
END IF
NEXT a
NEXT b
END IF
IF laskuri = 6 THEN
FOR b = 1 TO 12
READ a$
FOR a = 1 TO LEN(a$)
IF MID$(a$, a, 1) <> " " THEN
FOR c = 1 TO LEN(ware$)
IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN
dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c)
dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25
END IF
NEXT c
END IF
NEXT a
NEXT b
END IF
IF laskuri = 7 THEN
FOR b = 1 TO 12
READ a$
FOR a = 1 TO LEN(a$)
IF MID$(a$, a, 1) <> " " THEN
FOR c = 1 TO LEN(ware$)
IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN
dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c)
dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25
END IF
NEXT c
END IF
NEXT a
NEXT b
END IF
IF laskuri = 8 THEN
FOR b = 1 TO 12
READ a$
FOR a = 1 TO LEN(a$)
IF MID$(a$, a, 1) <> " " THEN
FOR c = 1 TO LEN(ware$)
IF MID$(ware$, c, 1) = MID$(a$, a, 1) THEN
dx1(c) = dx2(c): dy1(c) = dy2(c): dtx(c) = dx1(c): dty(c) = dy1(c)
dx2(c) = a * 5 + 130: dy2(c) = b * 5 + 70: dc(c) = b + 25
END IF
NEXT c
END IF
NEXT a
NEXT b
END IF
IF laskuri = 9 THEN
FOR a = 1 TO morfpoints
x = 300: y = 300: z = 1
dx1(a) = dx2(a): dy1(a) = dy2(a)
dx2(a) = (SIN((a + z) * x * .0001) * 15 + 160): dtx(a) = dx1(a)
dy2(a) = (COS((a + z) * y * .0001) * 9 + 100): dty(a) = dy1(a)
dc(a) = a: NEXT a
FOR a = 1 TO 500: NEXT
END IF
'64 = number of frames
FOR a = 1 TO 64
FOR b = 1 TO morfpoints
PSET (dtx(b), dty(b)), 0
dtx(b) = dtx(b) + (dx2(b) - dx1(b)) / 64: 'Metamorphose itself
dty(b) = dty(b) + (dy2(b) - dy1(b)) / 64: 'Quite simple, eh?
PSET (dtx(b), dty(b)), dc(b)
NEXT b
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0: ' vertical retrace
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30
IF INP(&H60) = 1 THEN GOTO lop
NEXT a
IF laskuri = 9 THEN GOTO lop
GOTO lups
lop:
CLS
OUT &H3C8, 0
FOR a = 1 TO 15: FOR b = 1 TO 3: OUT &H3C9, 0: NEXT: NEXT
RESTORE
FOR c = 0 TO 4
FOR b = 1 TO 12
READ a$
FOR a = 1 TO LEN(a$)
IF MID$(a$, a, 1) <> " " THEN LINE (a * 3 + c * 70, b * 5)-(a * 3 + c * 70 + 2, b * 5 + 4), b, BF
NEXT a
NEXT b
NEXT c
FOR b = 12 TO 1 STEP -1
FOR a = 15 TO 0 STEP -1
OUT &H3C8, (15 - a) + b
OUT &H3C9, a * 4
OUT &H3C9, a * 3
OUT &H3C9, a * 2
NEXT a
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT b
FOR a = 1 TO 72
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
OUT &H3C8, 15: OUT &H3C9, 33: OUT &H3C9, 0: OUT &H3C9, 20
FOR a = 198 TO 0 STEP -1
LINE (0, a)-(319, a), 15
LINE (0, a + 1)-(319, a + 1), 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
CLS
'TRANSPARENT BARS
DIM sint(360)
DIM rr(200)
DIM rg(200)
DIM rb(200)
pi = 3.141592653589793#: 'I remember 16 decimals but QB takes only 15..
SCREEN 13
OUT &H3C8, 0: FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a
FOR a = 0 TO 360: sint(a) = SIN(a * pi / 180) * 70 + 100: NEXT a
FOR a = 1 TO 200: rr(a) = 0: rg(a) = 0: rb(a) = 0: NEXT a
OUT &H3C8, 219: OUT &H3C9, 23: OUT &H3C9, 13: OUT &H3C9, 5
OUT &H3C9, 63: OUT &H3C9, 63: OUT &H3C9, 63
LINE (0, 0)-(319, 199), 219, BF
b = 0
FOR a = 0 TO 199
LINE (20, a + 1)-(300, a + 1), 220
LINE (21, a)-(299, a), a + 1
b = b + 1
IF b = 3 THEN
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8: b = 0
END IF
NEXT a
br = 32: bg = 0: bb = 64
DEF SEG = &HA000
y = 0
DO
IF y > 200 THEN LINE (y - 201, y - 201)-(320 - (y - 200), 200 - (y - 200)), 0, B
y = y + 1
br = br + 2: IF br > 360 THEN br = 0
bg = bg + 2: IF bg > 360 THEN bg = 0
bb = bb + 2: IF bb > 360 THEN bb = 0
'FOR a = 1 TO 200: rr(a) = 0: rg(a) = 0: rb(a) = 0: NEXT a
rr(sint(br)) = 63
rg(sint(bg)) = 63
rb(sint(bb)) = 63
FOR a = sint(br) - 1 TO sint(br) - 29 STEP -1: rr(a) = rr(a + 1) - 2: NEXT a
FOR a = sint(bg) - 1 TO sint(bg) - 29 STEP -1: rg(a) = rg(a + 1) - 2: NEXT a
FOR a = sint(bb) - 1 TO sint(bb) - 29 STEP -1: rb(a) = rb(a + 1) - 2: NEXT a
FOR a = sint(br) + 1 TO sint(br) + 29: rr(a) = rr(a - 1) - 2: NEXT a
FOR a = sint(bg) + 1 TO sint(bg) + 29: rg(a) = rg(a - 1) - 2: NEXT a
FOR a = sint(bb) + 1 TO sint(bb) + 29: rb(a) = rb(a - 1) - 2: NEXT a
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30
OUT &H3C8, 10
FOR a = 10 TO 190
OUT &H3C9, rr(a)
OUT &H3C9, rg(a)
OUT &H3C9, rb(a)
NEXT a
LOOP UNTIL INP(&H60) = 1 OR y > 300
' L™TKY
DIM mx(200)
DIM bx(200)
SCREEN 13
CLS
FOR l = 0 TO 199
FOR a = 0 TO 198: mx(a) = mx(a + 1): NEXT a
FOR a = 199 TO 1 STEP -1: bx(a) = bx(a - 1): NEXT a
mx(199) = SIN(l * .02) * 30
bx(0) = COS(l * .04) * 10
NEXT l
OUT &H3C8, 15: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
FOR a = 0 TO 199
c = bx(a) + mx(a) + 160
LINE (0, a)-(c, a), 15
NEXT a
DEF SEG = &HA000
DO
l = l + 1
IF l < 264 THEN OUT &H3C8, 15: OUT &H3C9, l - 200: OUT &H3C9, l - 200: OUT &H3C9, l - 200
IF l > 400 THEN
OUT &H3C8, 15
OUT &H3C9, 63 - (l - 400)
OUT &H3C9, 63 - (l - 400)
OUT &H3C9, 63 - (l - 400)
END IF
FOR a = 0 TO 198: mx(a) = mx(a + 1): NEXT a
FOR a = 199 TO 1 STEP -1: bx(a) = bx(a - 1): NEXT a
mx(199) = SIN(l * .02) * 30
bx(0) = COS(l * .04) * 10
b = 0
FOR a = 0 TO 199
c = bx(a) + mx(a) + 160
POKE b + c, 15
POKE b + c + 1, 15
POKE b + c + 2, 0
POKE b + c + 3, 0
b = b + 320
NEXT a
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30
LOOP UNTIL INP(&H60) = 1 OR l > 460
' VECTORS
points = 64
DIM orx(512): ' couple of stupid arrays..
DIM ory(512): ' This really don't need so
DIM orz(512): ' many but I didn't have
DIM nx(512): ' inspiration to change the
DIM ny(512): ' code...
DIM nz(512)
DIM tx(512)
DIM ty(512)
DIM tz(512)
DIM xp(512)
DIM yp(512)
DIM oxp(512)
DIM oyp(512)
d = 1
FOR c = 0 TO 7: FOR b = 0 TO 7: FOR a = 0 TO 7
orx(d) = (a - 2.9): ory(d) = (b - 2.9): orz(d) = (c - 2.9)
nx(d) = 0: ny(d) = 0: nz(d) = 0: tx(d) = 0: ty(d) = 0: tz(d) = 0
xp(d) = 0: yp(d) = 0: oxp(d) = 0: oyp(d) = 0
d = d + 1
NEXT: NEXT: NEXT
SCREEN 13
CLS
zdis = 1
xrot = 0
yrot = 0
zrot = 0
sc = .05
OUT &H3C8, 0: FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a
OUT &H3C8, 1
FOR a = 0 TO 63: OUT &H3C9, 63: OUT &H3C9, a: OUT &H3C9, a: NEXT a
FOR a = 63 TO 0 STEP -1: OUT &H3C9, 63: OUT &H3C9, a: OUT &H3C9, a: NEXT a
DEF SEG = &HA000
' This stuff is so damn slow .. ;)
' Well, this piece of code is based
' on mine first attempt to make
' vectors..
DO
xrot = xrot + .5
yrot = yrot + 1
zrot = zrot + 2
FOR a = 1 TO points
nx(a) = orx(a)
ny(a) = COS(xrot * sc) * ory(a) - SIN(xrot * sc) * orz(a)
nz(a) = SIN(xrot * sc) * ory(a) - COS(xrot * sc) * orz(a)
tx(a) = nx(a): ty(a) = ny(a): tz(a) = nz(a)
nx(a) = COS(yrot * sc) * tx(a) + SIN(yrot * sc) * tz(a)
ny(a) = ty(a)
nz(a) = -SIN(yrot * sc) * tx(a) + COS(yrot * sc) * tz(a)
tx(a) = nx(a): ty(a) = ny(a): tz(a) = nz(a)
nx(a) = COS(zrot * sc) * tx(a) - SIN(zrot * sc) * ty(a)
ny(a) = SIN(zrot * sc) * tx(a) + COS(zrot * sc) * ty(a)
nz(a) = tz(a) / 128 + zdis / 10
IF nz(a) = 0 THEN nz(a) = 1
oxp(a) = xp(a): oyp(a) = yp(a)
xp(a) = nx(a) / nz(a) + 160
yp(a) = ny(a) / nz(a) + 100
PSET (oxp(a), oyp(a)), 0
PSET (xp(a), yp(a)), xrot
NEXT a
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 63
LOOP UNTIL INP(&H60) = 1 OR xrot > 128
'STARFIELD
points = 60
DIM px(points)
DIM py(points)
DIM pz(points)
DIM pxp(points)
DIM pyp(points)
speed = 5
SCREEN 13
CLS
OUT &H3C8, 1
FOR a = 63 TO 1 STEP -1
OUT &H3C9, a
OUT &H3C9, a
OUT &H3C9, a
NEXT a
l = 0
FOR a = 1 TO points
px(a) = 0: py(a) = 0
pz(a) = INT(RND * 100) + speed * 4
pxp(a) = 0: pyp(a) = 0
NEXT a
laskuri = 0
'I don't know why this is so slow but I think
'that it could be much faster .. don't know
'how with BASIC..
lups2:
laskuri = laskuri + 1
FOR a = 1 TO points
IF (px(a) <> 0) AND (py(a) <> 0) THEN PSET (pxp(a), pyp(a)), 0
pz(a) = pz(a) - speed
pxp(a) = px(a) / pz(a) + 159
pyp(a) = py(a) / pz(a) + 99
IF pz(a) < speed * 2 THEN
l = l + 1
px(a) = INT(RND * 3000) - 1500
py(a) = INT(RND * 3000) - 1500
pz(a) = 120 + speed
pxp(a) = px(a) / pz(a) + 159
pyp(a) = py(a) / pz(a) + 99
END IF
IF px(a) <> 0 AND py(a) <> 0 THEN PSET (pxp(a), pyp(a)), pz(a) / 3
NEXT a
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0: 'vrc
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
' OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30
IF INP(&H60) <> 1 AND laskuri < 250 THEN GOTO lups2
'UNLIMITED BOBS
SCREEN 7
b = 1: yi = 0: a = 100: fr = 1: xkr = 145: ykr = 85: ll = 1
OUT &H3C8, 1
OUT &H3C9, 15: OUT &H3C9, 10: OUT &H3C9, 31
OUT &H3C9, 24: OUT &H3C9, 19: OUT &H3C9, 48
OUT &H3C9, 31: OUT &H3C9, 26: OUT &H3C9, 63
OUT &H3C9, 24: OUT &H3C9, 19: OUT &H3C9, 48
OUT &H3C9, 15: OUT &H3C9, 10: OUT &H3C9, 31
coffee = 0
DO
coffee = coffee + 1
PCOPY b, 0: 'Stupid way to change pages ..
' (I didn't have time to try some
' "inline assembly" stuff, since
' I'm not so familiar with QB's
' features)..
'I believe that PCOPY could be as slow as
'MOVE (mem[$a000:8000],mem[$a000:0],8000);
a = a + 1
x = SIN(a * .03) * xkr + 150
y = COS(a * .046) * ykr + 90
x2 = SIN((a - 294) * .03) * xkr + 150
y2 = COS((a - 294) * .046) * ykr + 90
'PSET (x + t1, y + t2), 15
IF a < 470 THEN
CIRCLE (x + 8, y + 8), 8, 1: 'Draw a circle
CIRCLE (x + 8, y + 8), 7, 2
CIRCLE (x + 8, y + 8), 6, 3
CIRCLE (x + 8, y + 8), 5, 2
CIRCLE (x + 8, y + 8), 4, 1
END IF
CIRCLE (x2 + 8, y2 + 8), 8, 0: 'Clear one circle
CIRCLE (x2 + 8, y2 + 8), 7, 0
CIRCLE (x2 + 8, y2 + 8), 6, 0
CIRCLE (x2 + 8, y2 + 8), 5, 0
CIRCLE (x2 + 8, y2 + 8), 4, 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0: 'vrc
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
PCOPY 0, b
b = b + 1
IF b = 8 THEN b = 1
LOOP UNTIL INP(&H60) = 1 OR coffee = 670
'SHADEBOBS
SCREEN 13
CLS
DIM riv(200)
FOR a = 0 TO 199: riv(a) = a * 320: NEXT a
OUT &H3C8, 0: FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a
OUT &H3C8, 0
FOR a = 0 TO 15: OUT &H3C9, a * 2: OUT &H3C9, 0: OUT &H3C9, 0: NEXT a
FOR a = 0 TO 15: OUT &H3C9, a * 2 + 32: OUT &H3C9, 0: OUT &H3C9, 0: NEXT a
FOR a = 0 TO 31: OUT &H3C9, 63: OUT &H3C9, a * 2: OUT &H3C9, a * 2: NEXT a
FOR a = 0 TO 31: OUT &H3C9, 63 - a: OUT &H3C9, 63: OUT &H3C9, 63 - a: NEXT a
FOR a = 0 TO 31: OUT &H3C9, a + 32: OUT &H3C9, 63 - a * 2: OUT &H3C9, a + 32: NEXT a
FOR a = 0 TO 31: OUT &H3C9, 63 - a: OUT &H3C9, 0: OUT &H3C9, 63: NEXT a
FOR a = 0 TO 31: OUT &H3C9, a + 32: OUT &H3C9, a: OUT &H3C9, 63 - a * 2: NEXT a
FOR a = 0 TO 31: OUT &H3C9, 63: OUT &H3C9, a + 32: OUT &H3C9, 0: NEXT a
FOR a = 0 TO 31: OUT &H3C9, 63 - a * 2: OUT &H3C9, 63 - a * 2: OUT &H3C9, 0: NEXT a
tea = 1
DEF SEG = &HA000
DO
tea = tea + 1
x = SIN(tea * .032) * 20 + SIN(tea * .1) * 30 + 160
y = COS(tea * .02) * 10 + COS(tea * .1) * 30 + 100
FOR b = y - 16 TO y + 16: FOR a = x - 16 TO x + 16
POKE riv(b) + a, PEEK(riv(b) + a) + 2
'Arf, that's SLOW..
NEXT a: NEXT b
'OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
'DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
'DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
'OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 30
LOOP UNTIL (INP(&H60) = 1) OR tea > 700
DIM tx1(5) AS STRING
DIM tx2(5) AS STRING
tx1(1) = "³ THIS IS THE LAST PART OF THIS INTRO. ³"
tx1(2) = "³ ³"
tx1(3) = "³ Why all effects in this ³"
tx1(4) = "³ intro were so slow ?! ³"
tx1(5) = "³ because...³"
tx2(1) = "³...THIS IS PURE QUICKBASIC 4.0 !! ³"
tx2(2) = "³ so greetings go ONLY to B-WARE.. ³"
tx2(3) = "³ ³"
tx2(4) = "³ Credits: removed from this version ³"
tx2(5) = "³ - no music in this version - ³"
SCREEN 13
CLS
OUT &H3C8, 0
FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a
FOR b = 0 TO 4: FOR a = 1 TO 40
LOCATE 10 + b, a
COLOR b * 40 + a
PRINT MID$(tx1(b + 1), a, 1)
NEXT a: NEXT b
FOR a = 1 TO 200
FOR b = 31 TO 0 STEP -1
OUT &H3C8, a + (31 - b)
OUT &H3C9, b * 2
OUT &H3C9, b * 1.5
OUT &H3C9, b
NEXT b
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
FOR a = 1 TO 72
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
FOR a = 63 TO 0 STEP -1
OUT &H3C8, 1
FOR b = 1 TO 200
OUT &H3C9, a: OUT &H3C9, a * .75: OUT &H3C9, a * .5
NEXT b
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
OUT &H3C8, 0
FOR a = 0 TO 767: OUT &H3C9, 0: NEXT a
FOR b = 0 TO 4: FOR a = 1 TO 40
LOCATE 10 + b, a
COLOR b * 40 + a
PRINT MID$(tx2(b + 1), a, 1)
NEXT a: NEXT b
'very simple "writer"
FOR a = 1 TO 200
FOR b = 31 TO 0 STEP -1
OUT &H3C8, a + (31 - b)
OUT &H3C9, b
OUT &H3C9, b * 1.5
OUT &H3C9, b * 2
NEXT b
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
FOR a = 1 TO 146
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
FOR a = 63 TO 0 STEP -1
OUT &H3C8, 1
FOR b = 1 TO 200
OUT &H3C9, a * .5: OUT &H3C9, a * .75: OUT &H3C9, a
NEXT b
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 0
DO: LOOP UNTIL (INP(&H3DA) AND 8) = 8
NEXT a
SCREEN 0
WIDTH 80
COLOR 9: PRINT "Pure "; : COLOR 6: PRINT "SYMPTOM";
COLOR 9: PRINT " production of year "; : COLOR 2: PRINT "1994";
COLOR 9: PRINT "."
'
'
'
' That's it! And I want to quote our famous poem Gimle :
' "Hope you didn't puke too much!"
'
'
'Onko tuossa nyt oma käyttöjärjestelmä (tai mahdollisesti GUI) mukana kun se on noin pitkä
Käyttis noin lyhyellä rivimäärällä? LOL!!!
Ei tuo ole käyttistä nähnytkään. Mutta hauska ja hieno QBasic-demo silti.
No entäs sitten se GUI
Wow, aikamoinen demo! :)
Kui vaatii useita kymmeniä tuhansia rivejä koodia
siis gui
Vähän oli hieno!
Huh huh...tossa oli sitä jotain
Hieno! Tuosta voi jopa olla hyötyä jollekin =]
Vau... Onnetteluni sille, joka kykeni tuon luomaan...
-Grey-
Siisti! En vaan mä osaisi!
Siisti ja upee samalla kertaa.
*****
Viisi tähteä multa. Enpä olisi uskonut, että QB:llä sais tuommoista vielä aikaan. Varsinkin sen rinkulamadon jälkeen tuleva juttu on tosi hieno.
miten noita voi kopioida qb:iin
Kivan näköinen, mutta ei varmaan tule käytettyä missään omissa jutuissa (lähinnä koon takia)
Ihan hieno. Oon ladannu tän kerran muualtakin kun kaveri kehu että on hieno. Se sano etten varmasti pystyis tekemään mitään niistä efekteistä. Ne, jotka on nähny mun koodivinkkejä, saavat esittää asiasta omat arvionsa.
Löysin tän saman jostain... Ei ny vaa tuu mieleen mistä.
Vieläkin oon ihan...ei uskois. Kuka ton o JAKSANU vääntää varmaa monen viikon ellei kuukauden homma---
lainaus:
Vieläkin oon ihan...ei uskois. Kuka ton o JAKSANU vääntää varmaa monen viikon ellei kuukauden homma---
No arvaa, ajattelenko minä samaa?
Mä oon ihanku haulikolla päähän lyöty... eiku...
lainaus:
Vieläkin oon ihan...ei uskois. Kuka ton o JAKSANU vääntää varmaa monen viikon ellei kuukauden homma---
Pojat tekee ihan harrastukseks näytä, kilpaileevat grouppien kesken kellä on vuoden parhaat demot/introt. :)
Perfect'o!
kuka tuommoosen osaa qbeellä teherä.