my %no_wall;
# 適当に結合
for (1 .. (int rand 15) + 15) { # 15 - 29
my ($x, $y) = (int rand scalar @x, int rand scalar @y);
print "$x : $y (";
my $dir = int rand 4;
if ($dir == 0) {
print $x . "," . ($y - 1) . "-" . $y . ")\n"; $no_wall{$x . "," . ($y - 1) . "-" . $y} = 1;
} elsif ($dir == 1) {
print $x . "-" . ($x + 1) . "," . $y . ")\n"; $no_wall{$x . "-" . ($x + 1) . "," . $y} = 1;
} elsif ($dir == 2) {
print $x . "," . $y . "-" . ($y + 1) . ")\n"; $no_wall{$x . "," . $y . "-" . ($y + 1)} = 1;
} elsif ($dir == 3) {
print +($x - 1) . "-" . $x . "," . $y . ")\n"; $no_wall{($x - 1) . "-" . $x . "," . $y} = 1;
}
}
my (@x_wall, @y_wall) = (map { 0 } 1 .. $width, map { 0 } 1 .. $height);
$x_wall[$_] = 1 for @x; $y_wall[$_] = 1 for @y;
my (@x_room, @y_room);
$i = 0; @x_room = map { ++$i if $x_wall[$_]; $i; } 0 .. $width - 1;
$i = 0; @y_room = map { ++$i if $y_wall[$_]; $i; } 0 .. $height - 1;
for my $y (0 .. $height - 1) {
for my $x (0 .. $width - 1) {
my ($xr, $yr) = ($x_room[$x], $y_room[$y]);
$x_wall[$x] and (!$no_wall{($xr - 1) . "-" . $xr . "," . $yr} and ($y_wall[$y] and print "+" or print "|") or print ".");
$y_wall[$y] and !$no_wall{$xr . "," . ($yr - 1) . "-" . $yr} and print "-" or print ".";
} print "\n";
}
----
ごめん俺は投げた
探検
【ダンジョン】 自動生成 2 【地形】
■ このスレッドは過去ログ倉庫に格納されています
222/2
2007/06/24(日) 16:32:33ID:PG/TOCa7■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【高市首相】「日本人が日本各地を旅行するのも大切」 中国からの渡航自粛巡り [ぐれ★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) ★3 [阿弥陀ヶ峰★]
- 町山智浩「日本のパンダ経済効果は308億円」…「…いらない」と言ってる人達は、パンダで暮らす人々の損害補填してくれるのか…と問う★4 [少考さん★]
- 【東京・赤坂の“個室サウナ店夫婦死亡火災” 】妻を守るため…夫が妻に覆いかぶさって倒れる [ぐれ★]
- 【東京・赤坂の“個室サウナ店夫婦死亡火災”】 タオルがサウナストーンに触れたことで発火したか 警視庁 [ぐれ★]
- 【高市首相】日中立て直しへ対話重視=衆院解散「考える暇ない」 [ぐれ★]
