Yksinkertaisesti sanoen aliohjelma, jolla voi tulostaa tekstiä muutamalla erilaisella väriefektillä. Pääasiassa liukuja ja muita perusefektejä. Koodiakaan ei ole tapani mukaan kommentoitu, mutta sen ymmärtämisen ja muokkaamisen pitäisi olla helppoa.
Koodi on tosin melko optimoimatonta, sillä päätin jättää sen ja kaiken muun hienosäädön sellaiselle, joka tätä tarvitsee tai tahtoo tällä leikkiä. Viidessä minuutissa tehty, ja toimivana, mutta itselleen turhana tänne laitettu. Pätevän koodin haaskausta olisi ollut jättää tämä kiintolevylle lojumaan. Nauttikaa siis. Niin minäkin tein säätäessäni joukon ylimääräisiä efektejä, kun oli liiankin helppoa :-P
-Grey-
DECLARE SUB PRINTC (X AS INTEGER, Y AS INTEGER, S AS STRING, T AS INTEGER, C AS INTEGER) DIM I AS INTEGER, T AS STRING CLS : RANDOMIZE TIMER: SCREEN 13: COLOR 31 FOR I = 1 TO 32 OUT &H3C8, I OUT &H3C9, I / 2 OUT &H3C9, I OUT &H3C9, I * 2 NEXT T = "0123456789ABCDEF1337" FOR I = 1 TO 19 PRINTC 1, I, T, I - 1, 16 LOCATE I, 21: PRINT T; NEXT END SUB PRINTC (X AS INTEGER, Y AS INTEGER, S AS STRING, T AS INTEGER, C AS INTEGER) DIM X2 AS INTEGER, Y2 AS INTEGER, I AS INTEGER DIM C2 AS INTEGER, C3 AS INTEGER IF LEN(S) = 0 THEN EXIT SUB FOR I = 1 TO LEN(S) IF I + X > 41 THEN EXIT FOR LOCATE Y, X + I - 1: PRINT MID$(S, I, 1); NEXT FOR X2 = (X * 8 - 8) TO (X * 8 + LEN(S) * 8 - 9) FOR Y2 = (Y * 8 - 8) TO (Y * 8 + 8 - 9) C2 = POINT(X2, Y2): C3 = C3 + 1 SELECT CASE T CASE 0: IF C2 = 0 THEN PSET (X2, Y2), C CASE 1: IF C2 = 0 THEN PSET (X2, Y2), C + C3 CASE 2: IF C2 = 0 THEN PSET (X2, Y2), C + 8 - C3 CASE 3: IF C2 > 0 THEN PSET (X2, Y2), C + C3 CASE 4: IF C2 > 0 THEN PSET (X2, Y2), C + 8 - C3 CASE 5 IF C2 = 0 THEN PSET (X2, Y2), C + C3 IF C2 > 0 THEN PSET (X2, Y2), C + 8 - C3 CASE 6 IF C2 = 0 THEN PSET (X2, Y2), C + 8 - C3 IF C2 > 0 THEN PSET (X2, Y2), C + C3 CASE 7: IF C2 = 0 THEN PSET (X2, Y2), C + INT(RND * 8) CASE 8: IF C2 > 0 THEN PSET (X2, Y2), C + INT(RND * 8) CASE 9 IF C2 = 0 THEN PSET (X2, Y2), C + INT(RND * 4 + 4) IF C2 > 0 THEN PSET (X2, Y2), C + INT(RND * 3) CASE 10 IF C2 = 0 THEN PSET (X2, Y2), C + INT(RND * 3) IF C2 > 0 THEN PSET (X2, Y2), C + INT(RND * 4 + 4) CASE 11 IF C2 = 0 THEN PSET (X2, Y2), C + C3 IF C2 > 0 THEN PSET (X2, Y2), 0 CASE 12 IF C2 = 0 THEN PSET (X2, Y2), C + 8 - C3 IF C2 > 0 THEN PSET (X2, Y2), 0 CASE 13 IF C2 = 0 THEN PSET (X2, Y2), C + INT(RND * 8) IF C2 > 0 THEN PSET (X2, Y2), 0 CASE 14 IF C2 = 0 THEN PSET (X2, Y2), C + C3 IF C2 > 0 THEN PSET (X2, Y2), C + INT(RND * 4 + 4) CASE 15 IF C2 = 0 THEN PSET (X2, Y2), C + 8 - C3 IF C2 > 0 THEN PSET (X2, Y2), C + INT(RND * 4 + 4) CASE 16 IF C2 = 0 THEN PSET (X2, Y2), C + INT(RND * 4 + 4) IF C2 > 0 THEN PSET (X2, Y2), C + 8 - C3 CASE 17 IF C2 = 0 THEN PSET (X2, Y2), C + INT(RND * 4 + 4) IF C2 > 0 THEN PSET (X2, Y2), C + C3 CASE ELSE IF C2 = 0 THEN PSET (X2, Y2), 15 IF C2 > 0 THEN PSET (X2, Y2), 0 END SELECT NEXT C3 = 0 NEXT END SUB
Aihe on jo aika vanha, joten et voi enää vastata siihen.