' *** LASVEGAS CLS : OPTION BASE 1: DEFSTR A-Z SCREEN 12: WINDOW SCREEN (1, 1)-(640, 480) DIM V.Bit&(16) ' Valeurs des 16 bits (sur 2 octets) en numérique V.Bit&(1) = 1 FOR I% = 2 TO 16: V.Bit&(I%) = V.Bit&(I% - 1) * 2: NEXT I% DIM V.Style&(16) ' Valeurs successives du style en numérique Debut! = TIMER DO Tempo& = Tempo& + 1 LOOP UNTIL TIMER > Debut! + 1 ' ***** Definition des traits doubles H = CHR$(205): V = CHR$(186): Chg = CHR$(201): Chd = CHR$(187) Cbg = CHR$(200): Cbd = CHR$(188 ): Vd = CHR$(204) Vg = CHR$(185): Hb = CHR$(203): Hh = CHR$(202): Crx = CHR$(206) Ccv% = 9 ' CADRE VIDE Cct% = 14: Cte% = 15 ' CADRE/TITRE E01: Titre = " ** > SFLPMEA < ** ": L% = 4: GOSUB GS06G Cr% = 1: GOSUB GS06.REMPLI Titre = " ** > LAS VEGAS < ** ": L% = 4: GOSUB GS06D GOSUB GS06.REMPLI Titre = " * * * Mon Beau Sapin, Roi des Forets ..... * * * " Cct% = 9: Cte% = 11: L% = 15: GOSUB GS06C Cr% = 4: GOSUB GS06.REMPLI Titre = " * POUR SORTIR: Esc ou Ctrl + Break . . . . . * * * " Cct% = 9: Cte% = 11: L% = 10: GOSUB GS06C Cr% = 5: GOSUB GS06.REMPLI ON TIMER(8 ) GOSUB GS07.LasVegas E02: Titre = " Style de Ligne choisi (espace ou -) : ( ) " LOCATE 24, 1: PRINT SPACE$(400) Cct% = 11: Cte% = 15: L% = 25: GOSUB GS06C Cr% = 1: GOSUB GS06.REMPLI LOCATE 25, 51: LINE INPUT S.d.L IF LEN(S.d.L) < 16 THEN S.d.L = S.d.L + SPACE$(16 - LEN(S.d.L)) E03: IF LEN(S.d.L) <> 16 OR S.d.L = SPACE$(16) THEN FOR Son% = 400 TO 800 STEP 5: SOUND Son%, .182: NEXT Son% GOTO E02 END IF Cebon = "OUI" FOR I% = 1 TO 16 IF MID$(S.d.L, I%, 1) <> "-" AND MID$(S.d.L, I%, 1) <> " " THEN Cebon = "": EXIT FOR END IF NEXT I% IF Cebon <> "OUI" THEN S.d.L = "": GOTO E03 ERASE V.Style& FOR Valeur.Style% = 1 TO 16 IF Valeur.Style% > 1 THEN S.d.L = RIGHT$(S.d.L, 15) + LEFT$(S.d.L, 1) END IF V.Style& = 0 FOR I% = 1 TO 16 IF MID$(S.d.L, I%, 1) = "-" THEN V.Style& = V.Style& + V.Bit&(I%) END IF NEXT I% V.Style&(Valeur.Style%) = V.Style& NEXT Valeur.Style% TIMER ON DO LOOP UNTIL INKEY$ = CHR$(27) END GS07.LasVegas: Cvegas% = 11 FOR Nb% = 1 TO 48 FOR I% = 1 TO 16 LINE (103, 207)-(524, 256), 0, B LINE (101, 205)-(526, 258 ), 0, B LINE (99, 203)-(528, 260), 0, B IF V.Style&(I%) < 32768 THEN LINE (103, 207)-(524, 256), Cvegas%, B, V.Style&(I%) LINE (101, 205)-(526, 258 ), Cvegas%, B, V.Style&(I%) LINE (99, 203)-(528, 260), Cvegas%, B, V.Style&(I%) ELSE V.Style& = V.Style&(I%) - 32768 LINE (103, 207)-(524, 256), Cvegas%, B, V.Style& LINE (103, 207)-(524, 256), Cvegas%, B, &H8000 LINE (101, 205)-(526, 258 ), Cvegas%, B, V.Style& LINE (101, 205)-(526, 258 ), Cvegas%, B, &H8000 LINE (99, 203)-(528, 260), Cvegas%, B, V.Style& LINE (99, 203)-(528, 260), Cvegas%, B, &H8000 END IF FOR A& = 1 TO Tempo&: NEXT NEXT I%, Nb% RETURN ' ***** TITRE ENTOURE GS06G: L% = L% - 1: C% = 4: GOTO GS06.TITRE GS06C: L% = L% - 1: C% = 39 - LEN(Titre) / 2: GOTO GS06.TITRE GS06D: L% = L% - 1: C% = 76 - LEN(Titre) GS06.TITRE: Lg% = LEN(Titre): COLOR Cct% LOCATE L%, C%: PRINT Chg; STRING$((Lg%), H); Chd; LOCATE L% + 1, C%: PRINT V; : LOCATE L% + 1, C% + Lg% + 1: PRINT V; LOCATE L% + 2, C%: PRINT Cbg; STRING$((Lg%), H); Cbd; LOCATE L% + 1, C% + 1: COLOR Cte%: PRINT Titre; : RETURN GS06.REMPLI: Lg% = LEN(Titre) Xg% = C% * 8 + 1: Xd% = (C% + Lg%) * 8 + 1 Yh% = (L%) * 16 - 6: Yb% = Yh% + 26 FOR X% = Xg% TO Xd%: FOR Y% = Yh% TO Yb% IF POINT(X%, Y%) = 0 THEN PSET (X%, Y%), Cr% NEXT Y%, X% RETURN