Tank1$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C128R6DC129L6DC130R6DC131L6DC132R6C18BL6BU3BR2R2DL2DR2BUR3" Tank2$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C128R6DC129L6DC130R6DC131L6DC132R6C18BL6BU3BR2R2DL2DR2BUL5" Tank3$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C128R6DC129L6DC130R6DC131L6DC132R6C18BL6BU3BR2R2DL2DR2BULU3" Tank4$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C128R6DC129L6DC130R6DC131L6DC132R6C18BL6BU3BR2R2DL2DR2BULD3" EnemyTank1$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C165R6DC166L6DC167R6DC168L6DC169R6C18BL6BU3BR2R2DL2DR2BUR3" EnemyTank2$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C165R6DC166L6DC167R6DC168L6DC169R6C18BL6BU3BR2R2DL2DR2BUL5" EnemyTank3$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C165R6DC166L6DC167R6DC168L6DC169R6C18BL6BU3BR2R2DL2DR2BULU3" EnemyTank4$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14BU6BR4C165R6DC166L6DC167R6DC168L6DC169R6C18BL6BU3BR2R2DL2DR2BULD3" TankHide$ = "C160R14DL14DR14DL14DR14DL14DR14DL14DR14DL14" Castle$ = _ "C25BD10BRU20D20RC26U21D21RC27U22D22RC28U22RD22RC29U21D21RC29U20C0BL5BD5RBR2RBD4LBL2LBD4RBR2RBD4LBL2LC29BR6BD2BU9EGBD2E3G3BD2E5G5BD2E7G7BD2E9G9BD2E11G11BR2E11G11BR2E11G11BR2E11G11BR2E11G11BR2E11G11BR2E9G9BR2E7G7BR2E5G5BR2E3G3BR2EGC25BR2U20D20RC26U21D21RC27U22D22RC28U22RD22RC29U21D21RC30U20C0BL5BD5RBR2RBD4LBL2LBD4RBR2RBD4LBL2LC29BU9BL19R13UL13UR3BR2R3BR2R3C28BD3BL17D11R10U11L10R10D11R11U11L11C7BR5BUU16BDC4BLL5DR5DL5" _ Road$ = "C26U20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20" Road2$ = "C26U20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20RC28U20D20C26BRU20D20RC27U20D20" Tree$ = "C138L2UR2UL2UR2BUC164R3L8BUC166LR10BUC167L10BUBRC168R8BUBLC169L6BUC170LR8BUBLC168L6BUBRC166R4BUBLC164L2" Lazer$ = "C110R10DL10DR10DL10DR10DL10" Size = 0: a = RND(10): B = RND(400): T1H = 6: T1V = 87: T2H = 300: T2V = 102 Direction1 = 0: Direction2 = 0: Speed = 120: BulletSpeed = Speed / 10 Fire1 = 0: Fire2 = 0: ShootTime1 = 0: ShootTime2 = 0: BD1 = 0: BD2 = 0 ShootLength = 30: Round = 1: T1Wins = 0: T2Wins = 0: Flag = 0: FlagCount = 1 SCREEN 13 C = 16: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * a) + (256 * 0) + 0: C = C + 1: NEXT a C = 32: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * 0) + (256 * a) + 0: C = C + 1: NEXT a C = 48: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * 0) + (256 * 0) + a: C = C + 1: NEXT a C = 64: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * a) + (256 * a) + 0: C = C + 1: NEXT a C = 80: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * a) + (256 * 0) + a: C = C + 1: NEXT a C = 96: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * 0) + (256 * a) + a: C = C + 1: NEXT a C = 112: B = 0: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * a) + (256 * B) + 0: B = B + 3: C = C + 1: NEXT a C = 128: B = 0: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * B) + (256 * 0) + a: B = B + 3: C = C + 1: NEXT a C = 144: B = 0: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * B) + (256 * a) + 0: B = B + 3: C = C + 1: NEXT a C = 160: B = 0: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * B) + (256 * a) + a: B = B + 3: C = C + 1: NEXT a C = 176: B = 0: FOR a = 16 TO 61 STEP 3: PALETTE C, (256 ^ 2 * a) + (256 * a) + a: C = C + 1: NEXT a C = 192: B = 12: aa = 0: FOR a = 30 TO 62 STEP 2: PALETTE C, (256 ^ 2 * B) + (256 * aa) + a: B = B + 2: C = C + 1: NEXT a C = 208: B = 12: aa = 0: FOR a = 30 TO 62 STEP 2: PALETTE C, (256 ^ 2 * B) + (256 * B) + a: B = B + 2: C = C + 1: NEXT a C = 224: B = 12: aa = 0: FOR a = 30 TO 62 STEP 2: PALETTE C, (256 ^ 2 * aa) + (256 * B) + a: B = B + 2: C = C + 1: NEXT a PALETTE 1, 0 LOCATE 9, 15: COLOR 1 PRINT " HORIZONS Interactive Entertainment" LOCATE 13, 12: COLOR 1 PRINT "P R E S E N T S" Vertical = 72: C = 48 - 16 DO FOR HScan = 1 TO 300 IF POINT(HScan, Vertical) > 0 THEN PSET (HScan, Vertical), C + INT(RND * 15) NEXT Vertical = Vertical + 1 LOOP UNTIL Vertical = 79 Vertical = 96: C = 49 DO FOR HScan = 1 TO 300 IF POINT(HScan, Vertical) > 0 THEN PSET (HScan, Vertical), C + INT(RND * 14) NEXT Vertical = Vertical + 1 LOOP UNTIL Vertical = 103 NOW = TIMER: WHILE (TIMER - 3) < NOW: WEND DIM y1(726), x1(726) CLS : SCREEN 9: COLOR 15 PALETTE 15, 0: PALETTE 1, 36: PALETTE 2, 4 PRINT PRINT " QBasic - TANK COMMANDER version 1" PRINT PRINT " This game is a simple two player game in which you and another player drive" PRINT " about the game arena trying to shoot one another. Both of the tanks are very" PRINT " powerfull machines, with deadly cannons, and the ability to demolish anything" PRINT " in their path. Even the tallest building is no match for these monsters!!!" PRINT " There are four levels to this game, in which you and a friend/foe must battle" PRINT " it out. At the end of the levels, the person who has achieved the most kills" PRINT " will be the winner." PRINT PRINT " PLAYER ONE - Up:8 Down:2 Left:4 Right:6 Shoot:0 Stop:5" PRINT " PLAYER TWO - Up:Q Down:A Left:O Right:P Shoot:SPACE Stop:S" PRINT PRINT " Press the ESC key at any point to exit the game." FOR L = 0 TO 640 x1(L) = RND * .3 + .8 y1(L) = 0 NEXT FOR L = 1 TO 700 FOR x1 = 0 TO 640 y1(x1) = y1(x1) + x1(x1) IF POINT(x1, y1(x1)) = 0 THEN PSET (x1, y1(x1)), INT(RND * 2 + 1) NEXT NEXT CLS : SCREEN 13 PSET (0, 0), 0: DRAW Tank1$: PSET (13, 0), 0: DRAW Tank2$ PSET (26, 0), 0: DRAW Tank3$: PSET (39, 0), 0: DRAW Tank4$ PSET (0, 9), 0: DRAW TankHide$ DIM Tank1(50): GET (0, 0)-(14, 10), Tank1 DIM Tank2(50): GET (14, 0)-(27, 9), Tank2 DIM Tank3(50): GET (27, 0)-(41, 9), Tank3 DIM Tank4(50): GET (41, 0)-(53, 9), Tank4 DIM TankHide(50): GET (0, 10)-(12, 18), TankHide PSET (0, 0), 0: DRAW EnemyTank1$: PSET (13, 0), 0: DRAW EnemyTank2$ PSET (26, 0), 0: DRAW EnemyTank3$: PSET (39, 0), 0: DRAW EnemyTank4$ DIM EnemyTank1(50): GET (0, 0)-(14, 10), EnemyTank1 DIM EnemyTank2(50): GET (14, 0)-(27, 9), EnemyTank2 DIM EnemyTank3(50): GET (27, 0)-(41, 9), EnemyTank3 DIM EnemyTank4(50): GET (41, 0)-(53, 9), EnemyTank4 PSET (0, 0), 0: DRAW Lazer$ DIM Lazer(5): GET (0, 0)-(0, 0), Lazer CLS FOR SetAllToBlack = 1 TO 254 IF SetAllToBlack = 7 THEN SetAllToBlack = SetAllToBlack + 1 IF SetAllToBlack = 4 THEN SetAllToBlack = SetAllToBlack + 1 IF SetAllToBlack = 8 THEN SetAllToBlack = SetAllToBlack + 1 PALETTE SetAllToBlack, 0 NEXT COLOR 7: LOCATE 1, 1: PRINT "Loading graphics" COLOR 8: LOCATE 1, 18: PRINT "ллллллллллллл" COLOR 4: LOCATE 1, 18: PRINT "л"; DIM y(726), x(726) FOR L = 0 TO 640 x(L) = RND * .1 + .85 y(L) = 10 NEXT FOR L = 10 TO 50 FOR x = 0 TO 640 y(x) = y(x) + x(x) PSET (x, y(x)), INT(RND * 2 + 2) NEXT Flag = Flag + 1: IF Flag = 20 THEN COLOR 4: PRINT "л"; : Flag = 0: FlagCount = FlagCount + 1 ELSE REM Do Nothing NEXT x = 28 Col = x a = INT(RND * 350): B = INT(RND * 180 + 30) FOR DrawRocks = 1 TO 8500 FOR DrawRock = 1 TO 8 CIRCLE (a, B), Size, Col, , , 10 / 18 Size = Size + 1: Col = Col - 1 NEXT DrawRock Col = x: Size = 0: a = INT(RND * 350): B = INT(RND * 180 + 30) Flag = Flag + 1: IF Flag = 800 THEN COLOR 4: PRINT "л"; : Flag = 0: FlagCount = FlagCount + 1 ELSE REM Do Nothing NEXT DrawRocks PSET (207, 110), 25: DRAW Castle$: PSET (104, 124), 25: DRAW Castle$ PSET (110, 60), 25: DRAW Castle$: PSET (28, 160), 25: DRAW Tree$ PSET (34, 125), 25: DRAW Tree$: PSET (42, 145), 25: DRAW Tree$ PSET (24, 140), 25: DRAW Tree$: PSET (57, 60), 25: DRAW Tree$ PSET (28, 72), 25: DRAW Tree$: PSET (78, 68), 25: DRAW Tree$ PSET (248, 188), 25: DRAW Tree$: PSET (208, 188), 25: DRAW Tree$ PSET (192, 188), 25: DRAW Tree$: PSET (28, 160), 25: DRAW Tree$ PSET (305, 80), 25: DRAW Tree$: GOSUB DrawRoad PSET (0, 8), 0: DRAW "R500DL500DR500DL500" COLOR 6: LOCATE 1, 1: PRINT " Qbasic - TANK COMMANDER " DIM Title(800): GET (20, 0)-(280, 8), Title COLOR 4: LOCATE 1, 1: PRINT " Qbasic - TANK COMMANDER " PUT (19, 1), Title PALETTE GOTO SavScrn DrawRoad: COLOR 160 LOCATE 12, 9: PRINT "лллл": LOCATE 13, 9: PRINT "лллл" LOCATE 11, 1: PRINT "лллллллллллллллллллллллл" LOCATE 12, 1: PRINT "лллллллллллллллллллллллл" LOCATE 13, 1: PRINT "лллллллллллллллллллллллл" LOCATE 9, 21: PRINT "лллл": LOCATE 8, 21: PRINT "лллл" LOCATE 7, 21: PRINT "лллл": LOCATE 7, 25: PRINT "лллл" LOCATE 8, 25: PRINT "лллл": LOCATE 9, 25: PRINT "лллл" LOCATE 7, 29: PRINT "лллл": LOCATE 8, 29: PRINT "лллл" LOCATE 9, 29: PRINT "лллл": LOCATE 9, 33: PRINT "лллл" LOCATE 7, 33: PRINT "лллл": LOCATE 8, 33: PRINT "лллл" LOCATE 9, 33: PRINT "лллл": LOCATE 10, 33: PRINT "лллл" LOCATE 11, 33: PRINT "лллл": LOCATE 12, 33: PRINT "лллл" LOCATE 13, 33: PRINT "лллл": LOCATE 14, 33: PRINT "лллл" LOCATE 15, 33: PRINT "лллл": LOCATE 13, 37: PRINT "лллл" LOCATE 14, 37: PRINT "лллл": LOCATE 15, 37: PRINT "лллл" LOCATE 16, 33: PRINT "лллл": LOCATE 17, 33: PRINT "лллл" LOCATE 18, 33: PRINT "лллл": LOCATE 19, 33: PRINT "лллл" LOCATE 20, 33: PRINT "лллл": LOCATE 21, 33: PRINT "лллл" LOCATE 19, 29: PRINT "лллл": LOCATE 20, 29: PRINT "лллл" LOCATE 21, 29: PRINT "лллл": LOCATE 19, 25: PRINT "лллл" LOCATE 20, 25: PRINT "лллл": LOCATE 21, 25: PRINT "лллл" LOCATE 19, 21: PRINT "лллл": LOCATE 20, 21: PRINT "лллл" LOCATE 21, 21: PRINT "лллл": LOCATE 16, 21: PRINT "лллл" LOCATE 17, 21: PRINT "лллл": LOCATE 18, 21: PRINT "лллл" LOCATE 13, 21: PRINT "лллл": LOCATE 14, 21: PRINT "лллл" LOCATE 15, 21: PRINT "лллл": LOCATE 14, 8: PRINT "лллл" LOCATE 15, 8: PRINT "лллл": LOCATE 16, 8: PRINT "лллл" LOCATE 17, 8: PRINT "лллл": LOCATE 18, 8: PRINT "лллл" LOCATE 19, 8: PRINT "лллл": LOCATE 19, 8: PRINT "лллл" LOCATE 20, 8: PRINT "лллл": LOCATE 21, 8: PRINT "лллл" LOCATE 19, 12: PRINT "лллл": LOCATE 20, 12: PRINT "лллл" LOCATE 21, 12: PRINT "лллл": LOCATE 19, 16: PRINT "лллл" LOCATE 20, 16: PRINT "лллл": LOCATE 21, 16: PRINT "лллл" LOCATE 19, 20: PRINT "лллл": LOCATE 20, 20: PRINT "лллл" LOCATE 21, 20: PRINT "лллл": LOCATE 10, 21: PRINT "лллл" RETURN SavScrn: DIM Arena1(12000) GET (0, 0)-(110, 199), Arena1 DIM Arena2(12000) GET (110, 0)-(318, 199), Arena2 PUT (T1H, T1V), Tank1, PSET PUT (T2H, T2V), EnemyTank2, PSET Main: Count = 0 DO IF Direction1 = 1 AND T1H < 305 AND Count = Speed THEN PUT (T1H, T1V), TankHide, PSET: T1H = T1H + 1: PUT (T1H, T1V), Tank1, PSET IF Direction1 = 2 AND T1H > 0 AND Count = Speed THEN PUT (T1H, T1V), TankHide, PSET: T1H = T1H - 1: PUT (T1H, T1V), Tank2, PSET IF Direction1 = 3 AND T1V > 26 AND Count = Speed THEN PUT (T1H, T1V), TankHide, PSET: T1V = T1V - 1: PUT (T1H, T1V), Tank3, PSET IF Direction1 = 4 AND T1V < 189 AND Count = Speed THEN PUT (T1H, T1V), TankHide, PSET: T1V = T1V + 1: PUT (T1H, T1V), Tank4, PSET IF Direction2 = 1 AND T2H < 305 AND Count = Speed THEN PUT (T2H, T2V), TankHide, PSET: T2H = T2H + 1: PUT (T2H, T2V), EnemyTank1, PSET IF Direction2 = 2 AND T2H > 0 AND Count = Speed THEN PUT (T2H, T2V), TankHide, PSET: T2H = T2H - 1: PUT (T2H, T2V), EnemyTank2, PSET IF Direction2 = 3 AND T2V > 26 AND Count = Speed THEN PUT (T2H, T2V), TankHide, PSET: T2V = T2V - 1: PUT (T2H, T2V), EnemyTank3, PSET IF Direction2 = 4 AND T2V < 189 AND Count = Speed THEN PUT (T2H, T2V), TankHide, PSET: T2V = T2V + 1: PUT (T2H, T2V), EnemyTank4, PSET IF Fire1 = 1 AND ShootTime1 < 100 AND BD1 = 1 AND Count = BulletSpeed THEN GOSUB CheckBullet1: PUT (B1H, B1V), Lazer, XOR: B1H = B1H + 2: ShootTime1 = ShootTime1 + 1: PUT (B1H, B1V), Lazer, XOR: GOSUB Scan1 IF Fire1 = 1 AND ShootTime1 < 100 AND BD1 = 2 AND Count = BulletSpeed THEN GOSUB CheckBullet1: PUT (B1H, B1V), Lazer, XOR: B1H = B1H - 2: ShootTime1 = ShootTime1 + 1: PUT (B1H, B1V), Lazer, XOR: GOSUB Scan1 IF Fire1 = 1 AND ShootTime1 < 100 AND BD1 = 3 AND Count = BulletSpeed THEN GOSUB CheckBullet1: PUT (B1H, B1V), Lazer, XOR: B1V = B1V - 2: ShootTime1 = ShootTime1 + 1: PUT (B1H, B1V), Lazer, XOR: GOSUB Scan1 IF Fire1 = 1 AND ShootTime1 < 100 AND BD1 = 4 AND Count = BulletSpeed THEN GOSUB CheckBullet1: PUT (B1H, B1V), Lazer, XOR: B1V = B1V + 2: ShootTime1 = ShootTime1 + 1: PUT (B1H, B1V), Lazer, XOR: GOSUB Scan1 IF Fire2 = 1 AND ShootTime2 < 100 AND BD2 = 1 AND Count = BulletSpeed THEN GOSUB CheckBullet2: PUT (B2H, B2V), Lazer, XOR: B2H = B2H + 2: ShootTime2 = ShootTime2 + 1: PUT (B2H, B2V), Lazer, XOR: GOSUB Scan2 IF Fire2 = 1 AND ShootTime2 < 100 AND BD2 = 2 AND Count = BulletSpeed THEN GOSUB CheckBullet2: PUT (B2H, B2V), Lazer, XOR: B2H = B2H - 2: ShootTime2 = ShootTime2 + 1: PUT (B2H, B2V), Lazer, XOR: GOSUB Scan2 IF Fire2 = 1 AND ShootTime2 < 100 AND BD2 = 3 AND Count = BulletSpeed THEN GOSUB CheckBullet2: PUT (B2H, B2V), Lazer, XOR: B2V = B2V - 2: ShootTime2 = ShootTime2 + 1: PUT (B2H, B2V), Lazer, XOR: GOSUB Scan2 IF Fire2 = 1 AND ShootTime2 < 100 AND BD2 = 4 AND Count = BulletSpeed THEN GOSUB CheckBullet2: PUT (B2H, B2V), Lazer, XOR: B2V = B2V + 2: ShootTime2 = ShootTime2 + 1: PUT (B2H, B2V), Lazer, XOR: GOSUB Scan2 IF ShootTime1 >= ShootLength THEN LET Fire1 = 0: ShootTime1 = 0: PUT (B1H, B1V), Lazer, XOR IF ShootTime2 >= ShootLength THEN LET Fire2 = 0: ShootTime2 = 0: PUT (B2H, B2V), Lazer, XOR Key$ = INKEY$ IF Key$ = "6" THEN Direction1 = 1 IF Key$ = "4" THEN Direction1 = 2 IF Key$ = "8" THEN Direction1 = 3 IF Key$ = "2" THEN Direction1 = 4 IF Key$ = "5" THEN Direction1 = 0 IF Key$ = "0" AND Fire1 = 0 THEN GOSUB Shooter1 ELSE REM Already shooting. IF Key$ = "P" OR Key$ = "p" THEN Direction2 = 1 IF Key$ = "O" OR Key$ = "o" THEN Direction2 = 2 IF Key$ = "Q" OR Key$ = "q" THEN Direction2 = 3 IF Key$ = "A" OR Key$ = "a" THEN Direction2 = 4 IF Key$ = "S" OR Key$ = "s" THEN Direction2 = 0 IF Key$ = CHR$(32) AND Fire2 = 0 THEN GOSUB Shooter2 ELSE REM Already shooting. IF Key$ = CHR$(27) THEN GOTO ShowResults IF Count < Speed THEN Count = Count + 1 ELSE Count = 0 LOOP Shooter1: BD1 = Direction1 IF BD1 = 0 THEN RETURN IF BD1 = 1 THEN Fire1 = 1: B1H = (T1H + 14): B1V = (T1V + 5) IF BD1 = 2 THEN Fire1 = 1: B1H = (T1H - 1): B1V = (T1V + 5) IF BD1 = 3 THEN Fire1 = 1: B1H = (T1H + 6): B1V = (T1V - 1) IF BD1 = 4 THEN Fire1 = 1: B1H = (T1H + 5): B1V = (T1V + 11) PUT (B1H, B1V), Lazer, XOR ShootTime1 = 1 RETURN Shooter2: BD2 = Direction2 IF BD2 = 0 THEN RETURN IF BD2 = 1 THEN Fire2 = 1: B2H = (T2H + 14): B2V = (T2V + 5) IF BD2 = 2 THEN Fire2 = 1: B2H = (T2H - 1): B2V = (T2V + 5) IF BD2 = 3 THEN Fire2 = 1: B2H = (T2H + 6): B2V = (T2V - 1) IF BD2 = 4 THEN Fire2 = 1: B2H = (T2H + 5): B2V = (T2V + 11) PUT (B2H, B2V), Lazer, XOR ShootTime2 = 1 RETURN CheckBullet1: T2V = T2V + 2: T2H = T2H + 3 FOR ScanTank2 = 1 TO 7 FOR ScanH = 1 TO 9 IF B1H = T2H AND B1V = T2V THEN GOTO Crash2 T2H = T2H + 1 NEXT ScanH T2H = T2H - 9 T2V = T2V + 1 NEXT T2V = T2V - 9: T2H = T2H - 3 RETURN CheckBullet2: T1V = T1V + 2: T1H = T1H + 3 FOR ScanTank1 = 1 TO 7 FOR ScanH = 1 TO 9 IF B2H = T1H AND B2V = T1V THEN GOTO Crash1 T1H = T1H + 1 NEXT ScanH T1H = T1H - 9 T1V = T1V + 1 NEXT T1V = T1V - 9: T1H = T1H - 3 RETURN Scan1: IF BD1 = 1 AND B1H > 316 THEN LET Fire1 = 0: ShootTime1 = 0: PUT (B1H, B1V), Lazer, XOR IF BD1 = 2 AND B1H < 2 THEN LET Fire1 = 0: ShootTime1 = 0: PUT (B1H, B1V), Lazer, XOR IF BD1 = 3 AND B1V < 2 THEN LET Fire1 = 0: ShootTime1 = 0: PUT (B1H, B1V), Lazer, XOR IF BD1 = 4 AND B1V > 197 THEN LET Fire1 = 0: ShootTime1 = 0: PUT (B1H, B1V), Lazer, XOR RETURN Scan2: IF BD2 = 1 AND B2H > 316 THEN LET Fire2 = 0: ShootTime2 = 0: PUT (B2H, B2V), Lazer, XOR IF BD2 = 2 AND B2H < 2 THEN LET Fire2 = 0: ShootTime2 = 0: PUT (B2H, B2V), Lazer, XOR IF BD2 = 3 AND B2V < 2 THEN LET Fire2 = 0: ShootTime2 = 0: PUT (B2H, B2V), Lazer, XOR IF BD2 = 4 AND B2V > 197 THEN LET Fire2 = 0: ShootTime2 = 0: PUT (B2H, B2V), Lazer, XOR RETURN Crash1: ExplodeH = T1H: ExplodeV = T1V T2Wins = T2Wins + 1 GOTO Explode Crash2: ExplodeH = T2H: ExplodeV = T2V T1Wins = T1Wins + 1 GOTO Explode Explode: FOR Explode = 1 TO 9 IF Explode = 1 THEN Col = 14 IF Explode = 5 THEN Col = 12 IF Explode = 7 THEN Col = 4 CIRCLE (ExplodeH, ExplodeV), Explode, Col NOW = TIMER: WHILE (TIMER - .01) < NOW: WEND NEXT IF Round = 4 THEN NOW = TIMER: WHILE (TIMER - 1) < NOW: WEND: GOTO ShowResults ELSE GOTO NewRound NewRound: NOW = TIMER: WHILE (TIMER - 1) < NOW: WEND H = 160: V = 100: Size = 300 FOR Eraser = 1 TO 301 FOR DrawCircleOver = 1 TO 5 CIRCLE (H, V), Size, 0, , , 9 / 18 NEXT Size = Size - 1 NEXT NOW = TIMER: WHILE (TIMER - .01) < NOW: WEND FOR Writing = 1 TO 3 Col = 16 FOR Fade = 1 TO 12 COLOR Col IF Round = 1 THEN LOCATE 12, 16: PRINT "Round II" IF Round = 2 THEN LOCATE 12, 16: PRINT "Round III" IF Round = 3 THEN LOCATE 12, 16: PRINT "Round IV" NOW = TIMER: WHILE (TIMER - .01) < NOW: WEND Col = Col + 1 NEXT Col = 30 FOR Fade = 1 TO 12 COLOR Col IF Round = 1 THEN LOCATE 12, 16: PRINT "Round II" IF Round = 2 THEN LOCATE 12, 16: PRINT "Round III" IF Round = 3 THEN LOCATE 12, 16: PRINT "Round IV" NOW = TIMER: WHILE (TIMER - .01) < NOW: WEND Col = Col - 1 NEXT CLS NEXT Round = Round + 1 Direction1 = 0: Direction2 = 0: Fire1 = 0: Fire2 = 0: ShootTime1 = 0 ShootTime2 = 0: BD1 = 0: BD2 = 0: T1H = 6: T1V = 87: T2H = 300: T2V = 102 PUT (0, 0), Arena1, PSET PUT (111, 0), Arena2, PSET PUT (T1H, T1V), Tank1, PSET PUT (T2H, T2V), EnemyTank2, PSET GOTO Main ShowResults: H = 160: V = 100: Size = 300 FOR Eraser = 1 TO 301 FOR DrawCircleOver = 1 TO 5 CIRCLE (H, V), Size, 0, , , 9 / 18 NEXT Size = Size - 1 NEXT SCREEN 0: WIDTH 80, 25: COLOR 12, 4 PRINT " G A M E R E S U L T S " PRINT : COLOR 4, 0 PRINT "Tank 1 wins:" COLOR 2: LOCATE 3, 14: PRINT T1Wins COLOR 4 PRINT "Tank 2 wins:" COLOR 2: LOCATE 4, 14: PRINT T2Wins PRINT : COLOR 9 PRINT "The winner is" IF T1Wins > T2Wins THEN LOCATE 6, 14: PRINT " Tank number 1, by"; T1Wins - T2Wins; "points." IF T1Wins < T2Wins THEN LOCATE 6, 14: PRINT " Tank number 2, by"; T2Wins - T1Wins; "points." IF T1Wins = T2Wins THEN LOCATE 6, 14: PRINT " nobody !!! Y'all came tie." PRINT "Congratulations, that was some realy awesome gameplay. You're great !!!" PRINT : COLOR 12, 4 PRINT " C R E D I T S " PRINT : COLOR 4, 0 PRINT "Concept:" PRINT "Programming:" PRINT "Game engine/tools:" PRINT "Game art:" PRINT "Level design:" COLOR 2: LOCATE 11, 11: PRINT "About a million other un-origional programmers ;)" COLOR 2: LOCATE 12, 15: PRINT "Matthew Knight" COLOR 2: LOCATE 13, 21: PRINT "Matthew Knight" COLOR 2: LOCATE 14, 12: PRINT "Matthew Knight" COLOR 2: LOCATE 15, 16: PRINT "Matthew Knight" PRINT : COLOR 9 PRINT "All code in this game was programmed from scratch by Matthew Knight. No" PRINT "code was taken from other games. Any simularity to another game is purely" PRINT "coincidental. Other programmers may however use my code in their games." PRINT : COLOR 4 PRINT "Thank you for trying Qbasic TANK COMMANDER !!!" PRINT "Hope you liked it :)" COLOR 7