Hi All,
Bit of a weird one this.
I wanted a CPU load tester and I didn't want to use one of the ones online. It should be fairly easy to write one that can heat up a CPU.
Question is what?
Prime numbers are normally good, but that's been done. So I went with Yahtzees.
2 reasons for this:
1. The maths is pretty cool
2. I've been watching the Numberphile videos on youtube and the subject is raging over there.
Here is the code for my Yahtzee counter:
#!/usr/bin/perl use strict; my $randnum; my $dice1; my $dice2; my $dice3; my $dice4; my $dice5; my $dice6; my $yahtzee; my $checker; my $rollcount; my $checknum; my $result; my $yahtzeeswanted = 10; my $dicesides = 6; my @dice; sub numbergen { my $range = 6; return int(rand($range)) + 1; } sub rollcount { $rollcount++; #print "Rollcount: $rollcount \n"; } sub yahtzee() { $yahtzee++; @dice[$_[0]]++; #print "Number of yahtzees: $yahtzee \n"; } while ($yahtzee < $yahtzeeswanted){ $checker = 0; rollcount; $dice1 = numbergen(); $dice2 = numbergen(); $dice3 = numbergen(); $dice4 = numbergen(); $dice5 = numbergen(); $dice6 = numbergen(); while ($checker <= $dicesides){ $checker++; if ($dice1 == $checker && $dice2 == $checker && $dice3 == $checker && $dice4 == $checker && $dice5 == $checker && $dice6 == $checker){ &yahtzee($checker); } } } print "Sided Dice: $dicesides \n"; print "Rollcount: $rollcount \n"; print "Number of yahtzees: $yahtzee \n"; print "Number of 1's: @dice[1] \nNumber of 2's: @dice[2] \nNumber of 3's: @dice[3] \nNumber of 4's: @dice[4] \nNumber of 5's: @dice[5] \nNumber of 6's: @dice[6]\n"; #print "$dice1 $dice2 $dice3 $dice4 $dice5 $dice6 \n";
If you take a look at the code you will see there are 2 declarations, one is for the number of yahtzees you want to generate, the other is for the number of sides you want your dice to have.
Have a play, and thanks for reading
Can anyone spot the deliberate mistake?
ReplyDeleteIf you can just correct it. If you can't you need to disable the 6th dice
Historical Trev sucked at Perl :)
ReplyDelete