Welcome to HBH! If you have tried to register and didn't get a verification email, please using the following link to resend the verification email.

Crossword Puzzle Generator - Perl Code Bank


Crossword Puzzle Generator
Just a bit of perl.
                #!perl -w
use strict;

open GRID, '>grid.html' or die $!;
select GRID;

print "<HTML><BODY>\n";

my $cellwidth = '20'; # pixel or percent
my $cellheight = '4'; #pixels only
my $counter = "0";

sub Solid
{
     return "<TD WIDTH='$cellwidth' HEIGHT='$cellheight' ".
            "BGCOLOR='BLACK'>&nbsp;</TD>\n";
}

sub Open
{
     return "<TD WIDTH='$cellwidth' HEIGHT='$cellheight' ".
            "BGCOLOR='WHITE'>&nbsp;</TD>\n";
}

sub Numbered
{
++$counter;
     return "<TD WIDTH='$cellwidth' HEIGHT='$cellheight' BGCOLOR='WHITE' ".
            "ALIGN='LEFT' VALIGN='TOP'><FONT SIZE=-2>$counter</FONT></TD>\n";
}

# 0 = black box 1 = white box 2 = nnumbered box
my @type = ( \&Solid, \&Open, \&Numbered );
my @line = (
'020000002000002000000000000',
'010200201021111110000020000',
'010100101000001002111110000',
'010102111121111111000010020',
'010100000010001001000202010',
'211121111110001021111101010',
'100010000010001001000101010',
'100010212111001002111111110',
'100010001010000001000101010',
'100010001000021111120001010',
'102111001000000000010001010',
'101010211000000000010200200',
'101010001000000000211111111',
'101010000000211111010100100',
'102211111111100000000100100',
'100100000000102020000100100',
'000100000000101010000100100',
'002111000211111111100000000',
'000000000000101000000000000',
'000000211111111000000000000',
);

print "<TABLE BORDER=1 SHADE=0>\n";
foreach ( @line )
{
     print "<TR>\n";
     print map { &{$type[$_]} } split //;
     print "</TR>";
}
print "\n</TABLE>\n\n";

            
Comments
rex_mundi's avatar
rex_mundi 10 years ago

thumbs up