Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
So I was bored at 6am to 8am this morning
#1
Been up all night... Heres what I made..

All three are submitted to the spam mod contest over at QBTK.. no stealing =)

Binary thingy, with double buffering and nice colors =), 30 lines.
[syntax="QBASIC"]SCREEN 13
DIM buffer(32002) AS INTEGER
GET (0, 0)-(319, 199), buffer
DEF SEG = VARSEG(buffer(2))
DO
a = (a + 1) MOD 65536
'IF by >= 187 AND bx >= 315 THEN 'unrem me =)
PUT (0, 0), buffer, PSET
FOR g = 0 TO 64000
POKE VARPTR(buffer(2)) + g, 0
NEXT
'END IF 'and me, for a different effect =)
IF bx >= 316 THEN by = (by + 4) MOD 190
bx = (bx + 4) MOD 320
IF a AND 16384 THEN POKE VARPTR(buffer(2)) + (bx + 0) + (by + 1) * 320&, 32 + a MOD 32
IF a AND 8192 THEN POKE VARPTR(buffer(2)) + (bx + 0) + (by + 2) * 320&, 32 + a MOD 32
IF a AND 4096 THEN POKE VARPTR(buffer(2)) + (bx + 0) + (by + 3) * 320&, 32 + a MOD 32
IF a AND 2048 THEN POKE VARPTR(buffer(2)) + (bx + 1) + (by + 0) * 320&, 32 + a MOD 32
IF a AND 1024 THEN POKE VARPTR(buffer(2)) + (bx + 1) + (by + 1) * 320&, 32 + a MOD 32
IF a AND 512 THEN POKE VARPTR(buffer(2)) + (bx + 1) + (by + 2) * 320&, 32 + a MOD 32
IF a AND 256 THEN POKE VARPTR(buffer(2)) + (bx + 1) + (by + 3) * 320&, 32 + a MOD 32
IF a AND 128 THEN POKE VARPTR(buffer(2)) + (bx + 2) + (by + 0) * 320&, 32 + a MOD 32
IF a AND 64 THEN POKE VARPTR(buffer(2)) + (bx + 2) + (by + 1) * 320&, 32 + a MOD 32
IF a AND 32 THEN POKE VARPTR(buffer(2)) + (bx + 2) + (by + 2) * 320&, 32 + a MOD 32
IF a AND 16 THEN POKE VARPTR(buffer(2)) + (bx + 2) + (by + 3) * 320&, 32 + a MOD 32
IF a AND 8 THEN POKE VARPTR(buffer(2)) + (bx + 3) + (by + 0) * 320&, 32 + a MOD 32
IF a AND 4 THEN POKE VARPTR(buffer(2)) + (bx + 3) + (by + 1) * 320&, 32 + a MOD 32
IF a AND 2 THEN POKE VARPTR(buffer(2)) + (bx + 3) + (by + 2) * 320&, 32 + a MOD 32
IF a AND 1 THEN POKE VARPTR(buffer(2)) + (bx + 3) + (by + 3) * 320&, 32 + a MOD 32
LOOP WHILE INKEY$ = ""[/syntax]

Worm thingy.. AI like stuff, something.. err. thingy... 24 lines
[syntax="QBASIC"]SCREEN 13
DIM px(10000), py(10000), pc(10000) AS INTEGER, pxm(10000), pym(10000)
RANDOMIZE TIMER
FOR a = 0 TO 50
px(a) = 160
py(a) = 100
pxm(a) = -1 + 2 * RND
pym(a) = -1 + 2 * RND
pc(a) = 16 * RND
NEXT
WHILE INKEY$ = ""
targetx = -50 + 420 * RND
targety = -50 + 300 * RND
FOR a = 0 TO 50
IF px(a) < targetx AND pxm(a) < 1 THEN pxm(a) = pxm(a) + .1
IF px(a) > targetx AND pxm(a) > -1 THEN pxm(a) = pxm(a) - .1
IF py(a) < targety AND pym(a) < 1 THEN pym(a) = pym(a) + .1
IF py(a) > targety AND pym(a) > -1 THEN pym(a) = pym(a) - .1
px(a) = px(a) + pxm(a)
py(a) = py(a) + pym(a)
CIRCLE (px(a), py(a)), 4, 32 + pc(a)
pc(a) = (pc(a) + 1) MOD 64
NEXT
WEND[/syntax]


More worms, 28 lines, evolution of the above:
[syntax="QBASIC"]SCREEN 13
DIM px(1000), py(1000), pc(1000) AS SINGLE, pxm(1000), pym(1000), targetx(1000), targety(1000)
FOR a = 0 TO 50
px(a) = 160
py(a) = 100
pxm(a) = -1 + 2 * RND
pym(a) = -1 + 2 * RND
pc(a) = 16 * RND
NEXT
WHILE INKEY$ = ""
IF TIMER >= t! THEN
FOR h = 0 TO 50
targetx(h) = -100 + 520 * RND
targety(h) = -100 + 400 * RND
NEXT
t! = TIMER + .05
END IF
FOR a = 0 TO 50
IF px(a) < targetx(a \ 5) AND pxm(a) < 1 THEN pxm(a) = pxm(a) + .05
IF px(a) > targetx(a \ 5) AND pxm(a) > -1 THEN pxm(a) = pxm(a) - .05
IF py(a) < targety(a \ 5) AND pym(a) < 1 THEN pym(a) = pym(a) + .05
IF py(a) > targety(a \ 5) AND pym(a) > -1 THEN pym(a) = pym(a) - .05
px(a) = px(a) + pxm(a)
py(a) = py(a) + pym(a)
CIRCLE (px(a), py(a)), 4, 32 + pc(a)
pc(a) = (pc(a) + .01) MOD 32
NEXT
WEND[/syntax]

Have fun watching them...
Reply
#2
Was the first one supposed to just be a small little colour line going by at the top of the screen? I dont get it...


The 2nd worms one is nice =), I like the way that they move, in straight lines then curving round etc. Very smooth Smile
Reply
#3
The first one is drawing some binary numbers, nothing special at all, rather boring... But I like it =)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)