Code:
'Meanwhile attempting to teach my brother how to program in QB I coded this'tiny "game": some type of EGA shooter with some cheesy graphics, has some'form of pixel by pixel scrolling and is extremely slow due to the nature'of EGA (and how QB uses it). This is probably the slowest "game" you will'ever encounter.'Code is linear and not optimized at all so my brother could understand'what has been done. Apparently he didn't and now when I'm looking this,'I don't get it either. The ways of the QB are very mysterious...'BTW, it runs faster on 25MHz 486 than a 3600Mhz P4SCREEN 7, 0, 1, 0'SCREEN 13RANDOMIZE TIMERCLS : PRINT "SPACE DEMO" 'cheesy way to do text effectsFOR Y% = 0 TO 7FOR X% = 0 TO 79A% = POINT(X%, Y%)Y! = Y! + .4X! = X! + -.02XX% = 32 + X% * 3 + X!YY% = 16 + Y% * 3 + Y!IF A% <> 0 THEN LINE (XX%, YY%)-(XX% + 2, YY% + 2), 1 + RND * 14, BF'IF A% <> 0 THEN PSET (XX%, YY%), 1 + RND * 14'IF A% <> 0 THEN CIRCLE (XX%, YY%), 1, 1 + RND * 14, , , 1NEXTY! = 0NEXTLOCATE 1, 1: PRINT " "LOCATE 13, 13: PRINT "Cursor keys move"LOCATE 14, 15: PRINT "Space shoots"LOCATE 15, 16: PRINT "Esc quits"LOCATE 16, 13: PRINT "J = Joystick mode"LOCATE 17, 13: PRINT "K = Keyboard mode"LOCATE 19, 10: PRINT "Hit any key to continue"LOCATE 23, 13: PRINT "2006 TęEE co.(TM)"PCOPY 1, 0SLEEPCLSDIM NONE(64), SHIP(64), ENEMY(64), GND(64), MAP%(19, 15)DIM SNON(16), SHOT(16), XTABLE%(19), YTABLE%(10)GET (0, 0)-(15, 15), NONEFOR Y% = 0 TO 15FOR X% = 0 TO 15READ A%: PSET (X%, Y%), A%NEXT X%NEXT Y%GET (0, 0)-(15, 15), SHIPFOR Y% = 0 TO 15FOR X% = 0 TO 15READ A$: PSET (X%, Y%), VAL("&H" + A$)NEXT X%NEXT Y%GET (0, 0)-(15, 15), GNDPUT (0, 0), NONE, PSETGET (0, 0)-(7, 7), SNONCIRCLE (3, 3), 3, 14, , , 1PAINT (3, 3), 15, 14GET (0, 0)-(7, 7), SHOTPUT (0, 0), NONE, PSETCIRCLE (7, 7), 7, 2, , , 1PAINT (7, 7), 4, 2LINE (4, 10)-(10, 10), 3PSET (4, 4), 15PSET (10, 4), 15GET (0, 0)-(15, 15), ENEMYFOR Y% = 0 TO 15FOR X% = 0 TO 19READ A%: MAP%(X%, Y%) = A%NEXT X%NEXT Y%FOR Y% = 0 TO 10FOR X% = 0 TO 19XTABLE%(X%) = X% * 16YTABLE%(Y%) = Y% * 16 + 8NEXT X%NEXT Y%CLSX% = 159Y% = 183LOADHIGHSCORE:OPEN "SDEMOHI.DAT" FOR BINARY AS #1IF LOF(1) = 0 THENPTS$ = MKL$(0)PUT #1, 1, PTS$HIPTS& = 0CLOSEGOTO LOADHIGHSCOREEND IFHIPTS& = CVL(INPUT$(4, 1))WHILE KEYS% <> 1KEYS% = INP(&H60)'LOCATE 2, 1: PRINT KEYS%IF JOY% = 1 THENIF STICK(0) <40> 160 THEN X% = X% + 2SKIPSTRIGS:IF STICK(1) <40> 160 THEN Y% = Y% + 2SKIPSTRIGS2:IF STRIG(0) = -1 AND FIRE% = 0 THEN FIRE% = 1END IFSELECT CASE KEYS%CASE 77: X% = X% + 4CASE 75: X% = X% - 4CASE 80: Y% = Y% + 4CASE 72: Y% = Y% - 4CASE 57IF FIRE% = 0 THEN FIRE% = 1CASE 36IF JOY% = 0 THEN JOY% = 1CASE 37IF JOY% = 1 THEN JOY% = 0CASE ELSE: nothing$ = INKEY$END SELECTIF X% <0> 303 THEN X% = 303IF Y% <8> 183 THEN Y% = 183IF frameskip% = 2 THENframeskip% = 0IF yyy% <0> 15 THEN yyyy% = yyyy% - 16tx% = XTABLE%(XX%)ty% = YTABLE%(YY%) + stepy%SELECT CASE MAP%(XX%, yyyy%)CASE 0: PUT (tx%, ty%), NONE, PSETCASE 1: PUT (tx%, ty%), GND, PSETEND SELECTNEXT XX%NEXT YY%stepy% = stepy% + 1IF stepy% > 15 THEN yyy% = yyy% - 1: stepy% = 0END IFframeskip% = frameskip% + 1IF FIRE% = 1 THENSX% = X% + 5SY% = Y% - 7FIRE% = 2END IFIF FIRE% = 2 THENSY% = SY% - 5IF SY% <8>= 183 THENENEMYX% = 0: PUT (EX%, EY%), NONE, PSETPTS& = PTS& - 50ELSEPUT (EX%, EY%), ENEMY, PSETEND IFEND IFIF ENEMYX% = 1 THENIF FIRE% = 2 THENIF EY% + 16 > SY% AND EY% <SY> SX% AND EX% - 6 <SX> Y% AND EY% <Y> EX% AND X% - 16 < EX% THENKEYS% = 1: LOCATE 12, 14: PRINT "Game over !!!"END IFEND IFEND IFPUT (X%, Y%), SHIP, PSETIF PTS& <0> 9999999 THEN PTS& = 9999999LOCATE 1, 1: PRINT "Points :"; PTS&LOCATE 1, 19: PRINT "High score :"; HIPTS&PCOPY 1, 0PUT (X%, Y%), NONE, PSETIF FIRE% = 2 THEN PUT (SX%, SY%), SNON, PSETIF ENEMYX% = 1 THEN PUT (EX%, EY%), NONE, PSETnothing$ = INKEY$WENDIF HIPTS& < PTS& THENPTS$ = MKL$(PTS&)PUT #1, 1, PTS$END IFCLOSECLSLOCATE 1, 1: PRINT "GAME OVER" 'cheesy way to do text effectsFOR Y% = 0 TO 7FOR X% = 0 TO 79A% = POINT(X%, Y%)Y! = Y! + .4X! = X! + .02XX% = 32 + X% * 3 + X!YY% = 40 + Y% * 3 - Y!IF A% <> 0 THEN CIRCLE (XX%, YY%), 1, 1 + RND * 14, , , 1NEXTY! = 0NEXTLOCATE 1, 1: PRINT SPACE$(40)LOCATE 1, 1: PRINT "You got" + STR$(PTS&) + " pts."FOR Y% = 0 TO 7FOR X% = 0 TO 159A% = POINT(X%, Y%)Y! = Y! + .3X! = X! + .005XX% = 30 + X% * 2 - X!YY% = 100 + Y% * 2 + Y!IF A% <> 0 THEN PSET (XX%, YY%), 15NEXTY! = 0NEXTLOCATE 1, 1: PRINT " "PRINT " "PCOPY 1, 0SLEEPEND'The final result is, that my brother cannot understand his own code'and due to his stupidness I decided not to try to teach QB to him.DATA 0, 0, 0, 0, 0, 0, 0,08,08, 0, 0, 0, 0, 0, 0, 0DATA 0, 0, 0, 0, 0, 0, 0,08,08, 0, 0, 0, 0, 0, 0, 0DATA 0, 0, 0, 0, 0, 0,08,07,07,08, 0, 0, 0, 0, 0, 0DATA 0, 0, 0, 0, 0, 0,08,11,11,08, 0, 0, 0, 0, 0, 0DATA 0, 0, 0, 0, 0,08,07,11,11,07,08, 0, 0, 0, 0, 0DATA 0, 0, 0, 0, 0,08,11,11,11,11,08, 0, 0, 0, 0, 0DATA 0, 0, 0, 0,08,07,11,11,11,11,07,08, 0, 0, 0, 0DATA 0, 0, 0, 0,08,07,11,11,11,11,07,08, 0, 0, 0, 0DATA 0, 0, 0,08,08,07,07,07,07,07,07,08,08, 0, 0, 0DATA 0, 0, 0,08,08,07,07,07,07,07,07,08,08, 0, 0, 0DATA 0, 0,08,07,08,07,07,07,07,07,07,08,07,08, 0, 0DATA 0, 0,08,07,08,07,07,07,07,07,07,08,07,08, 0, 0DATA 0,08,07,07,08,07,07,07,07,07,07,08,07,07,08, 0DATA 0,08,07,07,08,07,07,07,07,07,07,08,07,07,08, 0DATA 08,07,08,08,08,07,07,07,07,07,07,08,08,08,07,08DATA 08,08, 0, 0,08,07,14,14,14,14,07,08, 0, 0,08,08DATA f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,7DATA f,f,f,f,f,f,f,f,f,f,f,f,f,f,7,8DATA f,f,7,7,7,7,7,7,7,7,7,7,7,7,8,8DATA f,f,7,7,7,7,7,7,7,7,7,7,7,7,8,8DATA f,f,7,7,8,8,8,8,8,8,8,8,7,7,8,8DATA f,f,7,7,8,8,8,8,8,8,8,f,7,7,8,8DATA f,f,7,7,8,8,3,3,3,9,f,f,7,7,8,8DATA f,f,7,7,8,8,3,9,9,1,f,f,7,7,8,8DATA f,f,7,7,8,8,3,9,9,1,f,f,7,7,8,8DATA f,f,7,7,8,8,9,1,1,1,f,f,7,7,8,8DATA f,f,7,7,8,8,f,f,f,f,f,f,7,7,8,8DATA f,f,7,7,8,f,f,f,f,f,f,f,7,7,8,8DATA f,f,7,7,7,7,7,7,7,7,7,7,7,7,8,8DATA f,f,7,7,7,7,7,7,7,7,7,7,7,7,8,8DATA f,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8DATA 7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8DATA 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0DATA 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1DATA 1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0DATA 0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Statistics: Posted by TmEE — Fri Jun 19, 2009 6:11 pm
Statistics: Posted by iamdenteddisk — Wed May 20, 2009 11:39 pm
Statistics: Posted by floogle11 — Thu May 14, 2009 7:37 pm
Statistics: Posted by bongomeno — Thu Apr 09, 2009 3:31 pm
Statistics: Posted by bungytheworm — Thu Apr 09, 2009 8:15 am
Statistics: Posted by bongomeno — Wed Apr 08, 2009 9:04 am
Statistics: Posted by Harry Potter — Mon Apr 06, 2009 10:23 am
Code:
10 LET D=10020 LET F=3530 LET S=540 LET T=050 GRAPHICS 060 PRINT "M A R S L A N D E R ! - BY GEEK BASIC SOFTWARE"70 PRINT "LAND YOUR SHIP ON MARS."80 PRINT "USE THRUST TO SLOW THE SHIP DOWN."90 PRINT "THRUST USES UP FUEL. NO FUEL, NO THRUST..."100 PRINT "IF YOU ARE GOING TOO FAST WHEN DIST"110 PRINT "REACHES 0 THEN YOU WILL CRASH."120 PRINT130 PRINT "STATUS CONSOLE >>"140 PRINT150 PRINT "DIST : ";D160 PRINT "FUEL : ";F170 PRINT "SPEED: ";S180 PRINT190 PRINT "THRUST: ";:INPUT T200 IF T<0>F THEN LET T=F220 LET F=F-T230 LET S=(S+S/2)-T240 LET D=D-S250 IF D>0 THEN GOTO 50260 IF D>=-5 THEN PRINT "PERFECT LANDING!"270 IF D<-5 THEN PRINT "YOU CRASHED..."280 END
Statistics: Posted by bongomeno — Sun Apr 05, 2009 5:18 pm