FUNCTION defPixel$() defPixel$ = "." IF INT(RND*2) = 1 THEN defPixel$ = "X" END FUNCTION SUB putString(s$, x%, y%) ' ⎺⎺⎺⎺⎺⎺⎺⎺⎺ for c = 1 to len(s$) sc$ = MID$(s$, c, 1) this$ = _GETCHR$(ASC(sc$)) for yi = 0 to 7 for xi = 0 to 7 IF MID$(this$, (xi + yi*8) + 1, 1) = "X" THEN PSET (x% + xi + (c-1)*8, y% + yi) next xi next yi next c end sub '🔸🔸🔸 Main Program SCREEN _NEWIMAGE(160, 112, 14) DO GOSUB 🎲CreateGraphicsChars GOSUB 🌱Init GOSUB ✅PrintTiles _delay 0.5 LOOP END '🔸🔸🔸 Subroutines 🎲CreateGraphicsChars: c$ = "" : d$ = "" FOR i = 1 TO 64 p$ = defPixel$() c$ = c$ + p$ d$ = p$ + d$ NEXT i _LETCHR$(0, c$) : _LETCHR$(1, d$) c$ = "" : d$ = "" FOR i = 1 TO 64 p$ = defPixel$() c$ = c$ + p$ d$ = p$ + d$ NEXT i _LETCHR$(2, c$) : _LETCHR$(3, d$) RETURN 🌱Init: CLS: Couleur1 = INT(RND*64) + 1 : PRINT SetCouleur2: Couleur2 = INT(RND*65) : IF Couleur2 = Couleur1 THEN GOTO SetCouleur2 RETURN ✅PrintTiles: ptrn% = INT(RND*3) SELECT CASE ptrn% CASE 0 l1c0$ = CHR$(0) : l1c1$ = CHR$(0) : l1c2$ = CHR$(1) l2c0$ = CHR$(2) : l2c1$ = CHR$(2) : l2c2$ = CHR$(3) CASE 1 l1c0$ = CHR$(0) : l1c1$ = CHR$(1) : l1c2$ = CHR$(0) l2c0$ = CHR$(2) : l2c1$ = CHR$(3) : l2c2$ = CHR$(2) CASE 2 l1c0$ = CHR$(1) : l1c1$ = CHR$(0) : l1c2$ = CHR$(0) l2c0$ = CHR$(3) : l2c1$ = CHR$(2) : l2c2$ = CHR$(2) END SELECT FOR Z = 0 TO 104 x% = 0 : y% = 8 CLS FOR i = 1 TO 80 COLOR Couleur1 : PutString( l1c0$, x%, y% ) COLOR Couleur2 : PutString( l2c0$, x%, y% + Z ) GOSUB ⏭NextCoordinates COLOR Couleur1 : PutString( l1c1$, x%, y% ) COLOR Couleur2 : PutString( l2c1$, x%, y%+Z ) GOSUB ⏭NextCoordinates COLOR Couleur1 : PutString( l1c2$, x%, y% ) COLOR Couleur2 : PutString( l2c2$, x%, y%+Z ) GOSUB ⏭NextCoordinates NEXT i _delay 0.1 if z = 0 then _delay 0.5 NEXT Z RETURN ⏭NextCoordinates: x% = x% + 8 IF x% > 159 THEN x% = 0 : y% = y% + 8 RETURN