Thread Matrix durchlaufen (5 answers)
Opened by hugenyn at 2010-12-18 01:04

hugenyn
 2010-12-18 01:04
#143679 #143679
User since
2010-10-05
65 Artikel
BenutzerIn

user image
Aus einer 6x6-Matrix sollen alle diagonal und senkrecht zusammenhängenden Vierergruppen ausgegeben werden.

Es funktioniert bei mir so:
Code: (dl )
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# spielfeld
my @a0 = qw /28 22 15 6 33 1/;
my @a1 = qw /7 10 32 27 11 14/;
my @a2 = qw /23 18 5 31 9 30/;
my @a3 = qw /4 36 29 20 16 24/;
my @a4 = qw /13 25 17 3 35 19/;
my @a5 = qw /34 2 26 12 21 8/;
my @aa = ( \@a0, \@a1, \@a2, \@a3, \@a4, \@a5 );

#*********************************** Programm ***************


say "*** Die Diagonalen ***";
for (0..2) {
for my $t (0..2) {
my $k = $t;
my $m = $_;
for my $i (0..3) {
print ${$aa[$k]}[$m]."\t";
$k++;
$m++;
}
print "\n";
}
for my $t (3..5) {
my $k = $t;
my $m = $_;
for my $i (0..3) {
print ${$aa[$k]}[$m]."\t";
$k--;
$m++;
}
print "\n";
}
print "\n";
}
say "*** Die Senkrechten ***";
for (0..2) {
for my $t (0..2) {
my $k = $_;
my $m = $t;
for my $i (0..3) {
print ${$aa[$k]}[$m]."\t";
$k++;
}
print "\n";

}
for my $t (3..5) {
my $k = $_;
my $m = $t;
for my $i (0..3) {
print ${$aa[$k]}[$m]."\t";
$k++;
}
print "\n";
}
print "\n";
}

say "*** Die Waagerechten ***";
for (0..2) {
for my $t (0..2) {
my $k = $t;
my $m = $_;
for my $i (0..3) {
print ${$aa[$k]}[$m]."\t";
$m++;
}
print "\n";
}
for my $t (3..5) {
my $k = $t;
my $m = $_;
for my $i (0..3) {
print ${$aa[$k]}[$m]."\t";
$m++;
}
print "\n";
}
print "\n";
}


Das "riecht" natürlich nach einer Subroutine, aber ich finde sie nicht.

Gibt's einen kleinen Tip?

View full thread Matrix durchlaufen