From 5ecfe845a9e93f481c0a1e63b4df33a293b10ca9 Mon Sep 17 00:00:00 2001 From: jluehrs2 Date: Sat, 2 Feb 2008 15:29:25 -0500 Subject: add jotto example game --- bin/jotto.pl | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 bin/jotto.pl 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"; -- cgit v1.2.3