C: ======================================================================= C: written by : Stephan.H.Klein@honeywell.com date: 00-10-09 C: subject : GAME NANo-BOTz sdrc ver: 6 & 7 C: filename : nano-botz.prg sheet: 00 of 00 C: ======================================================================= C: C: This program is PUBLIC-DOMAIN software and may be distributed freely C: as long as you don't do something nasty, like taking my name off and C: putting your own name on. C: C: This program is a game in which the operator must find 4 escaped micro- C: miniature robots. They escaped from the R&D lab when some idiot manager C: ignored the rules and wore a wristwatch into the lab. The NANo-BOTz C: escaped in his watch and have found their way into your computer C: hardware and, sorry to say, your SDRC design. If you don't find them C: soon you may notice dimensions disappearing, lines moving, and other c: kinds of mistakes creeping into your work. (Now you know what's been C: causing those problems) C: C: This program runs in a empty junk drafting drawing and will resize the C: paper size and create (3)new views. All views are deleted when you quit C: and the drawing should not be saved. C: So far, it has been tested and operates in SDRC Drafting ver 6 & 7. C: C: DISCLAIMER..... [plug in the usual disclaimer here] C: 1- If the NANo-BOTz or this program cause any damage to your system... C: you shouldn't be playing games during working hours anyway. C: 2- I ain't a programmer. Just a scum draftsman, so if you like the C: game drop me an e-mail. If you hate it, I don't want to know. C: Besides, the NANo-BOTz will get ya if ya say anything bad! C: If you find a bug, suggestions, or make changes, let me know. C: 3- ENJOY !!!! C: Stephan.H.Klein@honeywell.com or Stephan@KleinPhotoGraphics.com C: ---------- SET UNITS AND DWG SIZE ------------------------------------- # MODIFY PAPER SIZE ("D", , , 0, 1, Status ) C: ---------- DECLARE VARIABLES ------------------------------------------ # DELETE ALL # DECLARE MX(4) # DECLARE MY(4) # DECLARE OTXT(6) # DECLARE SYMBOL_ARR(10) # SET SYSTEM VARIABLE ("note_height",.150) # GOSUB BUILDSYMBOLS # GOSUB BUILDMENU # GOSUB BUILDINSTR # SHOW MESSAGE ("NANo-BOTz by Stephan Klein 001009") C: ======================================================================= C: ---------- SHOW MENU -------------------------------------------------- # LABEL240: # SET VIEW (MENUVIEW, ) X: ZV K: C # DEBUG=0 # GET ENTITY SINGLE (8, ENTITY, ,X,Y,STATUS) # IF (STATUS EQ -2) THEN GOTO LABEL900 # IF (Y LT 0) THEN GOTO LABEL900 # IF (Y GT 5) THEN DEBUG=1 # IF (DEBUG EQ 1) THEN SHOW MESSAGE ("DEBUG MODE IS ON!") # IF (Y GT 1.2) THEN GOTO LABEL250 C: ---------- SHOW INSTRUCTIONS ------------------------------------------ # SET VIEW (INSTRVIEW, ) X: ZV K: C # GET ENTITY SINGLE (8, ENTITY, ,X,Y,STATUS) # IF (STATUS EQ -2) THEN GOTO LABEL900 # GOTO LABEL240 C: ---------- MAIN GAME WINDOW ------------------------------------------- # LABEL250: # GOSUB BUILDMAIN # SET VIEW (MAINVIEW, ) X: ZV K: C # T = 0 C: ---------- INPUT GUESSES ---------------------------------------------- # LABEL260: # T = T + 1 # SHOW MESSAGE ("TURN NUMBER" + T + "- WHAT IS YOUR GUESS") # GET ENTITY SINGLE (8, ENTITY, ,X,Y,STATUS) # IF (STATUS EQ -2) THEN GOTO LABEL590 # IF (X LT 0) THEN GOTO LABEL590 # M = INT(X+.5) # N = INT(Y+.5) # IF (DEBUG EQ 1) THEN SHOW MESSAGE ("DIGITIZED ELLIPSE X:"+M+" Y:"+N) # MODIFY ELLIPSE (ENTITY,,,4,3,,,,,,,,,, ) # FOR I = 1 TO 4 DO # IF (MX(I) EQ -1) THEN GOTO LABEL400 # IF ( (MX(I) NE M) OR (MY(I) NE N)) THEN GOTO LABEL380 # MX(I) = -1 # SHOW MESSAGE ("YOU HAVE FOUND NANoBOT"+I) # OTXT(I) = T+ "-YOU HAVE FOUND NANoBOT"+ I # modify ellipse (ENTITY,,,2,3,,,,,,,,,, ) # create symbol instance ( "STARSYM", , M, N, , , ,) # GOTO LABEL400 C: ---------- CALCULATE DISTANCE ----------------------------------------- # LABEL380: # CALCULATE DISTANCE (MX(I), MY(I), M, N, DIST) # IF (DEBUG GT 1) THEN CREATE ARC ( M, N, DIST, 0, 360, ) # OTXT(I) = T+ "-YOU'RE" +DIST+ " FROM NANoBOT"+ I # LABEL400: # NEXT # CREATE MULTILINE TEXT ( -5, (11-T), , , , , 4, OTXT, , , ) # FOR J = 1 TO 4 DO # IF (MX(J) NE -1) THEN GOTO LABEL470 # NEXT # SHOW MESSAGE ("YOU GOT THEM ALL IN" +T+ " TURNS!") # IF (T LT 5) THEN SHOW MESSAGE ("YOU ARE A WIZZARD !") # GOTO LABEL580 # LABEL470: # IF (T LT 10) THEN GOTO LABEL260 # SHOW MESSAGE ("SORRY, THAT'S 10 TRIES. HERE IS WHERE THEY'RE HIDING") # SHOW MESSAGE ("WOW - YOU REALLY SUCK AT THIS ... BIG TIME !") # FOR I = 1 TO 4 DO # IF (MX(I) NE -1) THEN cr symbol instance ("STARSYM",,MX(I),MY(I),,,,) # NEXT # LABEL580: # SHOW MESSAGE ("DIGITIZE TO CONTINUE") # GET ENTITY SINGLE (8, ENTITY, ,X,Y,STATUS) # LABEL590: # SET VIEW ( 1, ) # REMOVE VIEW ( MAINVIEW, ) # GOTO LABEL240 C: ---------- REMOVE VIEWS & SYMBOLS ------------------------------------- # LABEL900: # IF (DEBUG GT 0) THEN GOTO LABEL999 # SET VIEW ( 1, ) X: ZV K: C # REMOVE VIEW ( INSTRVIEW, ) # REMOVE VIEW ( MENUVIEW, ) # DELETE ALL X: FV K: P P ^@ # LABEL999: E: END C: ======================================================================= C: ======================================================================= C: ---------- BUILD SYMBOLS ---------------------------------------------- # SUBROUTINE BUILDSYMBOLS # SET SYSTEM VARIABLE ("ccolor",2) # CREATE LINE ( -.115, -.038, -.238, .077, symbol_arr(1) ) # CREATE LINE ( -.238, .077, -.071, .098, symbol_arr(2) ) # CREATE LINE ( -.071, .098, 0, .250, symbol_arr(3) ) # CREATE LINE ( 0, .250, .071, .098, symbol_arr(4) ) # CREATE LINE ( .071, .098, .238, .077, symbol_arr(5) ) # CREATE LINE ( .238, .077, .115, -.038, symbol_arr(6) ) # CREATE LINE ( .115, -.038, .147, -.202, symbol_arr(7) ) # CREATE LINE ( .147, -.202, 0, -.121, symbol_arr(8) ) # CREATE LINE ( 0, -.121, -.147, -.202, symbol_arr(9) ) # CREATE LINE ( -.147, -.202, -.115, -.038, symbol_arr(10)) # CREATE SYMBOL DEFINITION (10, symbol_arr, "STARSYM", 0,0, symnum) K: SA X: ED K: ^@ ^@ # RETURN C: ---------- BUILD MENU VIEW -------------------------------------------- # SUBROUTINE BUILDMENU # CREATE VIEW (20,10, 28.5,17, 24.25,11.5, 8, , , ,"menu",MENUVIEW) # SET SYSTEM VARIABLE ("ccolor",6) # CREATE TEXT ( 0, 4.75, "NANo-BOTz", 2, 2,TMPTXT) # MODIFY TEXT ( TMPTXT, , ,6, 10, 3, 5,,,,.5,.5,5,,) # CREATE TEXT ( 0, 4, "CREATED BY: Stephan Klein)", 2, 2,TMPTXT) # MODIFY TEXT ( TMPTXT, , ,4, 1, 1, 5,,,,.17,.17, ,,) # CREATE ELLIPSE (0, .75, 1, .3, , , , ) # CREATE TEXT ( 0, .75, "INSTRUCTIONS", 2, 2,TMPTXT) # MODIFY TEXT ( TMPTXT, , ,6, 10, 3, 5,,,,.2,.15, ,,) # SET SYSTEM VARIABLE ("ccolor",2) # CREATE ELLIPSE (0, 2, 1, .3, , , , ) # CREATE TEXT ( 0, 2, "PLAY", 2, 2,TMPTXT) # MODIFY TEXT ( TMPTXT, , ,2, 10, 3, 5,,,,.2,.15, ,,) # SET SYSTEM VARIABLE ("ccolor",1) # CREATE ELLIPSE (0, -.5, 1, .3, , , , ) # CREATE TEXT ( 0, -.5, "QUIT", 2, 2,TMPTXT) # MODIFY TEXT ( TMPTXT, , ,1, 10, 3, 5,,,,.2,.15, ,,) # RETURN C: ---------- BUILD INSTRUCTIONS ----------------------------------------- # SUBROUTINE BUILDINSTR # CREATE VIEW (20,1, 28.5,8, 24.5,2, 8, , , ,"instr",INSTRVIEW) # SET SYSTEM VARIABLE ("ccolor",2) # CREATE TEXT ( 0, 5.2, "FOUR MICRO-SIZED ROBOTS (NANo-BOTz)", 2, 2, ) # CREATE TEXT ( 0, 4.9, "HAVE ESCAPED FROM THE RESEARCH LAB.", 2, 2, ) # CREATE TEXT ( 0, 4.6, "THEY HAVE FOUND THEIR WAY INTO YOUR ", 2, 2, ) # CREATE TEXT ( 0, 4.3, "SDRC DESIGN AND COULD CAUSE PROBLEMS.", 2, 2, ) # CREATE TEXT ( 0, 3.7, "YOU MUST FIND ALL FOUR NANo-BOTz IN", 2, 2, ) # CREATE TEXT ( 0, 3.4, "LESS THAN 10 ATTEMPTS. IF NOT.....", 2, 2, ) # SET SYSTEM VARIABLE ("ccolor",1) # CREATE TEXT ( 0, 2.8, "WHO KNOWS WHAT MAY HAPPEN !", 2, 2, ) # SET SYSTEM VARIABLE ("ccolor",13) # CREATE TEXT ( 0, 2.2, "DIGITIZE THE LOCATION ON THE 10X10 GRID", 2, 2, ) # CREATE TEXT ( 0, 1.9, "THAT YOU BELIEVE THE NANo-BOTz ARE HIDING.", 2, 2, ) # CREATE TEXT ( 0, 1.3, "REMEMBER, YOU HAVE ONLY 10 TRIES!", 2, 2, ) # CREATE TEXT ( 0, .7, "GOOD LUCK", 2, 2, ) # SET SYSTEM VARIABLE ("ccolor",4) # CREATE ELLIPSE (0, 0, .45, .25, , , , ) # CREATE TEXT ( 0, 0, "BEGIN", 2, 5, ) # RETURN C: ---------- BUILD GAME VIEW -------------------------------------------- # SUBROUTINE BUILDMAIN # CREATE VIEW ( 1, 1, 17, 14.4, 6, 1, 8, , , ,"main",MAINVIEW) # SET VIEW (MAINVIEW, ) # CREATE TEXT ( .5, 11.4,"NANo-BOTz", 3, ,TENT ) # MODIFY TEXT ( TENT, , ,11, 10, 3, 1,,,,1.12,1.12, ,,) # CREATE TEXT (-4, 12.3, "by S.KLEIN", 2, 5, TENT) # MODIFY TEXT ( TENT, , ,10, 10, 3, 1,,,,.3,.3, ,,) # SET SYSTEM VARIABLE ("ccolor",1) # CREATE ELLIPSE (-2.6, 11.5, 1, .3, , , , ) # CREATE TEXT (-2.6, 11.5, "QUIT", 2, 2,TMPTXT) # MODIFY TEXT (TMPTXT, , ,1, 10, 3, 5,,,,.2,.15, ,,) # SET SYSTEM VARIABLE ("ccolor",10) # FOR X = 1 TO 10 DO # FOR Y = 1 TO 10 DO # CREATE ELLIPSE (X, Y, .45, .25, , , , ) # NEXT # NEXT # SET SYSTEM VARIABLE ("ccolor",2) # FOR LOOP = 1 TO 4 DO # MX(LOOP) = (RANDOM MD 10)+1 # MY(LOOP) = (RANDOM MD 10)+1 # IF (DEBUG EQ 1) THEN CREATE POINT (MX(LOOP), MY(LOOP), ) # NEXT # RETURN