Leser: 20
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";
}
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
#!/usr/bin/perl use strict; use warnings; # spielfeld my @aa=( [qw /28 22 15 6 33 1/], [qw / 7 10 32 27 11 14/], [qw /23 18 5 31 9 30/], [qw / 4 36 29 20 16 24/], [qw /13 25 17 3 35 19/], [qw /34 2 26 12 21 8/], ); #*********************************** Programm *************** sub stepp_trou { my $matrix=shift; my $sx=shift; my $sy=shift; for my $s (0..2) { for my $t (0..2) { my $m=$t; my $k=$s; ($k,$m)=($t,$s) if($sx); for (0..3) { print $matrix->[$k]->[$m]."\t"; $k+=$sy; $m+=$sx; } print "\n"; } for my $t (3..5) { my $m=$t; my $k=$s; ($k,$m)=($t,$s) if($sx); for (0..3) { print $matrix->[$k]->[$m]."\t"; if($sx && $sy) { $k-=$sy; } else { $k+=$sy } $m+=$sx; } print "\n"; } print "\n"; } } print "*** Die Diagonalen ***\n"; stepp_trou(\@aa,1,1); print "*** Die Senkrechten ***\n"; stepp_trou(\@aa,0,1); print "*** Die Waagerechten ***\n"; stepp_trou(\@aa,1,0);
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
#!/usr/bin/perl use strict; use warnings; # spielfeld my @aa=( [qw /28 22 15 6 33 1/], [qw / 7 10 32 27 11 14/], [qw /23 18 5 31 9 30/], [qw / 4 36 29 20 16 24/], [qw /13 25 17 3 35 19/], [qw /34 2 26 12 21 8/], ); #*********************************** Programm *************** sub stepp_trou { my $matrix=shift; my $sx=shift; my $sy=shift; my $size=shift; for my $y (0..$#$matrix) { for my $x (0..$#{$matrix->[$y]}) { my @list=(); my ($rx,$ry)=($x,$y); # Reihe suchen while($ry<@$matrix && $rx<@{$matrix->[$y]}) { push(@list,$matrix->[$ry]->[$rx]); $rx+=$sx; $ry+=$sy; last if(@list==$size); } # Reihe gefunden if(@list==$size) { print join("\t",@list)."\n"; next(); } # Nur bei Diagonalen auch rückwärts suchen next unless($sx && $sy); @list=(); ($rx,$ry)=($x,$y); # Reihe suchen while($ry>=0 && $rx<@{$matrix->[$y]}) { push(@list,$matrix->[$ry]->[$rx]); $rx+=$sx; $ry-=$sy; last if(@list==$size); } # Reihe gefunden print join("\t",@list)."\n" if(@list==$size); } #print "\n"; } } print "\n*** Die Diagonalen ***\n"; stepp_trou(\@aa,1,1,4); print "\n*** Die Senkrechten ***\n"; stepp_trou(\@aa,0,1,4); print "\n*** Die Waagerechten ***\n"; stepp_trou(\@aa,1,0,4);
2010-12-18T20:40:12 hugenynDen Gag mit den "Hausaufgaben" habe ich leider nicht verstanden
2010-12-18T20:40:12 hugenynDie Sequenz ist für mein Spielprogramm.
Die einzelnen Felder haben Markierungen, ob sie vom Spieler oder vom Computer besetzt sind.
Wenn der Computer am Zug ist, muss er jede Vierergruppe analysieren, um sinnvoll zu setzen..
U. a. daraufhin, ob er einen viertes Feld setzen kann (Sieg) oder ob der Spieler schon drei Felder besetzt hat (Niederlage droht).