1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
use strict;

my @pos = (
[[0,0],[1,1],[2,2],[3,3]],
[[1,0],[1,1],[2,2],[2,3]],
[[2,0],[2,1],[1,2],[1,3]],
[[3,0],[2,1],[1,2],[0,3]],
[[3,1],[2,1],[1,2],[0,2]],
[[3,2],[2,2],[1,1],[0,1]],
[[3,3],[2,2],[1,1],[0,0]],
[[2,3],[2,2],[1,1],[1,0]],
[[1,3],[1,2],[2,1],[2,0]],
[[0,3],[1,2],[2,1],[3,0]],
[[0,2],[1,2],[2,1],[3,1]],
[[0,1],[1,1],[2,2],[3,2]],
);

my $i = 0;
while (1) {
  my $cpos = $pos[$i];
  my @cell;
  $cell[$cpos->[0][0]][$cpos->[0][1]] = 'ポ';
  $cell[$cpos->[1][0]][$cpos->[1][1]] = 'リ';
  $cell[$cpos->[2][0]][$cpos->[2][1]] = 'ゴ';
  $cell[$cpos->[3][0]][$cpos->[3][1]] = 'ン';

  clear_screen();
  print "適当な\n";
  foreach my $c ( @cell ) {
    foreach my $cc ( @$c ) {
      print $cc ? $cc : '  ';
    }
    print "\n";
  }
  sleep 1;
} continue {
  if ( ++$i == @pos ) {
    $i = 0;
  }
}

sub clear_screen
{
  if ( $^O =~ /Win32/ ) {
    system('cls');
  }
  else {
    if (system('clear') != 0) {
      print "\x1b[2J";
    }
  }
}