sysvbannerでストループテスト

前回に引き続き、ストループテストです。
sysvbannerで作ってみます。

bannerで大きく表示する色と、エスケープシーケンスの色、2つ干渉させたストロープテストです。

takk@deb8:~$ cat -n s.pl
     1	@colors = split /,/,"RED,BLUE,YELLOW,GREEN,CYAN,PURPLE,WHITE";
     2	
     3	$rand_str = $colors[int rand 7];
     4	
     5	printf"\x1b[3%dm",1+int rand 7;
     6	open(IN,"banner $rand_str |");
     7	@out=<IN>;
     8	print " @out";
     9	print"\x1b[39m";
takk@deb8:~$ 

もう一つ干渉させる情報を増やしてみましょう。
バナーの中に文字を入れて、実際の色とバナーで作った文字とバナーの中の文字、3つの情報を一度に表示するスクリプトにします。

takk@deb8:~$ cat -n stroop.pl
     1	@colors = split /,/,"RED,BLUE,YELLOW,GREEN,CYAN,PURPLE,WHITE";
     2	
     3	$rand_str_large = $colors[int rand 7];
     4	$rand_str_small = $colors[int rand 7];
     5	
     6	@a=split//,$rand_str_small;
     7	
     8	printf"\x1b[3%dm",1+int rand 7;
     9	open(IN,"banner $rand_str_large |");
    10	while(<IN>){
    11		s/#/ch()/ge;
    12		print;
    13	}
    14	print"\x1b[39m";
    15	
    16	sub ch{
    17		push@a,$a[0];return shift @a
    18	}
takk@deb8:~$ 

コメント

タイトルとURLをコピーしました