in reply to Bowling Handicaps

For kicks I converted this into Perl6. Below is a fairly direct transaltion, though I think i'm going to try a rewrite without looking at the p5 version to see what i end up with.

#!/usr/bin/pugs my @bowlers; my $team_handicap; for (1..2) -> my $bowler { say "Please enter Bowler $bowler's scores:"; for (0..2) { print "Score $_:"; my $score = =$*IN; @bowlers[$bowler].<average> += $score; } @bowlers[$bowler].<average> = int(@bowlers[$bowler].<average> / 3); @bowlers[$bowler].<handicap> = int( (200 - @bowlers[$bowler].<averag +e> ) * .85); $team_handicap += @bowlers[$bowler].<handicap>; } say; for (1..2) -> $bowler { say "Bowler $bowler's Average Score:", @bowlers[$bowler].<average>, "\t Handicap: ", @bowlers[$bowler].<handicap>; } say; say "The team's handicap $team_handicap";

You can see it is very similar to Perl5 though definitly not the same, comment, improvments are welcome. Or get a committer bit and update it yourself. Link to the live version: http://svn.perl.org/perl6/pugs/trunk/examples/games/bowling.p6


___________
Eric Hodges

Replies are listed 'Best First'.
Re^2: Bowling Handicaps
by Juerd (Abbot) on Mar 10, 2006 at 17:22 UTC

    for (1..2) -> my $bowler {

    for 1..2 -> my $bowler {

    say;

    Probably tries to print $_, which is undef. Expect a warning.

    Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }

Re^2: Bowling Handicaps
by eric256 (Parson) on Mar 10, 2006 at 22:24 UTC

    A slightly more perl6 ish version.

    #!/usr/bin/pugs #http://svn.perl.org/perl6/pugs/trunk/examples/games/bowling2.p6 use v6; print "How many bowlers are on your team?"; my $bowlers = =$*IN; print "How many games would you like to average?"; my $games = =$*IN; my @bowlers; for (1 .. $bowlers) { my $bowler; say "Enter scores for bowler $_:"; for (1.. $games) { print "game $_ score:"; my $score = =$*IN; $bowler<games>.push( $score ); } $bowler<id> = $_; $bowler<total> = [+] @{$bowler<games>}; $bowler<avg> = $bowler<total> / $games; $bowler<handicap> = int ( (200 - $bowler<avg>) * .8); @bowlers.push($bowler); } for @bowlers -> $bowler { say "Bowler $bowler<id>'s average is $bowler<avg>\tHandicap: $bowler +<handicap>"; } my $team_handicap = [+] @bowlers.map:{ $_.<handicap> }; say "Team handicap is: $team_handicap";

    ___________
    Eric Hodges