|
|
This thread is locked; no one can reply to it.
|
1
2
|
| QBasic Nerd |
|
BAF
Member #2,981
December 2002
|
I ran across this video on youtube, and it ended up being a lot better than I thought it would be at the beginning. |
|
Johan Halmén
Member #1,550
September 2001
|
Same here ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest. |
|
Neil Black
Member #7,867
October 2006
|
I think he forgot to back-up his brain. Which only adds to the hilariousness. This made me stop and think, why don't I make back-ups? What's wrong with me? Am I an idiot? How do I do it? Do I just copy important files to somewhere else (not on the same hard-drive)? Next time my system screws up I'd like to be able to fix it myself.
|
|
kazzmir
Member #1,786
December 2001
|
Quote: Do I just copy important files to somewhere else (not on the same hard-drive)? Next time my system screws up I'd like to be able to fix it myself. How did you manage to figure out how the mouse worked? |
|
Matthew Leverton
Supreme Loser
January 1999
|
I was a QBasic Nerd once. Then I became a QuickBasic 4.5 Nerd. {"name":"monopoly.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/9\/593ad0fe2d661adaa0f6cd1508e4c826.png","w":652,"h":547,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/9\/593ad0fe2d661adaa0f6cd1508e4c826"} It's hard to imagine that is 14 years old now. |
|
Neil Black
Member #7,867
October 2006
|
Quote: How did you manage to figure out how the mouse worked? Well, the first day of reading in my Intro to Programming Basic class had all this neat stuff about how to use a mouse, like what single and double clicking is... I really wish that was a joke.
|
|
Mokkan
Member #4,355
February 2004
|
I actually enjoyed that video
|
|
Simon Parzer
Member #3,330
March 2003
|
Quote: I can totally relate to the whole 'lost all my programs' thing.
I can't. When I got my first computer (a 286) I already backed up all my "important" stuff on 5.25" floppies. And the weird thing about that - most of them still work. QBasic brings back memories of course... my first text adventure. |
|
Archon
Member #4,195
January 2004
|
Heh. I had to help numerous people (mostly girls) in my QBASIC class back in grade 9. The teacher got pissed at me because the students weren't learning anything when I fixed their errors. |
|
OICW
Member #4,069
November 2003
|
Nice video Quote: This made me stop and think, why don't I make back-ups?
Same here [My website][CppReference][Pixelate][Allegators worldwide][Who's online] |
|
Yodhe23
Member #8,726
June 2007
|
wanders off and makes backup of his sources files www.justanotherturn.com |
|
Goalie Ca
Member #2,579
July 2002
|
I saw that video on irc last night.. i laughed. that guy has a lot of talent. I learned qbasic from the f1 help file. Hahah. ------------- |
|
Neil Black
Member #7,867
October 2006
|
Quote: The teacher got pissed at me because the students weren't learning anything when I fixed their errors. My teacher was awamzed when I went online and learned how to do things he couldn't, like graphics.
|
|
deps
Member #3,858
September 2003
|
I corrected the errors my teacher did, and we didn't even have qbasic classes. Or programming classes. Hell, we had a computer room, but no classes to teach us about computers. I feel old. |
|
Neil Black
Member #7,867
October 2006
|
Quote: no classes to teach us about computers. At least you school wasn't like mine. They gave the class to a math teacher. He did a pretty awesome job with it, though.
|
|
Rampage
Member #3,035
December 2002
|
I really like those digital dice. I lost all my QBasic programs... didn't feel like they were worth keeping, specially after discovering C. -R |
|
Onewing
Member #6,152
August 2005
|
Nostalgia. I love my humble beginnings in Qbasic. And the like the rest of you, I quickly surpassed the class and teacher because I was so excited to get started in programming. Plus, there was a hot cheerleader taking the class and so I made sure to use my nerdy skills to impress her, consequently blowing any chance of actually getting any where near her. Ah, good times. ------------ |
|
Myrdos
Member #1,772
December 2001
|
I had a pile of Qbasic programs from my highschool days, but I lost every one of them. They were backed up and everything, too. On SyQuest removable cartridges. A pity my SyQuest drive broke, and I didn't feel like spending 300 dollars on a new one. __________________________________________________ |
|
Thomas Harte
Member #33
April 2000
|
I'm not a big fan of QBasic, coming to it from other hardware-tied BASICs just made me think that it was really messy —— a not brilliant technology stretched too far. Like the whole DOS experience, really.
Nevertheless, I did write one personally significant program in QBasic:
[img http://members.allegro.cc/ThomasHarte/shots/AnarchyQBASIC.png]
That's now 12 or so years old. And looking at [url http://members.allegro.cc/ThomasHarte/files/anarchyQBASIC/AnarchyQBASICSource.zip]the source code[/url] makes me weep.
EDIT: forget the link! The full source for my sole interesting QBasic program is below. I dare others to post their own, if they have any.
leave = 0: PI = 3.141592654#: zoom = 100: moves = 1: change = 6
major = 3.2: minor = (1 / change) * major: crswiz = 9: adder = 2
filled = 1: bcol = 2: lcol = 14: angle = 270
DIM viewx(4), viewy(4), gone(7)
DIM cirx(9), ciry(9), wizx(7), wizy(7), gridx1(15), gridy1(15)
DIM gridx2(15), gridy2(15), gridx3(15), gridy3(15), gridx4(15), gridy4(15)
DIM psadangle(360), pcadangle(360), curxs(4), curys(4), col(7)
DIM wiz(7, 50)
TIMER ON
FOR temp = 0 TO 360
radangle = (temp * PI) / 180
psadangle(temp) = minor * (SIN(radangle))
pcadangle(temp) = major * (COS(radangle))
NEXT temp
GOSUB 240: REM start variables
DO WHILE leave < 1
GOSUB 30: REM keypresses
GOSUB 40: REM update
GOSUB 10: REM point workout
GOSUB 20: REM display
LOOP
GOTO 900: REM end
10 REM pointworkout
IF angle < 0 THEN angle = 360 + angle
IF angle > 360 THEN angle = angle - 360
FOR temp = 0 TO 3
ang = angle + (temp * 90)
IF ang < 0 THEN ang = 360 + ang
IF ang > 360 THEN ang = ang - 360
viewx(temp) = x - (zoom * pcadangle(ang))
viewy(temp) = y - (zoom * psadangle(ang))
NEXT temp
tx1 = (viewx(0) - viewx(1)) / 150
ty1 = (viewy(0) - viewy(1)) / 150
tx2 = (viewx(1) - viewx(2)) / 150
ty2 = (viewy(1) - viewy(2)) / 150
tx3 = (viewx(2) - viewx(3)) / 150
ty3 = (viewy(2) - viewy(3)) / 150
tx4 = (viewx(3) - viewx(0)) / 150
ty4 = (viewy(3) - viewy(0)) / 150
FOR temp = 0 TO 15
temp10 = temp * 10
gridx1(temp) = viewx(0) - (tx1 * temp10)
gridy1(temp) = viewy(0) - (ty1 * temp10)
gridx2(temp) = viewx(1) - (tx2 * temp10)
gridy2(temp) = viewy(1) - (ty2 * temp10)
gridx3(temp) = viewx(2) - (tx3 * temp10)
gridy3(temp) = viewy(2) - (ty3 * temp10)
gridx4(temp) = viewx(3) - (tx4 * temp10)
gridy4(temp) = viewy(3) - (ty4 * temp10)
NEXT temp
GOSUB 140: REM cursor
RETURN
20 REM display
SCREEN mode, 1, actscr, visscr
tcol = col(turn)
COLOR 14, bkcol
IF filled = 0 THEN GOTO 21
FOR temp = 0 TO 2
LINE (viewx(temp), viewy(temp))-(viewx(temp + 1), viewy(temp + 1))
NEXT temp
LINE (viewx(3), viewy(3))-(viewx(0), viewy(0))
PAINT (x, y), bcol, 14
21 COLOR lcol
FOR temp = 0 TO 15
tempy = 15 - temp
LINE (gridx1(temp), gridy1(temp))-(gridx3(tempy), gridy3(tempy))
LINE (gridx2(temp), gridy2(temp))-(gridx4(tempy), gridy4(tempy))
NEXT temp
IF moving = 1 THEN GOTO 25
IF filled = 1 THEN GOTO 22
COLOR col(turn)
LINE (curxs(0), curys(0))-(curxs(1), curys(1))
LINE (curxs(1), curys(1))-(curxs(2), curys(2))
LINE (curxs(2), curys(2))-(curxs(3), curys(3))
LINE (curxs(3), curys(3))-(curxs(0), curys(0))
22 IF filled = 1 THEN PAINT (curxs(4), curys(4)), col(turn), 14
25 FOR cwiz = 0 TO players - 1
IF gone(cwiz) = 1 THEN GOTO 23
GOSUB 50
COLOR col(cwiz)
IF cwiz <> turn THEN GOTO 24
COLOR 15
CIRCLE (cirx(0), ciry(0)), wiz(cwiz, 4) * zoom
COLOR col(cwiz)
IF start = 0 THEN PAINT (cirx(0), ciry(0)), 15, 15
24 CIRCLE (cirx(1), ciry(1)), wiz(cwiz, 8) * zoom
CIRCLE (cirx(0), ciry(0)), wiz(cwiz, 4) * zoom
CIRCLE (cirx(2), ciry(2)), wiz(cwiz, 12) * zoom
CIRCLE (cirx(3), ciry(3)), wiz(cwiz, 16) * zoom
CIRCLE (cirx(4), ciry(4)), wiz(cwiz, 20) * zoom
CIRCLE (cirx(5), ciry(5)), wiz(cwiz, 24) * zoom
LINE (cirx(0), ciry(0))-(cirx(1), ciry(1))
LINE (cirx(0), ciry(0))-(cirx(2), ciry(2))
LINE (cirx(0), ciry(0))-(cirx(3), ciry(3))
LINE (cirx(0), ciry(0))-(cirx(4), ciry(4))
23 NEXT cwiz
GOSUB 200
COLOR 15
LINE (180, 0)-(180, 40)
LINE (0, 40)-(180, 40)
IF cmode = 0 THEN LOCATE (2), (2): PRINT "Rotate / Scale"
IF cmode = 1 THEN LOCATE (2), (2): PRINT "Cursor Movement"
IF cmode = 2 THEN LOCATE (2), (2): PRINT "Wizard Movement"
LINE (0, 0)-(scrx, 0)
LINE (scrx, 0)-(scrx, scry)
LINE (scrx, scry)-(0, scry)
LINE (0, scry)-(0, 0)
SCREEN mode, 1, visscr, actscr
CLS
IF actscr = 0 THEN actscr = 1: visscr = 0: RETURN
IF actscr = 1 THEN actscr = 0: visscr = 1: RETURN
30 REM keypresses
31 DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
IF INKEY$ <> "" GOTO 31
GOTO 33
32 a$ = INKEY$
33 oldx = wizx(turn)
oldy = wizy(turn)
IF a$ = CHR$(27) THEN leave = 1
IF a$ = "0" THEN GOSUB 130: REM change turn
IF a$ = "1" THEN GOSUB 120: GOSUB 90: REM down/left
IF a$ = "2" THEN GOSUB 120: REM down
IF a$ = "3" THEN GOSUB 120: GOSUB 100: REM down/right
IF a$ = "4" THEN GOSUB 90: REM left
IF a$ = "5" THEN GOSUB 160: REM movement
IF a$ = "6" THEN GOSUB 100: REM right
IF a$ = "7" THEN GOSUB 110: GOSUB 90: REM up/left
IF a$ = "8" THEN GOSUB 110: REM up
IF a$ = "9" THEN GOSUB 110: GOSUB 100: REM up/right
IF a$ = "." THEN IF cmode = 1 THEN cmode = 0: ELSE cmode = cmode + 1
IF a$ = "b" THEN LET bcol = bcol + 1: IF bcol = 16 THEN bcol = 1
IF a$ = "k" THEN LET bkcol = bkcol + 1: IF bkcol = 16 THEN bkcol = 1
IF a$ = "f" THEN filled = filled + 1: IF filled = 2 THEN filled = 0
IF a$ = "*" THEN GOSUB 210: REM character stats screen . . . by Jay
IF a$ = "+" THEN IF change >= 6 THEN change = change - .5: GOSUB 230
IF a$ = "-" THEN IF change <= 15 THEN change = change + .5: GOSUB 230
IF a$ = "#" THEN DO: LOOP UNTIL INKEY$ <> ""
RETURN
40 REM update
x = acr + halfx
y = dwn + halfy
crswiz = 9
FOR temp = 0 TO players - 1
IF curx = wizx(temp) AND cury = wizy(temp) THEN crswiz = temp: temp = players - 1
NEXT temp
41 RETURN
50 REM WIZARD SYNTAX
wizxtx = wizx(cwiz) * tx1
wizxty = wizy(cwiz) * tx2
wizytx = wizx(cwiz) * ty1
wizyty = wizy(cwiz) * ty2
temp2 = 0
FOR temp = 0 TO wiz(cwiz, 0) STEP 4
cirx(temp2) = viewx(0) - wizxtx + (wiz(cwiz, temp + 1) * tx1) - (wizxty + (wiz(cwiz, temp + 2) * tx2))
ciry(temp2) = viewy(0) - wizytx + (wiz(cwiz, temp + 1) * ty1) - (wizyty + (wiz(cwiz, temp + 2) * ty2)) - wiz(cwiz, temp + 3) * zoom
temp2 = temp2 + 1
NEXT temp
RETURN
90 REM left
IF cmode = 0 THEN angle = angle - adder: RETURN
IF cmode = 1 AND NOT curn = 1 AND curx < 136 THEN curx = curx + 10: RETURN
IF cmode = 2 AND wizx(turn) < 140 THEN wizx(turn) = wizx(turn) + 10: done = done + 1
RETURN
100 REM right
IF cmode = 0 THEN angle = angle + adder: RETURN
IF cmode = 1 AND NOT curn = 1 AND curx > 14 THEN curx = curx - 10: RETURN
IF cmode = 2 AND wizx(turn) > 9 THEN wizx(turn) = wizx(turn) - 10: done = done + 1
RETURN
110 REM up
IF cmode = 0 AND zoom < 900 THEN zoom = zoom + 10: RETURN
IF cmode = 1 AND NOT curn = 1 AND cury < 136 THEN cury = cury + 10: RETURN
IF cmode = 2 AND wizy(turn) < 140 THEN wizy(turn) = wizy(turn) + 10: done = done + 1
RETURN
120 REM down
IF cmode = 0 AND zoom > 50 THEN zoom = zoom - 10: RETURN
IF cmode = 1 AND NOT curn = 1 AND cury > 14 THEN cury = cury - 10: RETURN
IF cmode = 2 AND wizy(turn) > 9 THEN wizy(turn) = wizy(turn) - 10: done = done + 1
RETURN
130 REM change turn
131 turn = turn + 1: IF turn > players - 1 THEN turn = 0
IF gone(turn) = 1 THEN GOTO 131
DO
a$ = INKEY$
LOOP UNTIL a$ = "": REM clear buffer
curx = wizx(turn): cury = wizy(turn)
RETURN
140 REM cursor
IF filled = 1 THEN GOTO 141
curxs(0) = (viewx(0) - ((curx - 5) * tx1)) - (cury + 5) * tx2
curys(0) = (viewy(0) - ((curx - 5) * ty1)) - (cury + 5) * ty2
curxs(1) = (viewx(0) - ((curx + 5) * tx1)) - (cury + 5) * tx2
curys(1) = (viewy(0) - ((curx + 5) * ty1)) - (cury + 5) * ty2
curxs(2) = (viewx(0) - ((curx + 5) * tx1)) - (cury - 5) * tx2
curys(2) = (viewy(0) - ((curx + 5) * ty1)) - (cury - 5) * ty2
curxs(3) = (viewx(0) - ((curx - 5) * tx1)) - (cury - 5) * tx2
curys(3) = (viewy(0) - ((curx - 5) * ty1)) - (cury - 5) * ty2
RETURN
141 curxs(4) = (viewx(0) - ((curx + 0) * tx1)) - (cury + 0) * tx2
curys(4) = (viewy(0) - ((curx + 0) * ty1)) - (cury + 0) * ty2
RETURN
150 REM movement (not)
upx = wizx(turn) - (curx + 5)
upy = wizy(turn) - (cury + 5)
curn = 1
IF curx < wizx(turn) THEN GOTO 152
FOR a = wizx(turn) TO curx + 5 STEP 5
wizx(turn) = a
GOSUB 10: REM pointworkout
GOSUB 20: REM display
GOSUB 30: REM keypresses
NEXT a: GOTO 151
152 FOR a = wizx(turn) TO curx + 5 STEP -5
wizx(turn) = a
GOSUB 10: REM pointworkout
GOSUB 20: REM display
GOSUB 30: REM keypresses
NEXT a
151 IF cury > wizy(turn) THEN GOTO 153
FOR b = wizy(turn) TO cury + 5 STEP -5
wizy(turn) = b
GOSUB 10: REM pointworkout
GOSUB 20: REM display
GOSUB 30: REM keypresses
NEXT b: GOTO 154
153 FOR b = wizy(turn) TO cury + 5 STEP 5
wizy(turn) = b
GOSUB 10: REM pointworkout
GOSUB 20: REM display
GOSUB 30: REM keypresses
NEXT b
154 curn = 0
RETURN
160 REM Real Movement
IF crswiz = turn THEN GOTO 161
RETURN
161 done = 0: leaver = 0
moving = 1
DO WHILE leaver = 0
cmode = 2
GOSUB 30: REM keypresses
GOSUB 170: REM collision detection
GOSUB 40: REM update
GOSUB 10: REM pointworkout
GOSUB 20: REM display
GOSUB 170: REM collision detection
IF done >= moves THEN leaver = 1
LOOP
GOSUB 170: REM collision detect
cmode = 1: moving = 0
GOSUB 130: REM change turn
RETURN
170 REM collision detection
FOR a = 0 TO players - 1
IF wizx(turn) = wizx(a) AND wizy(turn) = wizy(a) AND NOT a = turn AND NOT gone(a) = 1 THEN playhit = a: a = players - 1: GOSUB 180: REM collision
NEXT a
RETURN
180 REM collision
BEEP
wizx(turn) = oldx: wizy(turn) = oldy: deady = 0
fightadd1 = INT(RND * 13): fightadd2 = INT(RND * 15)
IF wizatt(turn) + fightadd1 > 2 + wizdef(playhit) + fightadd2 THEN dead = playhit: deady = 1
IF wizatt(turn) + fightadd1 > wizdef(playhit) + fightadd2 THEN wizdef(playhit) = wizdef(playhit) - 1: IF wizdef(playhit) = 0 THEN dead = playhit: deady = 1
IF deady = 1 THEN GOSUB 190: gone(playhit) = 1
done = moves
nomore = 0
FOR temp = 0 TO players - 1
handz(temp) = zoom * .3
IF gone(temp) = 1 THEN nomore = nomore + 1
IF gone(temp) = 0 THEN winner = temp
NEXT temp
IF nomore = players - 1 THEN GOSUB 250: REM winning
RETURN
190 REM DEATH
FOR tempmov = 0 TO 6
FOR temper = 0 TO 9
wiz(playhit, temper * 4) = wiz(playhit, temper * 4) + .09
NEXT temper
GOSUB 40: REM update
GOSUB 20: REM display
NEXT tempmov
FOR tempmov = 0 TO 4
FOR temper = 0 TO 9
wiz(playhit, temper * 4) = wiz(playhit, temper * 4) - .18
IF wiz(playhit, temper * 4) < 0 THEN wiz(playhit, temper * 4) = 0
NEXT temper
GOSUB 40: REM update
GOSUB 20: REM display
NEXT tempmov
FOR tempmov = 0 TO 3
FOR temper = 0 TO 9
wiz(playhit, temper * 3) = wiz(playhit, temper * 3) + .5
NEXT temper
GOSUB 40: REM update
GOSUB 20: REM display
NEXT tempmov
BEEP: BEEP: BEEP
RETURN
200 REM BLOKEY BLOKEY
COLOR 15
LINE (scrx - 50, scry - 57)-(scrx - 50, scry)
LINE (scrx - 50, scry - 57)-(scrx, scry - 57)
PAINT (scrx - 45, scry - 55), 0, 15
COLOR tcol
CIRCLE (scrx - 21, scry - 20), 8
CIRCLE (scrx - 6, scry - 35), 3
CIRCLE (scrx - 42, scry - 20), 3
CIRCLE (scrx - 15, scry - 5), 3
CIRCLE (scrx - 27, scry - 5), 3
CIRCLE (scrx - 21, scry - 30), 5
LINE (scrx - 20, scry - 20)-(scrx - 6, scry - 35)
LINE (scrx - 20, scry - 20)-(scrx - 42, scry - 20)
LINE (scrx - 20, scry - 20)-(scrx - 15, scry - 5)
LINE (scrx - 20, scry - 20)-(scrx - 27, scry - 5)
LINE (scrx - 6, scry - 55)-(scrx - 3, scry - 35)
LINE (scrx - 3, scry - 35)-(scrx - 9, scry - 35)
LINE (scrx - 9, scry - 35)-(scrx - 6, scry - 55)
RETURN
210 REM character stats screen
IF crswiz = 9 THEN RETURN
SCREEN 2
PRINT : PRINT
PRINT " attack "; wizatt(crswiz)
PRINT " defence"; wizdef(crswiz)
PRINT : PRINT
PRINT " Press any key to exit"
DO
LOOP UNTIL INKEY$ <> ""
RETURN
220 REM PLACING
IF players > 2 GOTO 221
wizx(0) = 25: wizy(0) = 75
wizx(1) = 125: wizy(1) = 75
RETURN
221 IF players > 3 GOTO 222
wizx(0) = 75: wizy(0) = 125
wizx(1) = 15: wizy(1) = 25
wizx(2) = 135: wizy(2) = 25
RETURN
222 IF players > 4 GOTO 223
wizx(0) = 15: wizy(0) = 15
wizx(1) = 15: wizy(1) = 135
wizx(2) = 135: wizy(2) = 135
wizx(3) = 135: wizy(3) = 15
RETURN
223 IF players > 5 GOTO 224
wizx(0) = 75: wizy(0) = 135
wizx(1) = 135: wizy(1) = 95
wizx(2) = 15: wizy(2) = 95
wizx(3) = 105: wizy(3) = 25
wizx(4) = 45: wizy(4) = 25
RETURN
224 IF players > 6 GOTO 225
wizx(0) = 75: wizy(0) = 145
wizx(1) = 5: wizy(1) = 125
wizx(2) = 145: wizy(2) = 125
wizx(3) = 145: wizy(3) = 25
wizx(4) = 5: wizy(4) = 25
wizx(5) = 75: wizy(5) = 5
RETURN
225 IF players > 7 GOTO 226
wizx(0) = 75: wizy(0) = 145
wizx(1) = 15: wizy(1) = 135
wizx(2) = 135: wizy(2) = 135
wizx(3) = 145: wizy(3) = 45
wizx(4) = 5: wizy(4) = 45
wizx(5) = 105: wizy(5) = 5
wizx(6) = 45: wizy(6) = 5
RETURN
226
wizx(0) = 5: wizy(0) = 5
wizx(1) = 5: wizy(1) = 75
wizx(2) = 5: wizy(2) = 145
wizx(3) = 75: wizy(3) = 5
wizx(4) = 75: wizy(4) = 145
wizx(5) = 145: wizy(5) = 145
wizx(6) = 145: wizy(6) = 75
wizx(7) = 145: wizy(7) = 5
RETURN
230 REM re-calculation
minor = (1 / change) * major
FOR temp = 0 TO 360
radangle = (temp * PI) / 180
psadangle(temp) = minor * (SIN(radangle))
pcadangle(temp) = major * (COS(radangle))
NEXT temp
RETURN
240 REM start variables
INPUT "HOW MANY PLAYERS"; players
IF players < 2 THEN PRINT "DUH!": GOTO 901
IF players > 8 THEN PRINT "TOO MANY, but Jay would have won anyway": GOTO 901
INPUT "HIGH OR LOW SCREEN RESOLUTION (0=HIGH/1=LOW)"; res
IF res = 0 THEN mode = 9: scrx = 639: scry = 349: bkcol = 8
IF res = 1 THEN mode = 7: scrx = 319: scry = 199: bkcol = 1
halfx = scrx / 2: halfy = scry / 2:
FOR temp = 0 TO players - 1
RANDOMIZE TIMER
wizatt(temp) = 1 + INT(RND * 5)
wizdef(temp) = 1 + INT(RND * 5)
RESTORE 800
READ wiz(temp, 0)
FOR temp2 = 1 TO wiz(temp, 0)
READ wiz(temp, temp2)
NEXT temp2
NEXT temp
RESTORE 810
FOR temp = 1 TO 15
COLOR 15
PRINT temp; ":- ";
COLOR temp
READ temp$
PRINT temp$
NEXT temp
FOR temp = 1 TO players
PRINT "Player "; temp; " colour";
INPUT col(temp - 1)
IF col(temp - 1) < 1 OR col(temp - 1) > 15 THEN temp = temp - 1
NEXT temp
GOSUB 220: REM placing
curx = wizx(0): cury = wizy(0)
turn = 0
GOSUB 260: REM START THING
GOSUB 40: REM update
GOSUB 10: REM workout
GOSUB 20: REM display
RETURN
250 REM winner
SCREEN 2
PRINT "Player "; winner + 1; " wins"
DO
LOOP UNTIL INKEY$ <> ""
STOP
RETURN
260 REM START THING
start = 1
FOR temper = 1 TO 9
FOR eventemper = 0 TO players - 1
wiz(eventemper, temper * 4) = wiz(eventemper, temper * 4) + 1
NEXT eventemper
NEXT temper
FOR tempmov = 0 TO 9
FOR temper = 0 TO 9
FOR eventemper = 0 TO players - 1
wiz(eventemper, temper * 4) = wiz(eventemper, temper * 4) - .1
NEXT eventemper
NEXT temper
GOSUB 40: REM update
GOSUB 10: REM workout
GOSUB 20: REM display
NEXT tempmov
start = 0
RETURN
REM !!!!!!WIZARD 3D CO-ORDINATE DATA!!!!!
REM -------------------------------------
800 DATA 24
DATA 0,0,.15,.08
DATA 0,5,.3,.03
DATA 0,-7,.15,.03
DATA 0,2,0,.03
DATA 0,-2,0,.03
DATA 0,0,.25,.05
DATA 0,5,.5,.001
DATA 0,6,.3,.001
DATA 0,4,.3,.001
810 DATA "BLUE","GREEN","CYAN","RED","MAGENTA","BROWN","WHITE","GRAY"
DATA "L BLUE","L GREEN","L CYAN","L RED","L MAGENTA","YELLOW","BRIGHT WHITE"
900 REM end
SCREEN mode, 1, visscr, visscr
901 END
[My site] [Tetrominoes] |
|
Sirocco
Member #88
April 2000
|
I never did much with Qbasic beyond what we were forced to do in Programming I. After that, I immediately made the move to C with some of my friends in the class and never looked back. I wrote quite a few programs in Commodore BASIC many years before that, but those were lost eons ago. --> |
|
StevenVI
Member #562
July 2000
|
Matthew: I think your digital dice are infringing on my intellectual property, as I had done the same thing with QBasic 4.5. I believe that you stole my proprietary source code and utilized it in your own software. Expect to be served within the coming days. (The joke falls apart when you realize that my dice are only around 12 years old.) I know as fact that I do not (at the moment at least) have any source code for some of my QBasic programs. I'm currently trying to find a copy (source or executable) of the last game I wrote with that language: a Wheel of Fortune clone. __________________________________________________ |
|
le_y_mistar
Member #8,251
January 2007
|
i really dont miss qbasic or gwbasic ----------------- |
|
Neil Black
Member #7,867
October 2006
|
QBASIC was where I started, and I'll never forget my roots. 'my first program! CLS PRINT "Hello World!" END
|
|
Bob Keane
Member #7,342
June 2006
|
Harry Carey: Quote: Matthew: I think your digital dice are infringing on my intellectual property, as I had done the same thing with QBasic 4.5. I believe that you stole my proprietary source code and utilized it in your own software. Expect to be served within the coming days.
If your program is compiled into binary, Microsoft wants to talk to you. By reading this sig, I, the reader, agree to render my soul to Bob Keane. I, the reader, understand this is a legally binding contract and freely render my soul. |
|
MiquelFire
Member #3,110
January 2003
|
There were three programs of worth I written (but lost because of a Hard Drive crash) which were for a basic programming class I had in High School (BTW, I introduced graphics to the class 1) A program that drew a pumpkin, holes flashing (via palette), eyes moving up and down, and a sound whose pitch match the height of the eyes (the lowest pitch sound use was when the eyes were at the lowest point, and highest pitch for highest point the eyes went) 2) A game where you're a farmer, and you are trying to shoot this one turkey. (Using GET and PUT or whatever for sprites) Turkey's AI was move in one direction for a random amount of time (there was a range), randomly pick another direction and repeat. When the turkey was over you, you lost health. Funny thing was my computer at home was faster, so at school, the farmer was able to out run the bullets he shot. 3) A program that displayed a Christmas tree with flashing lights (via palette again), falling snow (drawing simple lines by the time the program was done, only way to rotate the flakes, I think. Was trying to one up someone else in the class), and background music (with the title at the bottom). The thing was, I used a callback or something to keep the music going, and the string with the title up to date. The main loop only dealt with the tree (and maybe the title at the bottom) directly. I actually ported this to Allegro 3.12 (but it was before the crash above anyway). If I were to write it for Allegro again, the music handling would be in a timer function. Basically, if the music was not playing, change to next track, and update the title for the draw logic. I may have done others, but not as good as those three. --- |
|
|
1
2
|