P is for Practical PerlMonks

### Re: Trick die rolling

by Parham (Friar)
 on Mar 10, 2002 at 23:17 UTC ( #150780=note: print w/ replies, xml ) Need Help??

in reply to Trick die rolling

in any 1 roll, it rerolls the lowest number. It will also add the three highest sets of rolls and print it out. I know my version isn't as well done as others, but i didn't sit down to really work with it.. just fixed your code here and there to try and keep as much of it intact :).
```#!/usr/bin/perl
use warnings;
use strict;

#Die Roller: uses 4d6 discarding the lowest number
#rerolling any roll of 1

my \$roll = 6;
my @sums;

until (\$roll == 0) {
my @d6;
chomp \$roll;
\$roll--;
\$d6[0] = int(rand(6) + 1);
\$d6[1] = int(rand(6) + 1);
\$d6[2] = int(rand(6) + 1);
\$d6[3] = int(rand(6) + 1);
@d6 = sort @d6;
\$d6[0] = int(rand(6) + 1); #reroll lowest number
my \$sum = \$d6[0] + \$d6[1] + \$d6[2] + \$d6[3];
push(@sums, \$sum);

print "\$d6[0], \$d6[1], \$d6[2], \$d6[3] : \$sum\n\n";
}

@sums = sort @sums;
my \$three_highest = \$sums[3] + \$sums[4] + \$sums[5]; #add three highest
+ numbers in array
print "total of three highest roles : \$three_highest";
EDIT... posted too quick and didn't even read your post in whole (missed the reroll of ONLY 1's)... i guess you didn't want one that looked like your version either :P, nonetheless, i'll keep the code here for you :).

Create A New User
Node Status?
node history
Node Type: note [id://150780]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
As of 2016-07-27 20:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
What is your favorite alternate name for a (specific) keyboard key?

Results (248 votes). Check out past polls.