DECLARE SUB Intro () : DECLARE SUB H3 (X!, Y!) DECLARE SUB H4 (X!, Y!) : DECLARE SUB Refresh () DECLARE SUB Arbre (X1!, Y1!, F1!, F2!) DECLARE SUB Maison (X!, Y!, T!, M!, F!, CF!, P!, CP!) DECLARE SUB Pave (X!, Y!, C!) : DECLARE SUB Ecran (A!) DECLARE SUB H1 (X!, Y!) : DECLARE SUB H2 (X!, Y!) DECLARE SUB Titre () DIM SHARED T1(9680): DIM Q(4): DIM SHARED T2(9680) DIM SHARED T3(9680): COMMON SHARED Lim1, Lim2, Lim3, Lim4 COMMON SHARED Xb, Yb, P CLS : SCREEN 13: CLEAR : CLOSE : RANDOMIZE TIMER CALL Intro: SLEEP 1 FOR I = 256 TO 1 STEP -10: PALETTE 32, 65536 * INT(I / 4.1) PALETTE 104, 65536 * INT(I / 9.2): PALETTE 112, INT(I / 9.2) PALETTE 120, 256 * INT(I / 9.2): NEXT I: CLS FOR I = 0 TO 15 PALETTE I, I * 4 + I * 4 * 256 + I * 4 * 65536 NEXT I: PALETTE 1, 30: PALETTE 2, 40: PALETTE 3, 50: PALETTE 4, 60 Titre COLOR 255: LOCATE 3, 3: PRINT "UNTITLED" FOR X = 10 TO 100 FOR Y = 10 TO 50 IF POINT(X, Y) = 255 THEN LINE (X * 3 + 20, Y * 3 + 30)-(X * 3 + 23, Y * 3 + 33), 254, BF END IF NEXT Y NEXT X FOR I = 0 TO 63 STEP .005 PALETTE 254, INT(I) NEXT I GET (65, 75)-(260, 100), T1 FOR I = 75 TO 15 STEP -.1 PUT (65, I), T1, PSET NEXT I: P = 1 FOR I = 1 TO 4 Q(I) = 10 NEXT I DO IF P = 1 THEN COLOR 4 ELSE COLOR Q(1) LOCATE 10, 11: PRINT "On s'en fait une ?" IF P = 2 THEN COLOR 4 ELSE COLOR Q(2) LOCATE 11, 3: PRINT "Un p'tit code pour aller plus vite ?" IF P = 3 THEN COLOR 4 ELSE COLOR Q(3) LOCATE 12, 4: PRINT "Le jeu t'plaŒt pas comme il est ?" IF P = 4 THEN COLOR 4 ELSE COLOR Q(4) LOCATE 13, 8: PRINT "T'as plus envie d'jouer ?" SELECT CASE INKEY$ CASE CHR$(27): END CASE CHR$(0) + CHR$(80): P = P + 1: IF P = 5 THEN P = 1 Q(P) = Q(P) + 1 CASE CHR$(0) + CHR$(72): P = P - 1: IF P = 0 THEN P = 4 Q(P) = Q(P) + 1 CASE CHR$(13): EXIT DO END SELECT FOR I = 1 TO 4 IF Q(I) = 15 THEN Q(I) = 10 NEXT I LOOP ON P GOTO 10, 1, 2, 3 1 2 3 END 10 CLS : SCREEN 12 FOR I = 0 TO 15 PALETTE I, I * 4 + I * 4 * 256 + I * 4 * 65536 NEXT I: PALETTE 1, 30: PALETTE 2, 40: PALETTE 3, 50: PALETTE 4, 60 PAINT (1, 1), 13 Ecran 1 GET (1, 1)-(640, 120), T1 GET (1, 120)-(640, 240), T2 GET (1, 240)-(640, 360), T3 CLS : Xb = 315: Yb = 250: P = 1 PUT (0, 0), T1, PSET: PUT (0, 119), T2, PSET PUT (0, 239), T3, PSET: H1 Xb, Yb DO SELECT CASE INKEY$ CASE CHR$(0) + CHR$(72): Yb = Yb - 10: P = 2: Refresh CASE CHR$(0) + CHR$(80): Yb = Yb + 10: P = 1: Refresh CASE CHR$(0) + CHR$(75): Xb = Xb - 10: P = 4: Refresh CASE CHR$(0) + CHR$(77): Xb = Xb + 10: P = 3: Refresh CASE CHR$(27): END END SELECT IF Xb = 315 AND Yb = 132 THEN EXIT DO LOOP SLEEP SUB Arbre (X1, Y1, F1, F2) D = 5 B = 8: C = INT(RND * D) + 2 K = C / D FOR X = X1 - F1 / C TO X1 + F1 / C STEP .5 LINE (X, Y1)-(X, Y1 + F2 * 2), B B = B + K / 2 IF B > 12 THEN K = -C / D NEXT X: A = 4 FOR I = F1 TO 1 STEP -.3 'A = A - .04 CIRCLE (X1, Y1), I * 1.5, INT(RND * 4) + 1, , , F2 / I NEXT I END SUB SUB Ecran (A) SELECT CASE A CASE 1 Pave 0, 0, 5: GET (0, 0)-(10, 10), T2 FOR X = 0 TO 620 STEP 10 FOR Y = 0 TO 350 STEP 10 PUT (X, Y), T2, PSET NEXT Y NEXT X FOR Y = 0 TO 350 STEP 10 PUT (629, Y), T2, PSET NEXT Y FOR X = 1 TO 650 STEP 30 X = X + INT(RND * 5) + 1 FOR Y = 1 TO 150 STEP 80 Y = Y + INT(RND * 5) + 1 Arbre X, Y, INT(RND * 5) + 15, INT(RND * 5) + 25 NEXT Y NEXT X Maison 295, 150, 3, 13, 2, 15, 1, 11 Lim1 = 0: Lim2 = 150: Lim3 = 640: Lim4 = 360 END SELECT END SUB SUB H1 (X, Y) LINE (X + 2, Y)-(X + 6, Y + 4), 4, BF LINE (X + 2, Y)-(X + 6, Y + 4), 0, B LINE (X, Y + 4)-(X + 8, Y + 8), 12, BF LINE (X, Y + 4)-(X + 8, Y + 8), 0, B LINE (X + 2, Y + 6)-(X + 2, Y + 8), 0 LINE (X + 6, Y + 6)-(X + 6, Y + 8), 0 LINE (X, Y + 8)-(X + 2, Y + 10), 4, BF LINE (X, Y + 8)-(X + 2, Y + 10), 0, B LINE (X + 6, Y + 8)-(X + 8, Y + 10), 4, BF LINE (X + 6, Y + 8)-(X + 8, Y + 10), 0, B LINE (X + 2, Y + 8)-(X + 6, Y + 10), 0, B LINE (X + 3, Y + 8)-(X + 5, Y + 10), 15, BF LINE (X + 3, Y + 8)-(X + 5, Y + 10), 0, B LINE (X + 2, Y + 10)-(X + 6, Y + 16), 8, BF LINE (X + 2, Y + 10)-(X + 6, Y + 16), 0, B LINE (X + 4, Y + 12)-(X + 4, Y + 16), 0 LINE (X + 2, Y + 16)-(X + 6, Y + 18), 0, BF LINE (X + 3, Y + 4)-(X + 5, Y + 1), 0, B END SUB SUB H2 (X, Y) LINE (X + 2, Y)-(X + 6, Y + 4), 0, BF LINE (X, Y + 4)-(X + 8, Y + 8), 12, BF LINE (X, Y + 4)-(X + 8, Y + 8), 0, B LINE (X + 2, Y + 6)-(X + 2, Y + 8), 0 LINE (X + 6, Y + 6)-(X + 6, Y + 8), 0 LINE (X, Y + 8)-(X + 2, Y + 10), 4, BF LINE (X, Y + 8)-(X + 2, Y + 10), 0, B LINE (X + 6, Y + 8)-(X + 8, Y + 10), 4, BF LINE (X + 6, Y + 8)-(X + 8, Y + 10), 0, B LINE (X + 2, Y + 8)-(X + 6, Y + 10), 0, BF LINE (X + 2, Y + 10)-(X + 6, Y + 16), 8, BF LINE (X + 2, Y + 10)-(X + 6, Y + 16), 0, B LINE (X + 4, Y + 12)-(X + 4, Y + 16), 0 LINE (X + 2, Y + 16)-(X + 6, Y + 18), 0, BF END SUB SUB H3 (X, Y) LINE (X, Y)-(X + 4, Y + 10), 0, BF LINE (X + 1, Y + 5)-(X + 3, Y + 9), 12, BF LINE (X + 2, Y + 2)-(X + 3, Y + 3), 4, BF LINE (X, Y + 10)-(X + 4, Y + 16), 0, B LINE (X + 1, Y + 11)-(X + 3, Y + 15), 8, BF LINE (X, Y + 16)-(X + 5, Y + 18), 0, BF LINE (X + 1, Y + 8)-(X + 3, Y + 10), 0, B PSET (X + 2, Y + 9), 4 END SUB SUB H4 (X, Y) LINE (X, Y)-(X + 4, Y + 10), 0, BF LINE (X + 1, Y + 5)-(X + 3, Y + 9), 12, BF LINE (X + 1, Y + 2)-(X + 2, Y + 3), 4, BF LINE (X, Y + 10)-(X + 4, Y + 16), 0, B LINE (X + 1, Y + 11)-(X + 3, Y + 15), 8, BF LINE (X - 1, Y + 16)-(X + 4, Y + 18), 0, BF LINE (X + 1, Y + 8)-(X + 3, Y + 10), 0, B PSET (X + 2, Y + 9), 4 END SUB SUB Intro COLOR 112: LINE (100, 20)-(75, 20): LINE (100, 20)-(100, 120) LINE (75, 20)-(75, 130): LINE (75, 80)-(70, 80) LINE (75, 105)-(65, 105): CIRCLE (67, 130), 50, , 1.45, .2, 1.5 CIRCLE (67, 130), 25, , 1.4, .2, 3: PAINT (80, 50), 120, 112 COLOR 120: LINE (101, 180)-(125, 180): LINE (101, 180)-(101, 60) LINE (125, 180)-(125, 70): LINE (125, 80)-(132, 80) LINE (125, 105)-(135, 105): CIRCLE (136, 62), 42, , 4.7, 3.2, 1.2 CIRCLE (134, 62), 18, , 4.5, 3.55, 2: PAINT (110, 50), 112, 120 CIRCLE (140, 170), 12, 32: PAINT (140, 170), 104, 32 LINE (140, 170)-(152, 170), 32: LINE (140, 170)-(140, 175), 32 CIRCLE (164, 170), 12, 32: PAINT (165, 170), 104, 32 LINE (164, 170)-(164, 180), 32: CIRCLE (164, 165), 1, 32 PSET (164, 165), 0: CIRCLE (188, 170), 12, 32: PAINT (188, 170), 104, 32 LINE (188, 170)-(188, 160), 32: LINE (182, 178)-(182, 170), 32 LINE (194, 178)-(194, 170), 32: CIRCLE (212, 170), 12, 32 PAINT (212, 170), 104, 32: LINE (212, 166)-(222, 166), 32 LINE (212, 174)-(222, 174), 32: CIRCLE (236, 170), 12, 32 PAINT (236, 170), 104, 32: LINE (236, 174)-(226, 174), 32 LINE (236, 166)-(246, 166), 32 END SUB SUB Maison (X, Y, T, M, F, CF, P, CP) LINE (X, Y)-(X + 50, Y - 40), M, BF LINE (X, Y)-(X + 50, Y - 40), 0, B LINE (X, Y - 40)-(X, Y - 50), 0: COLOR 0 LINE -(X + 10, Y - 60): LINE -(X + 40, Y - 60) LINE -(X + 50, Y - 50): LINE -(X + 50, Y - 40) PAINT (X + 20, Y - 50), T, 0 LINE (X, Y - 40)-(X + 10, Y - 50) LINE -(X + 40, Y - 50): LINE -(X + 50, Y - 40) LINE (X + 10, Y - 50)-(X + 10, Y - 60) LINE (X + 40, Y - 50)-(X + 40, Y - 60) IF P = 1 THEN LINE (X + 20, Y)-(X + 30, Y - 20), CP, BF LINE (X + 20, Y)-(X + 30, Y - 20), 0, B END IF IF (F = 1 AND P = 0) OR F = 3 THEN LINE (X + 20, Y - 20)-(X + 30, Y - 30), CF, BF LINE (X + 20, Y - 20)-(X + 30, Y - 30), 0, B LINE (X + 25, Y - 20)-(X + 25, Y - 30), 0 LINE (X + 20, Y - 25)-(X + 30, Y - 25), 0 END IF IF (F = 1 AND P = 1) OR F = 2 OR F = 3 THEN LINE (X + 5, Y - 20)-(X + 15, Y - 30), CF, BF LINE (X + 5, Y - 20)-(X + 15, Y - 30), 0, B LINE (X + 10, Y - 20)-(X + 10, Y - 30), 0 LINE (X + 5, Y - 25)-(X + 15, Y - 25), 0 END IF IF F = 2 OR F = 3 THEN LINE (X + 35, Y - 20)-(X + 45, Y - 30), CF, BF LINE (X + 35, Y - 20)-(X + 45, Y - 30), 0, B LINE (X + 40, Y - 20)-(X + 40, Y - 30), 0 LINE (X + 35, Y - 25)-(X + 45, Y - 25), 0 END IF IF P = 1 THEN CIRCLE (X + 27, Y - 10), 1, 0 PAINT (X + 5, Y - 50), T - 2, 0 PAINT (X + 45, Y - 50), T + 1, 0 PAINT (X + 30, Y - 55), T - 1, 0 END SUB SUB Pave (X, Y, C) FOR I = X TO X + 10 FOR J = Y TO Y + 10 PSET (I, J), INT(RND * 5) + C NEXT J NEXT I LINE (X, Y)-(I, J), 5, B END SUB SUB Refresh IF Yb >= 0 AND Yb <= 120 THEN PUT (0, 0), T1, PSET IF Yb >= 100 AND Yb <= 250 THEN PUT (0, 119), T2, PSET IF Yb >= 200 THEN PUT (0, 239), T3, PSET IF Xb < Lim1 THEN Xb = Lim1 IF Xb + 10 > Lim3 THEN Xb = Lim3 - 10 IF Yb < Lim2 - 18 THEN Yb = Lim2 - 18 IF Yb + 18 > Lim4 THEN Yb = Lim4 - 18 SELECT CASE P CASE 1: H1 Xb, Yb CASE 2: H2 Xb, Yb CASE 3: H3 Xb, Yb CASE 4: H4 Xb, Yb END SELECT END SUB SUB Titre A = 18 FOR X = 13 TO 0 STEP -1 LINE (0, X)-(320, X), A LINE (X, 0)-(X, 200), A LINE (0, 200 - X)-(320, 200 - X), A LINE (320 - X, 0)-(320 - X, 200), A A = A + 1 NEXT X A = 18 FOR A = 18 TO 31 STEP .08 LOCATE 3, 15: PRINT "un jeu Basic" COLOR INT(A) NEXT A FOR A = 31 TO 18 STEP -.08 COLOR INT(A) LOCATE 3, 15: PRINT "un jeu Basic" COLOR INT(50 - A) LOCATE 4, 15: PRINT " con‡u par" NEXT A FOR A = 31 TO 18 STEP -.08 COLOR INT(A) LOCATE 4, 15: PRINT " con‡u par" COLOR INT(50 - A) LOCATE 5, 15: PRINT "Julien Lepage" NEXT A FOR A = 31 TO 18 STEP -.08 COLOR INT(A) LOCATE 5, 15: PRINT "Julien Lepage" COLOR INT(50 - A) LOCATE 6, 15: PRINT " et " NEXT A FOR A = 31 TO 18 STEP -.08 COLOR INT(A) LOCATE 6, 15: PRINT " et " COLOR INT(50 - A) LOCATE 7, 15: PRINT "Erwan Bracchi" NEXT A FOR A = 30 TO 18 STEP -.04 COLOR A: LOCATE 7, 15: PRINT "Erwan Bracchi" NEXT A END SUB