Commit | Line | Data |
---|---|---|
23c26e04 MG |
1 | #!/usr/bin/perl |
2 | use v5.14; | |
3 | use warnings; | |
4 | ||
5 | my @diffs = ( | |
6 | [-1, 0], | |
7 | [-1, 1], | |
8 | [0 , 1], | |
9 | [1 , 1], | |
10 | [1 , 0], | |
11 | [1 , -1], | |
12 | [0 , -1], | |
13 | [-1, -1] | |
14 | ); | |
15 | ||
16 | my @cpus; | |
17 | ||
18 | my $side = 4; # there are $side * $side CPUs | |
19 | ||
20 | for my $line (0 .. ($side - 1)) { | |
21 | $cpus[$line] = [ ($line * $side) .. (($line + 1) * $side - 1) ] | |
22 | } | |
23 | ||
24 | for my $cpu (0 .. ($side * $side - 1)) { | |
25 | my $x = $cpu / $side; | |
26 | my $y = $cpu % $side; | |
27 | for my $direction (0 .. 7) { | |
28 | my $nx = ($x + $diffs[$direction][0] + $side) % $side; | |
29 | my $ny = ($y + $diffs[$direction][1] + $side) % $side; | |
30 | say "newstable[$cpu][$direction] = ", $cpus[$nx][$ny], ';'; | |
31 | } | |
32 | } |