#!/usr/bin/perl -w use strict; # Colors: [y]ellow [b]lue [g]reen [r]ed blac[k] [w]hite my @colors = qw/y b g r k w/; my $pattern = join '', map{@colors[rand @colors]} 1..4; my @guesses = (); for my $count (1 .. 11) { print "Mastermind!\n"; print "Colors:[y]ellow [b]lue [g]reen [r]ed blac[k] [w]hite\n"; print @guesses; last if $count > 10; chomp(my $guess = ); print "$pattern\n" and redo if $guess eq 'showme'; print "Bad Input\n" and redo unless $guess =~ /^[ybgrkw]{4}$/; my $tmp_pat = $pattern; my $right_color = grep { $tmp_pat =~ s/$_// } split //, $guess; my $right_place =()= "$pattern$guess"=~/(.)(?=...\1)/g; $right_color -= $right_place; push @guesses, "$count|$guess|$right_place,$right_color\n"; if ($right_place == 4){ print "You win!\n"; exit; } } print "You lost! Pattern was: $pattern\n"; #### my $right_place =()= "$pattern$guess"=~/(.)(?=...\1)/g; #### $right_color += $pattern =~ s/([$guess])/$1/g; $right_color -= $right_place;