Автор: Alex Zolotov
//ASCII animation player by Alex Zolotov (2009) //Mail: nightradio@gmail.com //WWW: warmplace.ru //##################### //## SETUP ############ //##################### MARKER = "FF" REPLACE_FROM = 'K' REPLACE_TO = '"' COLOR = GREEN BACKCOLOR = BLACK X = -32 Y = -32 ASCII = " FF o FF o FF o FF o FF o FF KKKKKPKKKKK FF KKKKPIKKKK FF KKKPIXKKK FF KKPIXIKK FF KKPIXIKK FF KKKPIXKKK FF KKKKPKKKK " //##################### //## PLAYER ########### //##################### msize = get_string_size( MARKER ) asize = get_string_size( ASCII ) frames = 0 fp = new_array( 256 ) p = 0 while( p < 256 ) { fp[ p ] = 0 p + 1 } //Replace symbols: p = 0 while( p < asize ) { if ASCII[ p ] = REPLACE_FROM { ASCII[ p ] = REPLACE_TO } p + 1 } //Get number of frames and size of each frame: p = 0 while( p < asize ) { eq = 0 pp = 0 while( pp < msize ) { if ASCII[ p + pp ] != MARKER[ pp ] { pp = 1000 eq = 0 } else { eq = 1 } pp + 1 } if eq { frames + 1 p + ( msize + 1 ) p - 1 } else { if frames > 0 { fp[ frames - 1 ] = fp[ frames - 1 ] + 1 } } p + 1 } //Make frames: p = 0 while( p < frames ) { fp[ p ] = new_string( fp[ p ] ) p + 1 } p = 0 frames = 0 while( p < asize ) { eq = 0 pp = 0 while( pp < msize ) { if ASCII[ p + pp ] != MARKER[ pp ] { pp = 1000 eq = 0 } else { eq = 1 } pp + 1 } if eq { frames + 1 p + ( msize + 1 ) p - 1 s = 0 } else { if frames > 0 { str = fp[ frames - 1 ] str[ s ] = ASCII[ p ] s + 1 } } p + 1 } //Show animation: cur_frame = 0 start: clear( BACKCOLOR ) print( fp[ cur_frame ], X, Y, COLOR ) cur_frame + 1 if cur_frame >= frames { cur_frame = 0 } frame( 100 ) go start