RosettaCodeData/Task/Greyscale-bars-Display/Amazing-Hopper/greyscale-bars-display.hopper
2023-07-01 13:44:08 -04:00

34 lines
841 B
Text

#include <flow.h>
#include <flow-term.h>
#define SPACE(_T_,_N_) REPLICATE( " ", {_T_}DIV-INTO(_N_) )
DEF-MAIN(argv,argc)
CLR-SCR
GOSUB( Print Grey Scale )
END
RUTINES
DEF-FUN( Print Grey Scale )
SET( nrcolors, 8 )
SET( direction, 1 )
MSET( quarter, color )
LOCATE( 0, 0 )
FOR( LT?( quarter, 4 ), ++quarter )
SET( height, 0 )
FOR( LT?( height, 5 ), ++height )
SET( width, 0 )
FOR( LT?( width, nrcolors ), ++width )
LET( color := CEIL( MUL( width, DIV( 255, SUB(nrcolors,1) ) ) ) )
WHEN( NOT( MOD( direction, 2 ) ) ){
LET( color := SUB( 255, color ) )
}
PRN( COLOR-RGBB( color, color, color) SPACE( 128, nrcolors ) )
NEXT
PRNL("\OFF")
NEXT
nrcolors*=2
++direction
NEXT
RET