- 论坛徽章:
- 0
|
- #!/usr/bin/perl
- #
- # Useage: maze.pl
- #
- #
- use strict;
- use warnings;
- ### main program
- my @maze;
- # maze structure 0->empty 1->wall
- # initialize
- for ( my $i = 0; $i <= 8; $i++ ) {
- for ( my $j = 0; $j <= 9; $j++ ) {
- $maze[$i][$j][0] = 0;
- $maze[$i][$j][1] = 0;
- }
- }
- $maze[0][1][0] = 1;
- $maze[0][3][0] = 1;
- $maze[0][3][1] = 1;
- $maze[0][4][1] = 1;
- $maze[0][5][1] = 1;
- $maze[0][6][0] = 1;
- $maze[0][8][0] = 1;
- $maze[0][8][1] = 1;
- $maze[0][9][1] = 1;
- $maze[1][0][0] = 1;
- $maze[1][0][1] = 1;
- $maze[1][1][1] = 1;
- $maze[1][2][1] = 1;
- $maze[1][3][1] = 1;
- $maze[1][4][0] = 1;
- $maze[1][5][0] = 1;
- $maze[1][7][0] = 1;
- $maze[1][8][0] = 1;
- $maze[1][9][0] = 1;
- $maze[1][9][1] = 1;
- $maze[2][0][1] = 1;
- $maze[2][2][0] = 1;
- $maze[2][3][0] = 1;
- $maze[2][3][1] = 1;
- $maze[2][4][0] = 1;
- $maze[2][5][1] = 1;
- $maze[2][7][0] = 1;
- $maze[2][8][0] = 1;
- $maze[2][9][0] = 1;
- $maze[2][9][1] = 1;
- $maze[3][0][1] = 1;
- $maze[3][2][0] = 1;
- $maze[3][2][1] = 1;
- $maze[3][3][1] = 1;
- $maze[3][4][1] = 1;
- $maze[3][6][0] = 1;
- $maze[3][7][0] = 1;
- $maze[3][8][0] = 1;
- $maze[3][9][0] = 1;
- $maze[3][9][1] = 1;
- $maze[4][0][0] = 1;
- $maze[4][1][1] = 1;
- $maze[4][2][1] = 1;
- $maze[4][3][1] = 1;
- $maze[4][4][0] = 1;
- $maze[4][5][0] = 1;
- $maze[4][9][1] = 1;
- $maze[5][0][1] = 1;
- $maze[5][2][0] = 1;
- $maze[5][3][0] = 1;
- $maze[5][6][1] = 1;
- $maze[5][7][1] = 1;
- $maze[5][8][0] = 1;
- $maze[5][8][1] = 1;
- $maze[5][9][1] = 1;
- $maze[6][1][1] = 1;
- $maze[6][2][0] = 1;
- $maze[6][4][1] = 1;
- $maze[6][5][1] = 1;
- $maze[6][6][0] = 1;
- $maze[6][6][1] = 1;
- $maze[6][7][1] = 1;
- $maze[6][8][0] = 1;
- $maze[6][9][1] = 1;
- $maze[7][0][1] = 1;
- $maze[7][1][0] = 1;
- $maze[7][1][1] = 1;
- $maze[7][3][1] = 1;
- $maze[7][4][1] = 1;
- $maze[7][5][0] = 1;
- $maze[7][5][1] = 1;
- $maze[7][7][1] = 1;
- $maze[8][1][1] = 1;
- $maze[8][2][1] = 1;
- $maze[8][3][1] = 1;
- $maze[8][5][1] = 1;
- $maze[8][6][1] = 1;
- $maze[8][7][0] = 1;
- $maze[8][7][1] = 1;
- $maze[8][8][1] = 1;
- $maze[8][9][1] = 1;
- my %T = (
- 0 => [ qw(┌ ─ ┐) ],
- t => [ qw(┌ ┬ ┐) ],
- m => [ qw(├ ┼ ┤) ],
- b => [ qw(└ ┴ ┘) ],
- h => '─', v => '│'
- );
- #output the maze
- # the first line
- print $T{'0'}[0];
- for (my $i = 0; $i<9; $i++) {
- print $T{'0'}[1],$T{'0'}[1], $T{'t'}[1];
- }
- print $T{'0'}[1], $T{'0'}[1], $T{'t'}[2],"\n";
- # crosses
- for (my $i = 0; $i<9; $i++) {
- print $T{'v'};
- for (my $j =0; $j<9; $j++) {
- print " ";
- if ($maze[$i][$j][1] == 1) {
- print $T{'v'};
- } else {
- print " ";
- }
- }
- print " ", $T{'v'}, "\n";
- print $T{'m'}[0];
- for (my $j =0; $j<9; $j++) {
- if ($maze[$i][$j][0] == 1) {
- print $T{'h'}, $T{'h'};
- } else {
- print " ";
- }
- print $T{'m'}[1];
- }
- if ($maze[$i][9][0] == 1) {
- print $T{'h'}, $T{'h'};
- } else {
- print " ";
- }
- print $T{'m'}[2], "\n";
- }
- # the last row
- print $T{'v'};
- for (my $i=0; $i<9; $i++) {
- print " ";
- if ($maze[$i][9][1] == 1) {
- print $T{'v'};
- } else {
- print " ";
- }
- }
- print " ", $T{'v'}, "\n";
- print $T{'b'}[0];
- for (my $i=0; $i<9; $i++) {
- print $T{'h'}, $T{'h'}, $T{'b'}[1];
- }
- print $T{'h'}, $T{'h'}, $T{'b'}[2], "\n";
复制代码 輸出迷宮,請檢查下有無錯誤。
正在做後面的事情。 |
|