' Line Machine RANDOMIZE TIMER CLS SCREEN 12 'GOTO SetUpBoard delay1 = .01 MainSetup: x = 480 y = 240 xfactor = -1 yfactor = 0 cx = 160 cy = 240 cxfactor = 1 cyfactor = 0 r = 0 Menu: CLS y1 = 10 y2 = 60 FOR x1 = 10 TO 620 STEP 10 LINE (x1, y1)-(x1 + 10, y1), 14 LINE (x1, y2)-(x1 + 10, y2), 12 t = TIMER DO LOOP WHILE TIMER < t + delay1 NEXT x1 y1 = 15 y2 = 65 FOR x1 = 10 TO 620 STEP 10 LINE (x1, y1)-(x1 + 10, y1), 14 LINE (x1, y2)-(x1 + 10, y2), 12 t = TIMER DO LOOP WHILE TIMER < t + delay1 NEXT x1 y1 = 20 y2 = 70 FOR x1 = 10 TO 620 STEP 10 LINE (x1, y1)-(x1 + 10, y1), 14 LINE (x1, y2)-(x1 + 10, y2), 12 t = TIMER DO LOOP WHILE TIMER < t + delay1 NEXT x1 delay1 = 0 LOCATE 3, 30 PRINT "The Line Machine" LOCATE 10, 32 PRINT "1. Easy" LOCATE 12, 32 PRINT "2. Medium" LOCATE 14, 32 PRINT "3. Hard" LOCATE 16, 32 PRINT "4. Quit" LOCATE 20, 29 PRINT "Make a Selection" DO I$ = INKEY$ LOOP WHILE I$ = "" IF VAL(I$) < 1 OR VAL(I$) > 4 THEN GOTO Menu IF I$ = "1" THEN Level = 30000 IF I$ = "2" THEN Level = 10000 IF I$ = "3" THEN Level = 2000 IF I$ = "4" THEN GOTO Quit CLS GOSUB SetUpBoard Start: GOSUB CompTurn IF POINT(x, y) = 14 OR POINT(x, y) = 12 OR POINT(x, y) = 13 THEN GOTO Crash END IF PSET (x, y), 14 score = score + 1 LOCATE 30, 1 PRINT "Your score: "; score; I$ = INKEY$ IF I$ = CHR$(0) + "H" THEN yfactor = -1 xfactor = 0 END IF IF I$ = CHR$(0) + "K" THEN xfactor = -1 yfactor = 0 END IF IF I$ = CHR$(0) + "M" THEN xfactor = 1 yfactor = 0 END IF IF I$ = CHR$(0) + "P" THEN yfactor = 1 xfactor = 0 END IF x = x + xfactor y = y + yfactor IF x < 1 OR x > 640 THEN GOTO Outside IF y < 1 OR y > 480 THEN GOTO Outside 't = TIMER 'DO 'LOOP WHILE TIMER < t + .000001 FOR d = 1 TO Level NEXT d GOTO Start Outside: LINE (199, 199)-(421, 281), 9, B LINE (200, 200)-(420, 280), 3, BF LOCATE 14, 28 PRINT "You went off the course" LOCATE 16, 30 PRINT "Your final score is "; LOCATE 17, 37 PRINT score t = TIMER DO LOOP WHILE TIMER < t + 2 DO I$ = INKEY$ LOOP WHILE I$ = "" GOTO MainSetup Crash: LINE (199, 199)-(421, 281), 9, B LINE (200, 200)-(420, 280), 3, BF LOCATE 14, 34 PRINT "You crashed" LOCATE 16, 30 PRINT "Your final score is "; LOCATE 17, 37 PRINT score t = TIMER DO LOOP WHILE TIMER < t + 2 DO I$ = INKEY$ LOOP WHILE I$ = "" GOTO MainSetup CompTurn: RestartSubHere: cturns = cturns + 1 IF cturns = 40 THEN cturns = 0 GOSUB GetRandomNumber IF r = 1 THEN cxfactor = -1 cyfactor = 0 END IF IF r = 2 THEN cxfactor = 1 cyfactor = 0 END IF IF r = 3 THEN cyfactor = -1 cxfactor = 0 END IF IF r = 4 THEN cyfactor = 1 cxfactor = 0 END IF END IF cx = cx + cxfactor cy = cy + cyfactor IF cx < 1 THEN cx = 1 IF cx > 640 THEN cx = 640 IF cy < 1 THEN cy = 1 IF cy > 480 THEN cy = 480 IF POINT(cx, cy) = 12 THEN turns = 39 GOTO RestartSubHere END IF PSET (cx, cy), 12 'FOR d = 1 TO 90000: NEXT d RETURN GetRandomNumber: StartHere: newr = INT(4 * RND(1) + 1) IF newr = 1 AND r = 2 THEN GOTO StartHere IF newr = 2 AND r = 1 THEN GOTO StartHere IF newr = 3 AND r = 4 THEN GOTO StartHere IF newr = 4 AND r = 3 THEN GOTO StartHere r = newr RETURN SetUpBoard: LINE (155, 115)-(165, 125), 6, BF LINE (155, 355)-(165, 365), 6, BF LINE (475, 355)-(485, 365), 6, BF LINE (475, 115)-(485, 125), 6, BF LINE (154, 114)-(166, 126), 15, B LINE (154, 354)-(166, 366), 15, B LINE (474, 354)-(486, 366), 15, B LINE (474, 114)-(486, 125), 15, B LINE (130, 90)-(190, 150), 13, B LINE (130, 330)-(190, 390), 13, B LINE (450, 330)-(510, 390), 13, B LINE (450, 90)-(510, 150), 13, B RETURN Quit: CLS SCREEN 0 END