home *** CD-ROM | disk | FTP | other *** search
- '****************************************************
- '* DRJ's Letter Invaders V1.00 door John Vanderaart *
- '* (C)-1995 Eigen PC, Whizz-Kid Workshop *
- '****************************************************
-
- DECLARE SUB ShowScore ()
- DECLARE SUB ShowBonus ()
- DECLARE SUB DisplayRonde ()
- DECLARE SUB VerwerkZin ()
- DECLARE SUB VliegLetters ()
- DECLARE SUB WegLetter ()
- DECLARE SUB MaakSpeelveld ()
- DECLARE SUB ZetTijd (Welke!, Kleur!)
- DECLARE SUB MaakLetters ()
-
- DIM SHARED Zinnen$(10)
- DIM SHARED Letters(1 TO 200, 1 TO 26) AS LONG
- DIM SHARED ZinL(80)
- DIM SHARED ZinX(80)
- DIM SHARED ZinY(80)
- DIM SHARED ZinF(80)
-
- SCREEN 12: MaakLetters
- FALSE = 1: TRUE = 0
- Stop1 = FALSE: Aantal = 0
- WHILE Stop1 = FALSE
- READ Zin$
- IF Zin$ <> "*" THEN
- Zinnen$(Aantal) = Zin$
- Aantal = Aantal + 1
- ELSE
- Stop1 = TRUE
- END IF
- WEND
- Stop0 = FALSE: Traag = 1000
- WHILE Stop0 = FALSE
- NuZin = 0: Score = 0
- FOR Ronde = 1 TO 10
- MaakSpeelveld
- DisplayRonde
- VerwerkZin
- Speed = 1 + (Ronde / 5): Tussen = 75 - (Ronde * 5)
- Tikker = 0: GaatNu = 0: SchietNu = 0
- Tijd = 184: TijdTel = 0
- Stop1 = FALSE: Stop2 = FALSE
- WHILE INKEY$ <> "": WEND
- WHILE Stop1 = FALSE
- Toets$ = INKEY$
- IF LEN(Toets$) = 1 THEN
- SELECT CASE Toets$
- CASE IS = CHR$(27)
- Stop0 = TRUE: Stop1 = TRUE: Ronde = 10
- CASE IS = "+"
- IF Traag < 2500 THEN
- Traag = Traag + 100
- END IF
- CASE IS = "-"
- IF Traag > 0 THEN
- Traag = Traag - 100
- END IF
- END SELECT
- IF (SchietNu <> 0) AND (SchietNu <= GaatNu) THEN
- IF (Toets$ > CHR$(96)) AND (Toets$ < CHR$(123)) THEN
- IF (ASC(Toets$) - 96) = ZinL(SchietNu) THEN
- ZinF(SchietNu) = 2
- Tikker = 0: WegLetter
- SchietNu = SchietNu + 1
- IF ZinL(SchietNu) < 0 THEN
- SchietNu = SchietNu + 1
- END IF
- END IF
- END IF
- END IF
- END IF
- TijdTel = (TijdTel + 1) AND 7
- IF TijdTel = 0 THEN
- IF Tijd > 0 THEN
- Tijd = Tijd - 1
- SOUND 250, .1
- ZetTijd Tijd, 3
- SOUND 0, .01
- END IF
- END IF
- VliegLetters
- IF Stop2 = TRUE THEN
- Stop1 = TRUE
- Ronde = Ronde - 1
- END IF
- IF SchietNu > LnZin THEN
- ShowBonus
- Stop1 = TRUE
- END IF
- FOR Wacht = 0 TO Traag: NEXT
- WEND
- NEXT
- IF Stop0 = FALSE THEN
- FOR T1 = 0 TO 240
- LINE (200, 237)-(439, 258), 0, BF
- SOUND 0, .05
- LINE (T1, T1)-(639 - T1, 480 - T1), (T1 AND 15), B
- LINE (200, 237)-(439, 258), 12, B
- LOCATE 16, 31: PRINT "Je Hebt Gewonnen!!";
- SOUND 100 + 50 * (T1 AND 31), .25
- NEXT
- ELSE
- Stop0 = TRUE
- END IF
- WEND
- SYSTEM
-
- DATA "eigen pc is het allerleukste tijdschrift"
- DATA "eigen pc is ok"
- DATA "eigen pc moet niet gekker worden"
- DATA "eigen pc denkt natuurlijk met u mee"
- DATA "eigen pc wordt gemaakt door uitgeverij computerbranche"
- DATA "eigen pc komt altijd met twee diskettes"
- DATA "eigen pc wordt ook gelezen door mijn vader"
- DATA "eigen pc komt naar je toe"
- DATA "eigen pc brengt steeds weer wat anders"
- DATA "eigen pc is iedere keer weer beter en mooier"
- DATA "*"
-
- SUB DisplayRonde
- SHARED Ronde
-
- FOR T1 = 0 TO 15
- LINE (230, 221)-(460, 240), 12, B
- LOCATE 15, 32: PRINT "Dit Is Letter Ronde"; Ronde; "!!";
- SOUND 100 + T1 * 25, 3
- LINE (230, 221)-(460, 240), 0, BF
- SOUND 0, 1
- NEXT
-
- END SUB
-
- SUB MaakLetters
-
- CLS : COLOR 14
- FOR T1 = 0 TO 12
- FOR T2 = 0 TO 1
- CIRCLE (T1 * 40 + 35, T2 * 48 + 39), 15, 14
- CIRCLE (T1 * 40 + 35, T2 * 48 + 39), 12, 14
- LOCATE T2 * 3 + 3, T1 * 5 + 5
- PRINT CHR$(T1 + T2 * 13 + 65);
- PAINT (T1 * 40 + 48, T2 * 48 + 39), 4, 14
- GET (T1 * 40 + 20, T2 * 48 + 20)-(T1 * 40 + 19 + 31, T2 * 48 + 20 + 34), Letters(1, T1 + T2 * 13 + 1)
- NEXT T2
- NEXT T1
- CLS
- END SUB
-
- SUB MaakSpeelveld
- SHARED Score
-
- CLS : LOCATE 2, 5: LINE (0, 15)-(639, 32), 1, B
- PRINT "* (C)-1995 Eigen PC * Whizz-Kid Workshop * DRJ's Letter Invaders V1.00 *";
- LINE (0, 447)-(500, 464), 1, B: LINE (502, 447)-(639, 464), 1, B
- LOCATE 29, 65: PRINT "Score: "; : ShowScore
- LINE (82, 400)-(639, 420), 1, B: PAINT (83, 401), CHR$(85), 1
- CIRCLE (90, 150), 8, 15: PAINT (90, 150), 12, 15
- CIRCLE (90, 350), 8, 15: PAINT (90, 350), 12, 15
- CIRCLE (630, 150), 8, 15: PAINT (630, 150), 12, 15
- CIRCLE (630, 350), 8, 15: PAINT (630, 350), 12, 15
- LINE (0, 45)-(80, 434), 1, B: LINE (2, 47)-(78, 64), 1, B
- LOCATE 4, 2: PRINT "Time-Out";
- LINE (230, 221)-(460, 240), 12, B
- LOCATE 15, 32: PRINT "Speeltijd Wordt Opgetikt!";
- FOR T1 = 0 TO 191
- SOUND 250 + T1 * 5, .2
- ZetTijd T1, 14
- SOUND 0, .05
- NEXT
- LINE (230, 221)-(460, 240), 0, BF
-
- END SUB
-
- SUB ShowBonus
- SHARED Tijd, Score, Ronde, LnZin
-
- IF Tijd > 0 THEN
- LINE (230, 221)-(460, 240), 12, B
- LOCATE 15, 32: PRINT "De Bonus Wordt Bijgeteld!";
- FOR T1 = Tijd TO 0 STEP -1
- SOUND 250 + T1 * 5, .25
- ZetTijd T1, 3
- SOUND 0, .05
- Score = Score + (Ronde * LnZin): ShowScore
- NEXT
- LINE (230, 221)-(460, 240), 0, BF
- END IF
-
- END SUB
-
- SUB ShowScore
- SHARED Score
-
- LOCATE 29, 72: PRINT USING "########"; Score;
-
- END SUB
-
- SUB VerwerkZin
- SHARED Aantal, LnZin, NuZin
-
- NuZin = NuZin + 1
- IF NuZin = Aantal THEN
- NuZin = 0
- END IF
- LnZin = LEN(Zinnen$(NuZin))
- FOR T1 = 1 TO LnZin
- ZinL(T1) = ASC(MID$(Zinnen$(NuZin), T1, 1)) - 96
- ZinX(T1) = ((T1 - 1) AND 15) * 32
- ZinY(T1) = 0: ZinF(T1) = 0
- NEXT
-
- END SUB
-
- SUB VliegLetters
- SHARED Speed, Tussen, Tikker, GaatNu
- SHARED Stop2, LnZin, SchietNu
-
- IF (Tikker = 0) AND (GaatNu < LnZin) THEN
- GaatNu = GaatNu + 1
- IF GaatNu = 1 THEN
- SchietNu = 1
- END IF
- IF ZinL(GaatNu) >= 0 THEN
- ZinF(GaatNu) = 1
- END IF
- END IF
- Tikker = Tikker + 1
- IF Tikker = Tussen THEN
- Tikker = 0
- END IF
- FOR T1 = 1 TO LnZin
- IF ZinF(T1) = 1 THEN
- ZinY(T1) = ZinY(T1) + Speed
- PUT (ZinX(T1) + 104, ZinY(T1) + 40), Letters(1, ZinL(T1)), PSET
- IF ZinY(T1) > 365 THEN
- Stop2 = TRUE
- END IF
- END IF
- NEXT
-
- END SUB
-
- SUB WegLetter
- SHARED SchietNu, Score, Ronde
-
- LINE (99, 150)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 2
- LINE (99, 350)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 2
- LINE (621, 150)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 2
- LINE (621, 350)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 2
- FOR T1 = 15 TO 1 STEP -1
- CIRCLE (ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), T1, T1
- SOUND 100 + T1 * 50, .1
- NEXT
- LINE (ZinX(SchietNu) + 104, ZinY(SchietNu) + 44)-(ZinX(SchietNu) + 134, ZinY(SchietNu) + 74), 0, BF
- LINE (99, 150)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 0
- LINE (99, 350)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 0
- LINE (621, 150)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 0
- LINE (621, 350)-(ZinX(SchietNu) + 119, ZinY(SchietNu) + 59), 0
- LOCATE 29, 1 + SchietNu: PRINT CHR$(ZinL(SchietNu) + 64);
- Score = Score + (Ronde * SchietNu): ShowScore
- END SUB
-
- SUB ZetTijd (Welke, Kleur)
-
- X = ((183 - Welke) AND 7) * 9 + 5
- Y = (((183 - Welke) AND 248) / 8) * 16 + 66
- LINE (X, Y)-(X + 6, Y + 14), Kleur, BF
-
- END SUB
-
-