diff options
author | jluehrs2 <jluehrs2@uiuc.edu> | 2008-02-02 15:29:25 -0500 |
---|---|---|
committer | jluehrs2 <jluehrs2@uiuc.edu> | 2008-02-02 15:29:25 -0500 |
commit | 5ecfe845a9e93f481c0a1e63b4df33a293b10ca9 (patch) | |
tree | e8b263e1e1738714f3c5e02cfdb4c1ad913bf083 | |
parent | ddcf4c23fdacd7dfeba8c46d990524409f8de36e (diff) | |
download | games-word-5ecfe845a9e93f481c0a1e63b4df33a293b10ca9.tar.gz games-word-5ecfe845a9e93f481c0a1e63b4df33a293b10ca9.zip |
add jotto example game
-rw-r--r-- | bin/jotto.pl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/bin/jotto.pl b/bin/jotto.pl new file mode 100644 index 0000000..cab1a9d --- /dev/null +++ b/bin/jotto.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Games::Word qw/shared_letters/; +use Games::Word::Wordlist; + +my $wl = Games::Word::Wordlist->new('/usr/share/dict/words'); +$wl->remove_words($wl->words_like(qr/^(\w{0,4}|\w{6,})$/)); +$wl->remove_words($wl->words_like(qr/^[A-Z]/)); +my $word = $wl->random_word; +my $guesses = 0; +while (1) { + print "Guess a word: "; + my $guess = <>; + chomp $guess; + + if ($guess eq '.') { + print "The word was $word\n"; + exit; + } + if (length $guess != 5) { + print "Word must be 5 letters long.\n"; + next; + } + if (!$wl->is_word($guess)) { + print "$guess is not a word.\n"; + next; + } + $guesses++; + last if $guess eq $word; + + my $correct = shared_letters $word, $guess; + printf "You got $correct letter%s correct.\n", $correct == 1 ? "" : "s"; +} +print "You win in $guesses guesses!\n"; |