Word Challenge WordBot

#!/usr/bin/perl
use strict;
use CGI;
my $q = new CGI;
 
my $letters = $q->param('letters');
my ( @three, @four, @five, @six );
my %letters;
my $found;
 
if ( !($letters) ) {
    print "Content-type: text/html\n\n";
 
    print <
 
<!--
.style1 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-weight: bold;
}
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif}
.style5 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #FF0000;
	font-weight: bold;
}
-->
 
<img src="/word-challenge.jpg" border="0" alt="" />
 
<span class="style1">Wordbot 1.0 </span>
 
<span class="style2">Enter letters:</span>
 
<form id="form1" action="wordbot.pl" method="post">
  <label>
<input id="textfield" name="letters" type="text" />
  </label>
  <label>
<input id="button" name="button" type="submit" value="Submit" />
  </label>
</form>
 
EOF
      ;
}
else {
 
    $letters = lc $letters;    # convert to lowercase
    $letters =~ tr/a-z//cd;    # strip non-letter characters
 
    foreach ( split( //, $letters ) ) {    # store letter counts
        $letters{$_}++;
    }
 
    open( DICT, "sowpods.txt" );
    my ($word);
  WORD:
    while ( defined( $word =  ) ) {
 
        # for each word in list
        chomp($word);
        $word = lc($word);
 
        next WORD if ( $word =~ /[^$letters]/o ); # check letters used
 
        my %word;
        foreach ( split( //, $word ) ) {    # check letter counts
            $word{$_}++;
            next WORD if ( $word{$_} &gt; $letters{$_} );
        }
 
        my $len = length($word);
 
        push( @three, $word ) if $len == 3;
        push( @four,  $word ) if $len == 4;
        push( @five,  $word ) if $len == 5;
        push( @six,   $word ) if $len == 6;
 
    }    
 
    print "Content-type: text/html\n\n";
    print &lt;
 
<!--
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.style3 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
 
<img src="/word-challenge.jpg" border="0" alt="" />
<table border="0" cellspacing="3" cellpadding="3" width="500">
<tbody>
<tr>
<td>
<div class="style3"><strong>Word List:</strong></div></td>
</tr>
</tbody></table>
";
    print
"
 
";
    print
"
 
";
    print
"
<table border="0" cellspacing="3" cellpadding="3" width="500">
<tbody>
<tr>
<td width="25%">
<div class="style2">SIX</div></td>
<td width="25%">
<div class="style2">FIVE</div></td>
<td width="25%">
<div class="style2">FOUR</div></td>
<td width="25%">
<div class="style2">THREE</div></td>
</tr>
<tr>
<td width="25%" valign="\&quot;top\&quot;">
<div class="style3">
HEAD
      ;
 
    foreach (@six) {
        print "$_";
    }
    print "</div></td>
<td width="\&quot;25\%\&quot;" valign="\&quot;top\&quot;">
<div class="\&quot;style3\&quot;">";
    foreach (@five) {
        print "$_";
    }
    print "</div></td>
<td width="\&quot;25\%\&quot;" valign="\&quot;top\&quot;">
<div class="\&quot;style3\&quot;">";
    foreach (@four) {
        print "$_";
    }
    print "</div></td>
<td width="\&quot;25\%\&quot;" valign="\&quot;top\&quot;">
<div class="\&quot;style3\&quot;">";
    foreach (@three) {
        print "$_";
    }
    print &lt;</div></td>
</tr>
</tbody></table>
<span class="style2">Enter letters:</span>
 
<form id="form1" action="wordbot.pl" method="post">
  <label>
<input id="textfield" name="letters" type="text" />
  </label>
  <label>
<input id="button" name="button" type="submit" value="Submit" />
  </label>
</form>
 
EOHTML
      ;
 
}
Share

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

 

My Tweets