mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 07:37:47 +00:00
1218 lines
34 KiB
QBasic
1218 lines
34 KiB
QBasic
|
CHDIR ".\programs\samples\thebob\kong"
|
||
|
|
||
|
'K2.BAS: Creates graphics files for KONG.BAS, -chained by K1.BAS
|
||
|
'---------------------------------------------------------------
|
||
|
DEFINT A-Z
|
||
|
DECLARE SUB SaveINSTR (FileNAME$)
|
||
|
DECLARE SUB HighLIGHT (x1%, y1%, x2%, y2%, Colr%)
|
||
|
DECLARE SUB PrintSTRING (x, y, Prnt$)
|
||
|
DECLARE SUB SaveBUILDING (x, UpSET, Building)
|
||
|
|
||
|
DIM SHARED Box(1 TO 26000)
|
||
|
DIM SHARED FontBOX(5000)
|
||
|
SCREEN 12
|
||
|
GOSUB Instructions
|
||
|
GOSUB Buildings
|
||
|
GOSUB TitleBAR
|
||
|
GOSUB WinBOXES
|
||
|
GOSUB ControlPANEL
|
||
|
GOSUB DrawSCREEN
|
||
|
|
||
|
CLS
|
||
|
OUT &H3C8, 7
|
||
|
OUT &H3C9, 63
|
||
|
OUT &H3C9, 32
|
||
|
OUT &H3C9, 0
|
||
|
LINE (5, 5)-(634, 474), 6, B
|
||
|
LINE (8, 8)-(631, 471), 6, B
|
||
|
LINE (200, 180)-(439, 290), 6, B
|
||
|
LINE (197, 177)-(442, 293), 6, B
|
||
|
PrintSTRING 254, 212, "The graphics files for KONG"
|
||
|
PrintSTRING 243, 226, "have been successfully created."
|
||
|
PrintSTRING 246, 250, "You can now run the program."
|
||
|
|
||
|
a$ = INPUT$(1)
|
||
|
END
|
||
|
|
||
|
TitleBAR:
|
||
|
LINE (0, 300)-(639, 340), 1, BF
|
||
|
FOR x = -6 TO 660 STEP 21
|
||
|
LINE (x, 309)-(x + 18, 331), 2, BF
|
||
|
NEXT x
|
||
|
FOR x = -1 TO 660 STEP 7
|
||
|
LINE (x, 302)-(x + 2, 306), 10, BF
|
||
|
LINE (x, 306)-(x + 2, 306), 2
|
||
|
LINE (x, 334)-(x + 2, 338), 10, BF
|
||
|
LINE (x, 338)-(x + 2, 338), 2
|
||
|
NEXT x
|
||
|
LINE (0, 300)-(639, 300), 2
|
||
|
LINE (0, 340)-(639, 340), 10
|
||
|
FOR x = 140 TO 498
|
||
|
FOR y = 0 TO 18
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
IF y > 9 THEN Colr = 8 ELSE Colr = 15
|
||
|
PSET (x, y + 314), 10
|
||
|
PSET (x, y + 311), Colr
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
PrintSTRING 20, 216, "Instructions"
|
||
|
PrintSTRING 595, 216, "EXIT"
|
||
|
FOR x = 20 TO 620
|
||
|
FOR y = 216 TO 230
|
||
|
IF y > 222 THEN Colr = 8 ELSE Colr = 15
|
||
|
IF POINT(x, y) <> 0 THEN PSET (x, y + 100), Colr
|
||
|
PSET (x, y), 0
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
RETURN
|
||
|
|
||
|
ControlPANEL:
|
||
|
LINE (0, 446)-(639, 479), 7, BF
|
||
|
LINE (0, 446)-(639, 446), 9
|
||
|
PSET (115, 446), 7
|
||
|
DRAW "U10 E4 R399 F4 D10 L407 BE6 P7,7"
|
||
|
PSET (115, 446), 9
|
||
|
DRAW "U10 c15 E4 c9R399 C6 F4 D10"
|
||
|
PSET (0, 435), 7
|
||
|
DRAW "R52 F4 D10 L56 BE4 P7,7"
|
||
|
PSET (0, 435), 9
|
||
|
DRAW "R52 c6 F4 D6"
|
||
|
PSET (639, 435), 7
|
||
|
DRAW "L52 G4 D10 R56 BH4 P7,7"
|
||
|
PSET (639, 435), 9
|
||
|
DRAW "L52 c15 G4 c9 D6"
|
||
|
PSET (215, 432), 7
|
||
|
DRAW "U10 E4 R199 F4 D10 L207 BE5 P7,7"
|
||
|
PSET (215, 432), 9
|
||
|
DRAW "U10 c15 E4 R199 c6 F4 D10"
|
||
|
PSET (5, 440), 4
|
||
|
DRAW "R42 F3 D8 R70 U11 E3 R97 U11 E3 R191"
|
||
|
DRAW "F3 D11 R97 F3 D11 R70 U8 E3 R42 D20 L628 U20 bF4 P4,4"
|
||
|
FOR y = 424 TO 460 STEP 5
|
||
|
FOR x = 5 TO 634
|
||
|
IF POINT(x, y) = 4 THEN PSET (x, y), 8
|
||
|
IF POINT(x, y - 1) = 4 THEN PSET (x, y - 1), 6
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
FOR y = 424 TO 460
|
||
|
FOR x = 4 TO 634
|
||
|
IF POINT(x, y) = 4 THEN PSET (x, y), 7
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
'Banana Button
|
||
|
LINE (305, 424)-(334, 450), 7, BF
|
||
|
LINE (305, 424)-(334, 451), 9, B
|
||
|
LINE (334, 424)-(334, 450), 6
|
||
|
LINE (309, 428)-(330, 446), 1, BF
|
||
|
LINE (309, 428)-(330, 446), 2, B
|
||
|
LINE (309, 446)-(330, 446), 10
|
||
|
LINE (330, 428)-(330, 446), 10
|
||
|
LINE (305, 451)-(334, 451), 10
|
||
|
LINE (305, 425)-(305, 451), 8
|
||
|
FOR x = 0 TO 16
|
||
|
FOR y = 0 TO 16
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
PSET (x + 312, y + 432), 10
|
||
|
PSET (x + 312, y + 430), POINT(x, y)
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
'Transfer KONG
|
||
|
FOR x = 198 TO 256
|
||
|
FOR y = 0 TO 18
|
||
|
IF y > 9 THEN Colr = 8 ELSE Colr = 15
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
PSET (x - 141, y + 452), 10
|
||
|
PSET (x - 141, y + 450), Colr
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
'Transfer YOUNG
|
||
|
FOR x = 424 TO 500
|
||
|
FOR y = 0 TO 18
|
||
|
IF y > 9 THEN Colr = 8 ELSE Colr = 15
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
PSET (x + 92, y + 452), 10
|
||
|
PSET (x + 92, y + 450), Colr
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
'Player LED's
|
||
|
LINE (70, 470)-(100, 477), 8, B
|
||
|
LINE (70, 470)-(70, 477), 6
|
||
|
LINE (70, 470)-(100, 470), 6
|
||
|
LINE (72, 472)-(98, 475), 10, B
|
||
|
LINE (98, 472)-(98, 475), 8
|
||
|
LINE (72, 475)-(98, 475), 8
|
||
|
GET (70, 470)-(100, 477), Box()
|
||
|
PUT (537, 470), Box(), PSET
|
||
|
'Slider grooves
|
||
|
LINE (359, 469)-(489, 475), 7, BF
|
||
|
LINE (359, 472)-(489, 472), 10
|
||
|
LINE (359, 471)-(489, 473), 9, B
|
||
|
LINE (359, 471)-(359, 473), 6
|
||
|
LINE (359, 471)-(489, 471), 6
|
||
|
'Get/place slider grooves
|
||
|
GET (354, 462)-(494, 479), Box()
|
||
|
LINE (354, 462)-(494, 479), 7, BF
|
||
|
PUT (135, 442), Box(), PSET
|
||
|
PUT (364, 442), Box(), PSET
|
||
|
GET (245, 442)-(274, 456), Box()
|
||
|
PUT (227, 442), Box(), PSET
|
||
|
LINE (256, 442)-(272, 456), 7, BF
|
||
|
PrintSTRING 185, 462, "Force"
|
||
|
PrintSTRING 436, 462, "Angle"
|
||
|
FOR x = 140 TO 500
|
||
|
FOR y = 462 TO 478
|
||
|
IF y > 468 THEN Colr = 9 ELSE Colr = 15
|
||
|
IF POINT(x, y) <> 7 THEN PSET (x, y), Colr
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR x = 146 TO 246 STEP 5
|
||
|
LINE (x, 446)-(x, 449), 8
|
||
|
LINE (x, 456)-(x, 459), 8
|
||
|
NEXT x
|
||
|
GET (365, 440)-(380, 460), Box()
|
||
|
LINE (365, 440)-(395, 460), 7, BF
|
||
|
PUT (394, 440), Box(), PSET
|
||
|
FOR x = 404 TO 494 STEP 5
|
||
|
LINE (x, 446)-(x, 449), 8
|
||
|
LINE (x, 456)-(x, 459), 8
|
||
|
NEXT x
|
||
|
LINE (255, 442)-(278, 460), 7, BF
|
||
|
LINE (255, 442)-(276, 460), 10, BF
|
||
|
LINE (255, 442)-(276, 460), 9, B
|
||
|
LINE (255, 442)-(276, 442), 6
|
||
|
LINE (255, 442)-(255, 460), 6
|
||
|
PrintSTRING 260, 446, "00"
|
||
|
LINE (362, 442)-(385, 460), 7, BF
|
||
|
LINE (364, 442)-(385, 460), 10, BF
|
||
|
LINE (364, 442)-(385, 460), 9, B
|
||
|
LINE (364, 442)-(364, 460), 6
|
||
|
LINE (364, 442)-(385, 442), 6
|
||
|
PrintSTRING 369, 446, "00"
|
||
|
'Transfer Cupola
|
||
|
FOR x = 61 TO 95
|
||
|
FOR y = 48 TO 74
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
PSET (x - 52, y + 360), POINT(x, y)
|
||
|
PSET (690 - x, y + 360), POINT(x, y)
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
CIRCLE (123, 440), 5, 4
|
||
|
PAINT STEP(0, 0), 4
|
||
|
CIRCLE STEP(0, 0), 5, 9
|
||
|
PAINT STEP(0, 0), 7, 9
|
||
|
CIRCLE STEP(0, 0), 5, 6, 3.1, 0
|
||
|
CIRCLE (513, 440), 5, 4
|
||
|
PAINT STEP(0, 0), 4
|
||
|
CIRCLE STEP(0, 0), 5, 9
|
||
|
PAINT STEP(0, 0), 7, 9
|
||
|
CIRCLE STEP(0, 0), 5, 6, 3.1, 0
|
||
|
CIRCLE (223, 426), 5, 4
|
||
|
PAINT STEP(0, 0), 4
|
||
|
CIRCLE STEP(0, 0), 5, 9
|
||
|
PAINT STEP(0, 0), 7, 9
|
||
|
CIRCLE STEP(0, 0), 5, 6, 3.1, 0
|
||
|
CIRCLE (413, 426), 5, 4
|
||
|
PAINT STEP(0, 0), 4
|
||
|
CIRCLE STEP(0, 0), 5, 9
|
||
|
PAINT STEP(0, 0), 7, 9
|
||
|
CIRCLE STEP(0, 0), 5, 6, 3.1, 0
|
||
|
LINE (290, 461)-(350, 477), 9, B
|
||
|
LINE (350, 461)-(350, 477), 6
|
||
|
LINE (290, 477)-(350, 477), 6
|
||
|
LINE (290, 478)-(350, 478), 10
|
||
|
LINE (290, 461)-(290, 477), 8
|
||
|
'Score boxes
|
||
|
LINE (12, 444)-(42, 474), 0, BF
|
||
|
LINE (12, 444)-(42, 474), 9, B
|
||
|
LINE (12, 444)-(12, 474), 6
|
||
|
LINE (12, 444)-(42, 444), 6
|
||
|
LINE (597, 444)-(627, 474), 0, BF
|
||
|
LINE (597, 444)-(627, 474), 9, B
|
||
|
LINE (597, 444)-(597, 474), 6
|
||
|
LINE (597, 444)-(627, 444), 6
|
||
|
GET (438, 20)-(452, 38), Box()
|
||
|
PUT (19, 450), Box()
|
||
|
PUT (604, 450), Box()
|
||
|
FOR x = 0 TO 639
|
||
|
FOR y = 362 TO 404
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 12
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
PrintSTRING 298, 464, "NO WIND"
|
||
|
FOR x = 298 TO 342
|
||
|
FOR y = 465 TO 473
|
||
|
IF y > 469 THEN Colr = 9 ELSE Colr = 15
|
||
|
IF POINT(x, y) <> 7 THEN PSET (x, y), Colr
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (298, 465)-(342, 473), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kongwind.bsv", VARPTR(Box(1)), 240
|
||
|
DEF SEG
|
||
|
DIM SliderBOX(1 TO 440)
|
||
|
DEF SEG = VARSEG(SliderBOX(1))
|
||
|
BLOAD "kongsldr.bsv", VARPTR(SliderBOX(1))
|
||
|
DEF SEG
|
||
|
GET (141, 443)-(151, 461), SliderBOX(281)
|
||
|
GET (489, 443)-(499, 461), SliderBOX(361)
|
||
|
DEF SEG = VARSEG(SliderBOX(1))
|
||
|
BSAVE "kongsldr.bsv", VARPTR(SliderBOX(1)), 880
|
||
|
DEF SEG
|
||
|
RETURN
|
||
|
|
||
|
DrawSCREEN:
|
||
|
GET (16, 47)-(56, 87), Box(25000)
|
||
|
GET (0, 300)-(639, 340), Box()
|
||
|
LINE (0, 0)-(639, 350), 0, BF
|
||
|
LINE (0, 0)-(639, 43), 7, BF
|
||
|
LINE (0, 44)-(639, 44), 10
|
||
|
PUT (0, 1), Box(), PSET
|
||
|
PUT (299, 70), Box(25000), PSET
|
||
|
PrintSTRING 2, 46, "Freeware - Copyright 2005 by Bob Seguin"
|
||
|
PrintSTRING 497, 46, "email: BOBSEG@sympatico.ca"
|
||
|
FOR x = 0 TO 639
|
||
|
FOR y = 46 TO 58
|
||
|
IF POINT(x, y) <> 0 THEN PSET (x, y), 2
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
|
||
|
PSET (0, 154), 12
|
||
|
DRAW "r7 U24 R35 NU20 R30 F20 D20 R30 F20 D30 R5 U50 R20 NU20 R20 D60"
|
||
|
DRAW "R5 U30 R5 U4 R20 NU20 R20 D4 R5 D20 R4 U30 R3 U40 R3"
|
||
|
DRAW "U3ru3ru3ru3ru3ru3r2Nu20R2D3rd3rd3rd3rd3rd3r3d40r3d20R4"
|
||
|
DRAW "U30 R30d20r3U60r3u4r25nu12r25d4r3d80r5U30r15Nu12r15d30r5u50r30d40"
|
||
|
DRAW "r5U30 r6U2r34nu12r34d2r6d30r4u20r20d20r5U30e12r20U18e23r"
|
||
|
DRAW "r12nu12r22d108L639U81bfp12,12"
|
||
|
LINE (0, 235)-(639, 400), 12, BF
|
||
|
CIRCLE (605, 198), 200, 12, 2.8, 3.2
|
||
|
CIRCLE (235, 198), 200, 12, 0, .34
|
||
|
LINE (416, 123)-(424, 136), 12, BF
|
||
|
LINE (419, 100)-(421, 125), 12, BF
|
||
|
LINE (420, 80)-(420, 100), 12
|
||
|
PAINT STEP(0, 40), 12
|
||
|
|
||
|
PSET (0, 390), 10
|
||
|
DRAW "R10 U10 R100 D5 R10 U10 R80 D30 R20 U20 R60 U8rd8r62 D10"
|
||
|
DRAW "R80 U20 LU10R20 U6lu2r16d2ld6r60d10ld10r118d26L639"
|
||
|
DRAW "U14 BF4 P10,10"
|
||
|
FOR y = 401 TO 440
|
||
|
FOR x = 0 TO 639
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 10
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
PAINT (60, 396), 10
|
||
|
PAINT (460, 396), 10
|
||
|
GET (80, 340)-(539, 400), Box()
|
||
|
PUT (80, 345), Box(), PSET
|
||
|
RANDOMIZE 123
|
||
|
FOR Reps = 1 TO 48
|
||
|
x = FIX(RND * 640)
|
||
|
y = FIX(RND * 60) + 45
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 7
|
||
|
NEXT Reps
|
||
|
FOR x = 0 TO 639
|
||
|
FOR y = 362 TO 404
|
||
|
IF POINT(x, y) <> 10 THEN PSET (x, y), 0
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (0, 362)-(639, 404), Box() '7000
|
||
|
FOR x = 0 TO 639
|
||
|
FOR y = 362 TO 404
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 15 ELSE PSET (x, y), 0
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR x = 45 TO 595
|
||
|
FOR y = 430 TO 460
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 10
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (0, 362)-(639, 404), Box(7000) 'Get foreground building mask
|
||
|
PUT (0, 362), Box(), PSET
|
||
|
LINE (80, 410)-(88, 422), 5, BF
|
||
|
LINE (80, 410)-(88, 418), 3, BF
|
||
|
LINE (180, 410)-(188, 422), 0, BF
|
||
|
LINE (480, 390)-(488, 402), 5, BF
|
||
|
LINE (480, 390)-(488, 394), 3, BF
|
||
|
LINE (460, 390)-(468, 402), 0, BF
|
||
|
LINE (440, 412)-(448, 424), 0, BF
|
||
|
GET (0, 362)-(639, 404), Box() '7000 'Get/Save foreground buildings
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kongfbld.bsv", VARPTR(Box(1)), 28000
|
||
|
DEF SEG
|
||
|
LINE (0, 340)-(639, 404), 12, BF
|
||
|
PUT (0, 362), Box(7000), AND
|
||
|
PUT (0, 362), Box()
|
||
|
|
||
|
'Get/Save main screen
|
||
|
FileCOUNT = 0
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
FOR y = 0 TO 320 STEP 160
|
||
|
GET (0, y)-(639, y + 159), Box()
|
||
|
FileCOUNT = FileCOUNT + 1
|
||
|
FileNAME$ = "kongscr" + LTRIM$(STR$(FileCOUNT)) + ".bsv"
|
||
|
BSAVE FileNAME$, VARPTR(Box(1)), 52000
|
||
|
NEXT y
|
||
|
DEF SEG
|
||
|
RETURN
|
||
|
|
||
|
Buildings:
|
||
|
'Government building?
|
||
|
PSET (97, 200), 11
|
||
|
DRAW "E16 R33 F16 L65 R32 BU2 P11,11"
|
||
|
FOR x = 102 TO 159 STEP 4
|
||
|
FOR y = 184 TO 200
|
||
|
IF POINT(x, y) = 11 THEN PSET (x, y), 3
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
PSET (97, 200), 3
|
||
|
DRAW "E16 R33 U3 L33 D3 BE P11,3 BG C3 R33 F16 L67 D3 R69 U3 L30 BD P11,3"
|
||
|
LINE (90, 204)-(169, 208), 7, BF
|
||
|
LINE (90, 204)-(169, 204), 8
|
||
|
LINE (60, 200)-(68, 212), 3, B
|
||
|
LINE (61, 201)-(67, 211), 1, BF
|
||
|
LINE (61, 201)-(67, 211), 7, B
|
||
|
LINE (61, 206)-(67, 206), 7
|
||
|
GET (60, 200)-(68, 212), Box()
|
||
|
PUT (60, 200), Box()
|
||
|
FOR x = 112 TO 140 STEP 14
|
||
|
PUT (x, 191), Box(), PSET
|
||
|
NEXT x
|
||
|
PSET (130, 180), 7
|
||
|
DRAW "U20 C15 d"
|
||
|
FOR x = 114 TO 146 STEP 2
|
||
|
LINE (x, 177)-(x, 180), 6
|
||
|
PSET (x, 177), 8
|
||
|
IF x < 146 THEN PSET (x + 1, 179), 6
|
||
|
NEXT x
|
||
|
FlagDATA:
|
||
|
DATA 1,2,3,2,2,2,3,4,5,4,3,2
|
||
|
RESTORE FlagDATA
|
||
|
FOR x = 129 TO 119 STEP -1
|
||
|
READ Down
|
||
|
LINE (x, 162 + Down)-(x, 168 + Down), 4
|
||
|
NEXT x
|
||
|
LINE (90, 210)-(169, 479), 7, BF
|
||
|
FOR y = 210 TO 470 STEP 2
|
||
|
LINE (95, y)-(164, y), 6
|
||
|
NEXT y
|
||
|
RANDOMIZE 145678
|
||
|
FOR y = 220 TO 420 STEP 20
|
||
|
FOR x = 99 TO 157 STEP 11
|
||
|
LINE (x - 1, y)-(x + 7, y + 12), 7, BF
|
||
|
IF FIX(RND * 12) = 0 THEN
|
||
|
Colr1 = 3: Colr2 = 5
|
||
|
ELSE
|
||
|
Colr1 = 1: Colr2 = 2
|
||
|
END IF
|
||
|
LINE (x + 1, y + 1)-(x + 5, y + 12), Colr1, BF
|
||
|
LINE (x + 1, y + 3)-(x + 5, y + 12), Colr2, BF
|
||
|
LINE (x, y + 13)-(x + 6, y + 13), 8
|
||
|
LINE (x, y + 7)-(x + 5, y + 7), 7
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
GET (80, 150)-(180, 479), Box()
|
||
|
PUT (80, 146), Box(), PSET
|
||
|
SaveBUILDING 90, 24, 1
|
||
|
|
||
|
'Modern building
|
||
|
LINE (300, 200)-(379, 204), 6, BF
|
||
|
LINE (300, 205)-(379, 479), 7, BF
|
||
|
PSET (321, 195), 2
|
||
|
DRAW "E4 R30 F4 L38 R10 BU P2,2"
|
||
|
PSET (321, 195), 8
|
||
|
DRAW "E4 ND4 R5 ND4 R5 ND4 R5 ND4 R5 ND4 R5 ND4 R5 ND4 F4 L38"
|
||
|
LINE (321, 195)-(359, 199), 8, BF
|
||
|
CIRCLE (308, 200), 6, 6, 0, 3.14
|
||
|
PAINT STEP(0, -1), 6
|
||
|
PSET STEP(0, -4), 8
|
||
|
CIRCLE (372, 200), 6, 6, 0, 3.14
|
||
|
PAINT STEP(0, -1), 6
|
||
|
PSET STEP(0, -4), 8
|
||
|
FOR x = 300 TO 379
|
||
|
FOR y = 194 TO 197
|
||
|
IF POINT(x, y) = 6 THEN PSET (x, y), 2
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (300, 200)-(379, 204), 7, BF
|
||
|
LINE (300, 200)-(379, 200), 8
|
||
|
LINE (300, 205)-(379, 206), 10, B
|
||
|
LINE (317, 184)-(317, 199), 7
|
||
|
PSET STEP(0, -15), 8
|
||
|
LINE (363, 184)-(363, 199), 7
|
||
|
PSET STEP(0, -15), 8
|
||
|
FOR y = 210 TO 440 STEP 16
|
||
|
LINE (300, y)-(379, y + 8), 2, BF
|
||
|
LINE (300, y)-(379, y + 3), 1, BF
|
||
|
LINE (300, y + 8)-(379, y + 8), 8
|
||
|
FOR x = 305 TO 379 STEP 14
|
||
|
LINE (x, y)-(x, y + 8), 7
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
SaveBUILDING 300, 0, 2 '*************************************************
|
||
|
|
||
|
'Hotel --------------------------------------------------------------------
|
||
|
LINE (400, 200)-(479, 479), 3, BF
|
||
|
LINE (420, 195)-(459, 199), 6, BF
|
||
|
LINE (420, 195)-(459, 195), 7
|
||
|
LINE (460, 174)-(460, 199), 7
|
||
|
LINE (454, 176)-(464, 176), 7
|
||
|
LINE (457, 177)-(467, 177), 7
|
||
|
PSET (454, 176), 9
|
||
|
LINE (410, 192)-(414, 199), 6, BF
|
||
|
LINE (410, 192)-(414, 192), 7
|
||
|
LINE (465, 192)-(469, 199), 6, BF
|
||
|
LINE (465, 192)-(469, 192), 7
|
||
|
FOR x = 421 TO 454 STEP 4
|
||
|
FOR y = 186 TO 193 STEP 3
|
||
|
LINE (x, y)-(x + 4, y + 3), 6, B
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
PrintSTRING 425, 162, "HOTEL"
|
||
|
FOR x = 425 TO 500
|
||
|
FOR y = 162 TO 174
|
||
|
IF POINT(x, y) <> 0 THEN PSET (x, y + 20), 4
|
||
|
PSET (x, y), 0
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (100, 50)-(111, 76), Box()
|
||
|
FOR x = 404 TO 468 STEP 15
|
||
|
PUT (x, 215), Box(), PSET
|
||
|
NEXT x
|
||
|
GET (100, 54)-(111, 76), Box()
|
||
|
FOR x = 404 TO 464 STEP 15
|
||
|
PUT (x, 248), Box(), PSET
|
||
|
IF x = 419 THEN
|
||
|
FOR xx = x TO x + 12
|
||
|
FOR yy = 248 TO 267
|
||
|
IF POINT(xx, yy) = 2 THEN PSET (xx, yy), 5
|
||
|
NEXT yy
|
||
|
NEXT xx
|
||
|
END IF
|
||
|
NEXT x
|
||
|
FOR x = 404 TO 464 STEP 15
|
||
|
FOR y = 290 TO 479 STEP 32
|
||
|
PUT (x, y), Box(), PSET
|
||
|
IF FIX(RND * 12) = 2 THEN
|
||
|
LINE (x + 2, y + 8)-(x + 9, y + 15), 1, BF
|
||
|
LINE (x + 2, y + 16)-(x + 9, y + 16), 7
|
||
|
LINE (x + 2, y + 17)-(x + 9, y + 17), 10
|
||
|
END IF
|
||
|
IF FIX(RND * 15) = 0 THEN
|
||
|
FOR xx = x TO x + 12
|
||
|
FOR yy = y TO y + 19
|
||
|
IF POINT(xx, yy) = 2 THEN PSET (xx, yy), 5
|
||
|
NEXT yy
|
||
|
NEXT xx
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (88, 84)-(93, 91), Box()
|
||
|
FOR x = 401 TO 480 STEP 5
|
||
|
PUT (x, 200), Box(), PSET
|
||
|
PUT (x, 276), Box(), PSET
|
||
|
NEXT x
|
||
|
LINE (480, 200)-(484, 310), 0, BF
|
||
|
LINE (395, 200)-(399, 310), 0, BF
|
||
|
FOR y = 202 TO 479 STEP 2
|
||
|
FOR x = 400 TO 480
|
||
|
IF POINT(x, y) = 3 THEN PSET (x, y), 1
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
GET (478, 200)-(478, 210), Box()
|
||
|
PUT (479, 200), Box(), PSET
|
||
|
PUT (400, 200), Box(), PSET
|
||
|
PUT (479, 276), Box(), PSET
|
||
|
PUT (400, 276), Box(), PSET
|
||
|
SaveBUILDING 400, 0, 3 '*************************************************
|
||
|
|
||
|
'Buff Apartment Block -------------------------------------------------------
|
||
|
GET (608, 44)-(619, 67), Box()
|
||
|
GET (621, 44)-(632, 67), Box(500)
|
||
|
LINE (500, 200)-(579, 479), 11, BF
|
||
|
FOR x = 504 TO 574 STEP 15
|
||
|
FOR y = 216 TO 460 STEP 32
|
||
|
IF FIX(RND * 6) = 0 THEN
|
||
|
PUT (x, y), Box(500), PSET
|
||
|
ELSE
|
||
|
PUT (x, y), Box(), PSET
|
||
|
END IF
|
||
|
LINE (500, y + 27)-(579, y + 27), 9
|
||
|
LINE (500, y + 28)-(579, y + 28), 8
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (500, 200)-(579, 204), 7, BF
|
||
|
LINE (500, 200)-(579, 200), 9
|
||
|
LINE (500, 205)-(579, 205), 10
|
||
|
LINE (520, 189)-(559, 199), 11, BF
|
||
|
LINE (520, 189)-(559, 192), 7, BF
|
||
|
LINE (520, 189)-(559, 189), 9
|
||
|
LINE (520, 193)-(559, 193), 6
|
||
|
PSET (539, 188), 8
|
||
|
DRAW "U16 C14 D"
|
||
|
SaveBUILDING 500, 0, 4 '*************************************************
|
||
|
|
||
|
'Factory --------------------------------------------------------------------
|
||
|
LINE (0, 150)-(639, 479), 0, BF
|
||
|
LINE (100, 200)-(179, 479), 3, BF
|
||
|
CIRCLE (120, 220), 10, 15, , , .85
|
||
|
CIRCLE (120, 219), 12, 15, , , .83
|
||
|
LINE (105, 222)-(135, 240), 3, BF
|
||
|
GET (120, 206)-(150, 230), Box()
|
||
|
PUT (119, 206), Box(), PSET
|
||
|
PSET (110, 217), 3
|
||
|
PSET (129, 217), 3
|
||
|
LINE (129, 220)-(129, 228), 15
|
||
|
LINE (110, 220)-(110, 228), 15
|
||
|
DRAW "R19"
|
||
|
LINE (110, 236)-(129, 252), 15, B
|
||
|
PSET (108, 220), 15
|
||
|
DRAW "D34 R23 U34"
|
||
|
PAINT (119, 220), 2, 15
|
||
|
PAINT (119, 244), 2, 15
|
||
|
FOR x = 100 TO 140
|
||
|
FOR y = 200 TO 260
|
||
|
IF POINT(x, y) = 15 THEN PSET (x, y), 1
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR x = 120 TO 140
|
||
|
FOR y = 216 TO 260
|
||
|
IF POINT(x, y) = 1 THEN PSET (x, y), 11
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (111, 228)-(120, 228), 11
|
||
|
LINE (111, 236)-(129, 236), 1
|
||
|
LINE (111, 252)-(129, 252), 11
|
||
|
LINE (109, 254)-(129, 254), 11
|
||
|
LINE (124, 213)-(124, 227), 1
|
||
|
LINE (115, 213)-(115, 227), 1
|
||
|
LINE (111, 219)-(129, 219), 1
|
||
|
LINE (115, 236)-(115, 251), 1
|
||
|
LINE (124, 236)-(124, 251), 1
|
||
|
LINE (111, 244)-(129, 244), 1
|
||
|
|
||
|
GET (120, 205)-(133, 256), Box()
|
||
|
PUT (118, 205), Box(), PSET
|
||
|
GET (106, 229)-(131, 253), Box()
|
||
|
FOR y = 254 TO 450 STEP 25
|
||
|
PUT (106, y), Box(), PSET
|
||
|
NEXT y
|
||
|
GET (106, 202)-(132, 470), Box()
|
||
|
LINE (106, 202)-(132, 470), 3, BF
|
||
|
FOR x = 102 TO 158 STEP 25
|
||
|
PUT (x, 202), Box(), PSET
|
||
|
NEXT x
|
||
|
FOR y = 255 TO 455 STEP 50
|
||
|
LINE (100, y)-(179, y + 3), 3, BF
|
||
|
LINE (100, y)-(179, y), 11
|
||
|
LINE (100, y + 3)-(179, y + 3), 1
|
||
|
NEXT y
|
||
|
LINE (100, 230)-(104, 234), 3, BF
|
||
|
LINE (100, 230)-(104, 230), 11
|
||
|
LINE (100, 234)-(104, 234), 1
|
||
|
GET (100, 230)-(104, 234), Box()
|
||
|
FOR x = 100 TO 175 STEP 25
|
||
|
FOR y = 230 TO 430 STEP 50
|
||
|
PUT (x, y), Box(), PSET
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (120, 190)-(159, 199), 3, BF
|
||
|
LINE (120, 190)-(159, 193), 6, BF
|
||
|
LINE (120, 190)-(159, 190), 7
|
||
|
LINE (120, 194)-(159, 194), 10
|
||
|
LINE (100, 200)-(179, 204), 6, BF
|
||
|
LINE (100, 200)-(179, 200), 7
|
||
|
LINE (100, 205)-(179, 205), 10
|
||
|
|
||
|
FOR y = 180 TO 479 STEP 2
|
||
|
FOR x = 100 TO 179
|
||
|
IF POINT(x, y) = 3 THEN PSET (x, y), 6
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
|
||
|
FOR Reps = 1 TO 30
|
||
|
x = FIX(RND * 80) + 100
|
||
|
y = FIX(RND * 280) + 200
|
||
|
Colr = FIX(RND * 3)
|
||
|
SELECT CASE Colr
|
||
|
CASE 0: Colr = 6
|
||
|
CASE 1: Colr = 7
|
||
|
CASE 2: Colr = 8
|
||
|
END SELECT
|
||
|
FOR xx = x - 6 TO x + 6
|
||
|
FOR yy = y - 6 TO y + 6
|
||
|
IF POINT(xx, yy) = 2 THEN PSET (xx, yy), Colr
|
||
|
NEXT yy
|
||
|
NEXT xx
|
||
|
NEXT Reps
|
||
|
PrintSTRING 212, 184, "B-Bomb Mfg"
|
||
|
FOR x = 204 TO 280
|
||
|
FOR y = 184 TO 196
|
||
|
IF POINT(x, y) <> 0 THEN PSET (x - 100, y), 4
|
||
|
PSET (x, y), 0
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR x = 208 TO 270 STEP 5
|
||
|
FOR y = 185 TO 194 STEP 3
|
||
|
LINE (x, y)-(x + 5, y + 4), 2, B
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR x = 208 TO 275
|
||
|
FOR y = 178 TO 200
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
IF POINT(x - 101, y + 1) <> 4 THEN PSET (x - 101, y + 1), 6
|
||
|
PSET (x, y), 0
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
SaveBUILDING 100, 0, 5 '*************************************************
|
||
|
|
||
|
'Apescape building -------------------------------------------------------------
|
||
|
LINE (200, 200)-(279, 479), 8, BF
|
||
|
LINE (210, 180)-(269, 299), 8, BF
|
||
|
LINE (220, 180)-(259, 180), 9
|
||
|
LINE (207, 200)-(272, 200), 9
|
||
|
CIRCLE (209, 209), 10, 0, 3.14159 * .5, 3.14159
|
||
|
PAINT (201, 201), 0
|
||
|
CIRCLE (270, 209), 10, 0, 0, 3.14159 * .5
|
||
|
PAINT (278, 201), 0
|
||
|
CIRCLE (219, 190), 10, 0, 3.14159 * .5, 3.14159
|
||
|
PAINT (211, 181), 0
|
||
|
CIRCLE (260, 190), 10, 0, 0, 3.14159 * .5
|
||
|
PAINT (268, 181), 0
|
||
|
FOR x = 203 TO 277 STEP 4
|
||
|
FOR y = 180 TO 479
|
||
|
IF POINT(x, y) = 8 THEN PSET (x, y), 7
|
||
|
IF POINT(x + 1, y) = 8 THEN PSET (x + 1, y), 7
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR x = 206 TO 270 STEP 10
|
||
|
FOR y = 220 TO 460 STEP 36
|
||
|
LINE (x, y)-(x + 7, y + 26), 8, BF
|
||
|
LINE (x + 1, y + 1)-(x + 6, y + 22), 2, BF
|
||
|
LINE (x + 1, y + 1)-(x + 6, y + 6), 1, BF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (239, 158)-(239, 179), 8
|
||
|
PSET (236, 162), 4
|
||
|
PSET (242, 162), 4
|
||
|
FOR x = 217 TO 260 STEP 8
|
||
|
LINE (x, 190)-(x + 4, 198), 2, BF
|
||
|
LINE (x, 190)-(x + 4, 193), 1, BF
|
||
|
NEXT x
|
||
|
PSET (200, 205), 6
|
||
|
PSET (205, 200), 6
|
||
|
PSET (210, 186), 6
|
||
|
PSET (215, 181), 6
|
||
|
PSET (219, 180), 8
|
||
|
PSET (218, 180), 7
|
||
|
|
||
|
PSET (279, 205), 6
|
||
|
PSET (274, 200), 6
|
||
|
PSET (269, 186), 6
|
||
|
PSET (264, 181), 6
|
||
|
|
||
|
PSET (260, 180), 8
|
||
|
PSET (261, 180), 7
|
||
|
|
||
|
GET (200, 180)-(279, 214), Box()
|
||
|
PUT (200, 176), Box(), PSET
|
||
|
GET (200, 180)-(279, 214), Box()
|
||
|
PUT (200, 175), Box(), PSET
|
||
|
LINE (206, 200)-(273, 200), 9
|
||
|
LINE (206, 193)-(206, 200), 6
|
||
|
LINE (273, 193)-(273, 200), 6
|
||
|
LINE (214, 175)-(265, 175), 9
|
||
|
LINE (212, 203)-(267, 216), 8, BF
|
||
|
LINE (212, 217)-(267, 217), 6
|
||
|
LINE (212, 203)-(267, 203), 9
|
||
|
PrintSTRING 217, 203, "apescape"
|
||
|
FOR x = 217 TO 267
|
||
|
FOR y = 203 TO 217
|
||
|
IF POINT(x, y) = 15 THEN PSET (x, y), 1
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
SaveBUILDING 200, 26, 6
|
||
|
|
||
|
'Tenement building ---------------------------------------------------------
|
||
|
LINE (200, 150)-(279, 479), 0, BF
|
||
|
RANDOMIZE 4
|
||
|
CIRCLE (220, 198), 10, 2, 0, 3.14159
|
||
|
CIRCLE (259, 198), 10, 2, 0, 3.14159
|
||
|
CIRCLE (220, 198), 7, 2, 0, 3.14159
|
||
|
CIRCLE (259, 198), 7, 2, 0, 3.14159
|
||
|
LINE (207, 198)-(210, 198), 2: DRAW "bl3D3r6u3"
|
||
|
LINE (230, 198)-(233, 198), 2: DRAW "D3l6u3"
|
||
|
LINE (246, 198)-(249, 198), 2: DRAW "bl3D3r6u3"
|
||
|
LINE (269, 198)-(272, 198), 2: DRAW "D3l6u3"
|
||
|
CIRCLE (182, 166), 35, 2, 5.3, 6
|
||
|
CIRCLE (297, 166), 35, 2, 3.42, 4.16
|
||
|
LINE (215, 176)-(264, 176), 2
|
||
|
PSET (200, 195), 2
|
||
|
DRAW "D4 R7 BR26 R12 BR27 R7 U4 l10 Bl20 l18 Bl20 l11"
|
||
|
PAINT (240, 190), 1, 2
|
||
|
PAINT (240, 197), 1, 2
|
||
|
PAINT (202, 197), 1, 2
|
||
|
PAINT (277, 197), 1, 2
|
||
|
FOR y = 168 TO 195 STEP 2
|
||
|
FOR x = 200 TO 279
|
||
|
IF POINT(x, y) = 1 THEN PSET (x, y), 2
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
PAINT (220, 190), 1, 2
|
||
|
PAINT (259, 190), 1, 2
|
||
|
LINE (215, 176)-(264, 176), 7
|
||
|
CIRCLE (220, 198), 10, 7, .5, 2.64159
|
||
|
CIRCLE (259, 198), 10, 7, .5, 2.64159
|
||
|
PSET (200, 195), 7
|
||
|
DRAW "bD4 bR7 BR26 bR12 bBR27 bR7 bU4 l9 Bl22 l17 Bl22 l9"
|
||
|
FOR x = 215 TO 263 STEP 2
|
||
|
PSET (x, 174), 7
|
||
|
PSET (x, 175), 6
|
||
|
NEXT x
|
||
|
LINE (213, 198)-(227, 198), 2
|
||
|
PAINT (220, 197), 1, 2
|
||
|
CIRCLE (220, 195), 1, 8
|
||
|
LINE (215, 198)-(225, 217), 2, B
|
||
|
LINE (216, 199)-(224, 216), 1, BF
|
||
|
LINE (216, 199)-(224, 216), 6, B
|
||
|
LINE (220, 199)-(220, 211), 6: DRAW "nL3nR3"
|
||
|
PAINT (220, 215), 10, 6
|
||
|
CIRCLE (220, 199), 7, 10, .14, 3, 1.1
|
||
|
LINE (217, 200)-(219, 201), 10, B
|
||
|
LINE (221, 200)-(223, 201), 10, B
|
||
|
LINE (214, 218)-(226, 218), 7
|
||
|
GET (210, 190)-(230, 220), Box()
|
||
|
PUT (249, 190), Box(), PSET
|
||
|
PSET (200, 200), 10: DRAW "R6 D2 R6 BR16 R6 U2 R11 D2 R6 BR16 R6 U2 R6"
|
||
|
FOR x = 200 TO 279
|
||
|
FOR y = 200 TO 479 STEP 2
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 3
|
||
|
IF POINT(x, y + 1) = 0 THEN PSET (x, y + 1), 1
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (236, 202)-(243, 212), 2, B
|
||
|
PAINT (238, 210), 7, 2
|
||
|
LINE (237, 203)-(242, 211), 6, B
|
||
|
LINE (237, 207)-(242, 207), 6
|
||
|
PAINT (238, 206), 3, 6
|
||
|
PAINT (238, 208), 5, 6
|
||
|
LINE (235, 213)-(244, 213), 7
|
||
|
LINE (238, 204)-(241, 204), 10
|
||
|
LINE (202, 230)-(220, 234), 10, BF
|
||
|
LINE (218, 230)-(220, 254), 10, BF
|
||
|
LINE (259, 230)-(279, 234), 10, BF
|
||
|
LINE (200, 228)-(279, 229), 2, B
|
||
|
LINE (200, 229)-(201, 254), 2, B
|
||
|
LINE (278, 229)-(279, 254), 2, B
|
||
|
LINE (207, 232)-(212, 242), 6, B
|
||
|
LINE (208, 233)-(211, 233), 10
|
||
|
LINE (200, 245)-(220, 254), 2, B
|
||
|
PAINT (210, 235), 7, 6
|
||
|
PAINT (210, 235), 3, 6
|
||
|
LINE (207, 237)-(212, 237), 6
|
||
|
PAINT (210, 238), 5, 6
|
||
|
LINE (208, 233)-(211, 233), 10
|
||
|
LINE (200, 244)-(220, 254), 2, B
|
||
|
LINE (202, 244)-(220, 244), 7
|
||
|
LINE (202, 252)-(218, 253), 10, BF
|
||
|
FOR x = 202 TO 218 STEP 2
|
||
|
LINE (x, 245)-(x, 254), 2
|
||
|
NEXT x
|
||
|
LINE (226, 232)-(236, 246), 1, BF
|
||
|
LINE (226, 232)-(236, 246), 6, B
|
||
|
LINE (226, 239)-(236, 239), 6
|
||
|
LINE (225, 247)-(237, 247), 7
|
||
|
FOR x = 200 TO 239
|
||
|
FOR y = 200 TO 279
|
||
|
PSET (479 - x, y), POINT(x, y)
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (200, 228)-(279, 258), Box()
|
||
|
FOR y = 224 TO 450 STEP 32
|
||
|
PUT (200, y), Box(), PSET
|
||
|
IF FIX(RND * 12) = 0 THEN
|
||
|
PAINT (230, y + 6), 3, 6
|
||
|
PAINT (230, y + 14), 5, 6
|
||
|
END IF
|
||
|
IF FIX(RND * 2) = 0 THEN
|
||
|
PAINT (249, y + 6), 3, 6
|
||
|
PAINT (249, y + 14), 5, 6
|
||
|
END IF
|
||
|
IF FIX(RND * 5) = 0 THEN
|
||
|
PAINT (210, y + 8), 1, 6
|
||
|
PAINT (210, y + 11), 7, 6
|
||
|
END IF
|
||
|
IF FIX(RND * 2) = 0 THEN
|
||
|
PAINT (269, y + 8), 1, 6
|
||
|
PAINT (269, y + 11), 7, 6
|
||
|
END IF
|
||
|
LINE (227, y + 5)-(235, y + 5), 10
|
||
|
LINE (244, y + 5)-(252, y + 5), 10
|
||
|
LINE (268, y + 5)-(271, y + 5), 10
|
||
|
LINE (208, y + 5)-(211, y + 5), 10
|
||
|
NEXT y
|
||
|
SaveBUILDING 200, 25, 7
|
||
|
|
||
|
'Balcony Apartment ----------------------------------------------------------
|
||
|
LINE (0, 150)-(400, 479), 0, BF
|
||
|
GET (118, 50)-(133, 76), Box()
|
||
|
PUT (118, 250), Box()
|
||
|
LINE (300, 200)-(379, 479), 4, BF
|
||
|
GET (118, 240)-(133, 260), Box()
|
||
|
PUT (118, 246), Box(), PSET
|
||
|
GET (118, 256)-(133, 276), Box(6000)
|
||
|
PUT (218, 256), Box(6000)
|
||
|
FOR x = 218 TO 233
|
||
|
FOR y = 256 TO 276
|
||
|
IF POINT(x, y) = 1 OR POINT(x, y) = 10 THEN PSET (x, y), 3
|
||
|
IF POINT(x, y) = 2 THEN PSET (x, y), 5
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (219, 257)-(232, 276), Box(5000)
|
||
|
FOR x = 304 TO 360 STEP 18
|
||
|
IF x = 340 THEN x = 360
|
||
|
PUT (x, 212), Box(6000), PSET
|
||
|
NEXT x
|
||
|
GET (118, 50)-(133, 76), Box()
|
||
|
PUT (341, 212), Box(), PSET
|
||
|
GET (340, 224)-(359, 235), Box()
|
||
|
PUT (340, 230), Box(), PSET
|
||
|
LINE (329, 242)-(368, 243), 9, B
|
||
|
LINE (329, 232)-(368, 243), 8, B
|
||
|
FOR x = 330 TO 368 STEP 2
|
||
|
LINE (x, 232)-(x, 242), 8
|
||
|
NEXT x
|
||
|
LINE (300, 242)-(328, 243), 8, BF
|
||
|
LINE (369, 242)-(379, 243), 8, BF
|
||
|
LINE (300, 244)-(379, 244), 6
|
||
|
FOR x = 301 TO 379 STEP 18
|
||
|
IF x = 355 THEN x = 357
|
||
|
LINE (x, 214)-(x + 3, 228), 8, BF
|
||
|
FOR y = 216 TO 226 STEP 2
|
||
|
LINE (x + 1, y)-(x + 2, y), 7
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
GET (300, 212)-(379, 244), Box()
|
||
|
FOR y = 212 TO 440 STEP 38
|
||
|
PUT (300, y), Box(), PSET
|
||
|
NEXT y
|
||
|
LINE (300, 200)-(379, 204), 8, BF
|
||
|
LINE (300, 200)-(379, 200), 9
|
||
|
LINE (300, 205)-(379, 205), 6
|
||
|
LINE (320, 188)-(359, 199), 11, BF
|
||
|
LINE (319, 188)-(360, 190), 8, BF
|
||
|
LINE (320, 191)-(359, 191), 10
|
||
|
FOR x = 300 TO 379
|
||
|
FOR y = 200 TO 479
|
||
|
IF POINT(x, y) = 4 THEN PSET (x, y), 11
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR y = 188 TO 478 STEP 2
|
||
|
FOR x = 300 TO 379
|
||
|
IF POINT(x, y) = 11 THEN PSET (x, y), 3
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
PSET (363, 199), 7
|
||
|
DRAW "U24 C15 D"
|
||
|
FOR x = 305 TO 360 STEP 18
|
||
|
IF x = 341 THEN x = 361
|
||
|
FOR y = 213 TO 440 STEP 38
|
||
|
IF FIX(RND * 10) = 0 THEN PUT (x, y), Box(5000), PSET
|
||
|
LINE (329, 232)-(368, 232), 15
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR y = 232 TO 470 STEP 38
|
||
|
LINE (329, y)-(368, y), 15
|
||
|
NEXT y
|
||
|
SaveBUILDING 300, 0, 8
|
||
|
LINE (0, 150)-(639, 479), 0, BF
|
||
|
RETURN
|
||
|
|
||
|
SetPALETTE:
|
||
|
DATA 0, 4, 16, 0, 10, 21, 0, 16, 32, 32, 10, 0
|
||
|
DATA 63, 0, 0, 63, 32, 0, 18, 18, 24, 30, 30, 37
|
||
|
DATA 42, 42, 50, 55, 55, 63, 0, 0, 0, 43, 27, 19
|
||
|
DATA 8, 8, 21, 0, 63, 21, 63, 63, 21, 63, 63, 63
|
||
|
|
||
|
RESTORE SetPALETTE
|
||
|
OUT &H3C8, 0
|
||
|
FOR n = 1 TO 48
|
||
|
READ Intensity
|
||
|
OUT &H3C9, Intensity
|
||
|
NEXT n
|
||
|
RETURN
|
||
|
|
||
|
WinBOXES:
|
||
|
GET (140, 0)-(256, 18), Box()
|
||
|
GET (376, 0)-(500, 18), Box(5000)
|
||
|
GET (520, 0)-(580, 18), Box(10000)
|
||
|
PUT (198, 200), Box()
|
||
|
PUT (320, 200), Box(10000)
|
||
|
PrintSTRING 220, 223, "To play again, press ENTER"
|
||
|
PrintSTRING 219, 236, "Press any other key to EXIT"
|
||
|
FOR x = 174 TO 400
|
||
|
FOR y = 192 TO 254
|
||
|
IF y > 210 THEN Colr = 8 ELSE Colr = 15
|
||
|
IF y > 222 THEN Colr = 9
|
||
|
IF POINT(x, y) = 0 THEN PSET (x, y), 1 ELSE PSET (x, y), Colr
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
FOR y = 224 TO 200 STEP -1
|
||
|
FOR x = 174 TO 400
|
||
|
IF POINT(x, y - 2) <> 1 AND POINT(x, y) = 1 THEN PSET (x, y), 10
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
LINE (176, 194)-(398, 252), 6, B
|
||
|
LINE (174, 192)-(400, 254), 6, B
|
||
|
GET (174, 192)-(400, 254), Box()
|
||
|
LINE (170, 188)-(404, 258), 8, BF
|
||
|
LINE (170, 188)-(404, 258), 15, B
|
||
|
LINE (170, 258)-(404, 258), 10
|
||
|
LINE (404, 188)-(404, 258), 10
|
||
|
PUT (174, 192), Box(), PSET
|
||
|
GET (170, 188)-(404, 258), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kongwink.bsv", VARPTR(Box(1)), 9000
|
||
|
DEF SEG
|
||
|
LINE (177, 197)-(394, 222), 1, BF
|
||
|
PUT (196, 200), Box(5000)
|
||
|
PUT (324, 200), Box(10000)
|
||
|
FOR y = 224 TO 200 STEP -1
|
||
|
FOR x = 190 TO 382
|
||
|
IF y > 210 THEN Colr = 8 ELSE Colr = 15
|
||
|
IF POINT(x, y - 2) <> 1 THEN PSET (x, y - 2), Colr
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
FOR y = 224 TO 200 STEP -1
|
||
|
FOR x = 174 TO 400
|
||
|
IF POINT(x, y - 2) <> 1 AND POINT(x, y) = 1 THEN PSET (x, y), 10
|
||
|
NEXT x
|
||
|
NEXT y
|
||
|
GET (196, 200)-(386, 220), Box()
|
||
|
PUT (195, 200), Box(), PSET
|
||
|
GET (170, 188)-(404, 258), Box()
|
||
|
PUT (170, 188), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kongwiny.bsv", VARPTR(Box(1)), 9000
|
||
|
DEF SEG
|
||
|
RETURN
|
||
|
|
||
|
Instructions:
|
||
|
LINE (192, 160)-(447, 310), 8, BF
|
||
|
LINE (192, 160)-(447, 310), 15, B
|
||
|
LINE (192, 310)-(447, 310), 10
|
||
|
LINE (447, 160)-(447, 310), 10
|
||
|
LINE (202, 164)-(436, 305), 1, BF
|
||
|
LINE (202, 164)-(436, 305), 6, B
|
||
|
LINE (204, 166)-(434, 303), 6, B
|
||
|
LINE (400, 175)-(424, 187), 7, BF
|
||
|
PrintSTRING 216, 176, "INSTRUCTIONS"
|
||
|
PrintSTRING 216, 194, "The object of the game is to be the first"
|
||
|
PrintSTRING 216, 206, "player to achieve a score of 3. You gain"
|
||
|
PrintSTRING 216, 218, "1"
|
||
|
PrintSTRING 225, 218, "point each time you blow up the other"
|
||
|
PrintSTRING 216, 230, "player's gorilla with an exploding banana."
|
||
|
PrintSTRING 216, 248, "Unless playing the computer, begin by"
|
||
|
PrintSTRING 216, 260, "deciding which player will control which"
|
||
|
PrintSTRING 216, 272, "gorilla, then click the"
|
||
|
PrintSTRING 340, 272, "button to begin."
|
||
|
PrintSTRING 216, 284, "The starting gorilla is chosen at random."
|
||
|
FOR x = 207 TO 431
|
||
|
FOR y = 167 TO 295
|
||
|
IF y < 194 THEN Colr = 9 ELSE Colr = 8
|
||
|
IF y < 181 THEN Colr = 15
|
||
|
IF POINT(x, y) <> 1 THEN PSET (x, y), Colr
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
HighLIGHT 354, 206, 362, 217, 9
|
||
|
HighLIGHT 216, 218, 222, 229, 9
|
||
|
PSET (404, 184), 6
|
||
|
DRAW "U6 R12 U2 F5 G5 U2 L12 BE2 P6,6"
|
||
|
LINE (321, 275)-(332, 281), 8, BF
|
||
|
LINE (321, 282)-(332, 282), 10
|
||
|
LINE (323, 278)-(330, 278), 1: DRAW "NH2G2"
|
||
|
SaveINSTR "kongins1.bsv"
|
||
|
LINE (205, 193)-(433, 295), 1, BF
|
||
|
PrintSTRING 216, 194, "When a player's gorilla is the thrower,"
|
||
|
PrintSTRING 216, 206, "the LED will be green under his name (and"
|
||
|
PrintSTRING 216, 218, "he'll be holding a banana). Click on the"
|
||
|
PrintSTRING 216, 230, "Angle slider and drag it to adjust the initial"
|
||
|
PrintSTRING 216, 242, "throwing angle (0 degrees is a horizontal"
|
||
|
PrintSTRING 216, 254, "throw in the other gorilla's direction). Set"
|
||
|
PrintSTRING 216, 266, "the Force slider in the same way. To toss"
|
||
|
PrintSTRING 216, 278, "the banana, click the Banana button"
|
||
|
PrintSTRING 410, 278, "."
|
||
|
HighLIGHT 216, 194, 434, 295, 8
|
||
|
HighLIGHT 234, 206, 254, 217, 9
|
||
|
HighLIGHT 216, 230, 244, 241, 9
|
||
|
HighLIGHT 236, 266, 264, 277, 9
|
||
|
HighLIGHT 322, 278, 360, 299, 9
|
||
|
LINE (204, 166)-(434, 303), 6, B
|
||
|
GET (99, 80)-(109, 90), Box()
|
||
|
PUT (397, 279), Box(), PSET
|
||
|
SaveINSTR "kongins2.bsv"
|
||
|
LINE (205, 193)-(433, 295), 1, BF
|
||
|
PrintSTRING 216, 194, "Be sure to check the Wind arrow (bottom"
|
||
|
PrintSTRING 216, 206, "center of the screen). The arrow shows both"
|
||
|
PrintSTRING 216, 218, "the direction and strength of the wind (the"
|
||
|
PrintSTRING 216, 230, "longer the arrow, the stronger the wind). A"
|
||
|
PrintSTRING 216, 242, "strong opposing wind can actually blow the"
|
||
|
PrintSTRING 216, 254, "banana backwards if the Force of the toss"
|
||
|
PrintSTRING 216, 266, "isn't strong enough!"
|
||
|
PrintSTRING 348, 282, "Good Luck!"
|
||
|
HighLIGHT 216, 194, 434, 295, 8
|
||
|
HighLIGHT 320, 194, 348, 205, 9
|
||
|
HighLIGHT 348, 282, 420, 294, 15
|
||
|
LINE (400, 175)-(424, 187), 15, BF
|
||
|
LINE (400, 182)-(424, 187), 9, BF
|
||
|
PSET (406, 177), 4
|
||
|
DRAW "F8rH8rF8rH8rF8 BU8 G8lE8lG8lE8lG8"
|
||
|
FOR x = 400 TO 424
|
||
|
FOR y = 175 TO 187
|
||
|
IF POINT(x, y) <> 15 AND POINT(x, y) <> 9 THEN PSET (x, y), 6
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (204, 166)-(434, 303), 6, B
|
||
|
SaveINSTR "kongins3.bsv"
|
||
|
PUT (192, 160), Box()
|
||
|
LINE (180, 194)-(400, 270), 7, BF
|
||
|
LINE (180, 194)-(400, 270), 9, B
|
||
|
LINE (180, 270)-(400, 270), 6
|
||
|
LINE (400, 194)-(400, 270), 6
|
||
|
LINE (194, 198)-(384, 266), 1, BF
|
||
|
LINE (196, 200)-(382, 264), 6, B
|
||
|
PrintSTRING 238, 208, "Click Your Preference"
|
||
|
PrintSTRING 252, 227, "2 players"
|
||
|
PrintSTRING 252, 243, "1 player (play computer)"
|
||
|
HighLIGHT 238, 208, 380, 255, 9
|
||
|
HighLIGHT 238, 208, 380, 214, 15
|
||
|
LINE (215, 227)-(241, 239), 10, B
|
||
|
LINE (216, 228)-(240, 238), 8, BF
|
||
|
LINE (216, 228)-(240, 238), 15, B
|
||
|
LINE (240, 228)-(240, 238), 6
|
||
|
LINE (216, 238)-(240, 238), 6
|
||
|
LINE (215, 243)-(241, 255), 10, B
|
||
|
LINE (216, 244)-(240, 254), 8, BF
|
||
|
LINE (216, 244)-(240, 254), 15, B
|
||
|
LINE (240, 244)-(240, 254), 6
|
||
|
LINE (216, 254)-(240, 254), 6
|
||
|
GET (180, 194)-(400, 270), Box()
|
||
|
PUT (180, 194), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kong1pl2.bsv", VARPTR(Box(1)), 8800
|
||
|
DEF SEG
|
||
|
LINE (180, 194)-(400, 270), 7, BF
|
||
|
LINE (180, 194)-(400, 270), 9, B
|
||
|
LINE (180, 270)-(400, 270), 6
|
||
|
LINE (400, 194)-(400, 270), 6
|
||
|
LINE (194, 198)-(384, 266), 1, BF
|
||
|
LINE (196, 200)-(382, 264), 6, B
|
||
|
PrintSTRING 256, 207, "Your gorilla is"
|
||
|
PrintSTRING 236, 243, "Click to begin"
|
||
|
HighLIGHT 233, 207, 380, 257, 9
|
||
|
FOR x = 138 TO 256
|
||
|
FOR y = 0 TO 20
|
||
|
IF y > 9 THEN Colr = 8 ELSE Colr = 15
|
||
|
IF POINT(x, y) <> 0 THEN
|
||
|
PSET (x + 92, y + 223), 10
|
||
|
PSET (x + 92, y + 221), Colr
|
||
|
END IF
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
LINE (311, 244)-(337, 253), 10, B
|
||
|
LINE (312, 245)-(336, 255), 8, BF
|
||
|
LINE (312, 245)-(336, 255), 15, B
|
||
|
LINE (336, 245)-(336, 255), 6
|
||
|
LINE (312, 255)-(336, 255), 6
|
||
|
PSET (318, 249), 1
|
||
|
DRAW "R9 U2 F3 G3 U2 L9 U2 BF P1,1"
|
||
|
GET (180, 194)-(400, 270), Box()
|
||
|
PUT (180, 194), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kong1plr.bsv", VARPTR(Box(1)), 8800
|
||
|
DEF SEG
|
||
|
LINE (180, 194)-(400, 270), 7, BF
|
||
|
LINE (180, 194)-(400, 270), 9, B
|
||
|
LINE (180, 270)-(400, 270), 6
|
||
|
LINE (400, 194)-(400, 270), 6
|
||
|
LINE (194, 198)-(384, 266), 1, BF
|
||
|
LINE (196, 200)-(382, 264), 6, B
|
||
|
PrintSTRING 234, 214, "Decide who will control"
|
||
|
PrintSTRING 234, 226, "which gorilla and then..."
|
||
|
PrintSTRING 236, 243, "Click to begin"
|
||
|
HighLIGHT 225, 212, 380, 257, 9
|
||
|
LINE (311, 244)-(337, 253), 10, B
|
||
|
LINE (312, 245)-(336, 255), 8, BF
|
||
|
LINE (312, 245)-(336, 255), 15, B
|
||
|
LINE (336, 245)-(336, 255), 6
|
||
|
LINE (312, 255)-(336, 255), 6
|
||
|
PSET (318, 249), 1
|
||
|
DRAW "R9 U2 F3 G3 U2 L9 U2 BF P1,1"
|
||
|
GET (180, 194)-(400, 270), Box()
|
||
|
PUT (180, 194), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE "kongopen.bsv", VARPTR(Box(1)), 8800
|
||
|
DEF SEG
|
||
|
RETURN
|
||
|
|
||
|
SUB HighLIGHT (x1, y1, x2, y2, Colr)
|
||
|
FOR x = x1 TO x2
|
||
|
FOR y = y1 TO y2
|
||
|
IF POINT(x, y) <> 1 THEN PSET (x, y), Colr
|
||
|
NEXT y
|
||
|
NEXT x
|
||
|
END SUB
|
||
|
|
||
|
SUB PrintSTRING (x, y, Prnt$)
|
||
|
|
||
|
DEF SEG = VARSEG(FontBOX(0))
|
||
|
BLOAD "kong.fbs", VARPTR(FontBOX(0))
|
||
|
DEF SEG
|
||
|
|
||
|
FOR i = 1 TO LEN(Prnt$)
|
||
|
Char$ = MID$(Prnt$, i, 1)
|
||
|
IF Char$ = " " THEN
|
||
|
x = x + FontBOX(1)
|
||
|
ELSE
|
||
|
Index = (ASC(Char$) - 33) * FontBOX(0) + 2
|
||
|
|
||
|
PUT (x, y), FontBOX(Index)
|
||
|
x = x + FontBOX(Index)
|
||
|
END IF
|
||
|
NEXT i
|
||
|
|
||
|
END SUB
|
||
|
|
||
|
SUB SaveBUILDING (x, UpSET, Building)
|
||
|
|
||
|
Box(1) = UpSET
|
||
|
LINE (x, 155)-(x, 479), 0
|
||
|
LINE (x + 79, 155)-(x + 79, 479), 0
|
||
|
GET (x, 155)-(x + 79, 199), Box(2)
|
||
|
FOR xx = x TO x + 79
|
||
|
FOR yy = 155 TO 199
|
||
|
IF POINT(xx, yy) = 0 THEN PSET (xx, yy), 15 ELSE PSET (xx, yy), 0
|
||
|
NEXT yy
|
||
|
NEXT xx
|
||
|
GET (x, 155)-(x + 79, 199), Box(1000)
|
||
|
GET (x, 200)-(x + 79, 479), Box(2000)
|
||
|
FileNAME$ = "kongbld" + LTRIM$(STR$(Building)) + ".bsv"
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE FileNAME$, VARPTR(Box(1)), 16000
|
||
|
DEF SEG
|
||
|
|
||
|
END SUB
|
||
|
|
||
|
SUB SaveINSTR (FileNAME$)
|
||
|
GET (192, 160)-(447, 310), Box()
|
||
|
DEF SEG = VARSEG(Box(1))
|
||
|
BSAVE FileNAME$, VARPTR(Box(1)), 20000
|
||
|
DEF SEG
|
||
|
END SUB
|
||
|
|