Do you know where your variables are? PerlMonks

### Re: Dial up some obscure stats for the Chutes and Ladders game

by JavaFan (Canon)
 on Jul 04, 2009 at 00:44 UTC ( #777144=note: print w/replies, xml ) Need Help??

It is not possible to climb ladder1 or ladder80 more than once in a game.
According to the wikipedia article you quote, a player who rolls 3 sixes in a row starts all over again. Which makes it possible to use ladder1 more than once.
What fascinating statistics can you dial up?
The same article says that a player rolls again after rolling a six. Which means you can finish in less than 7 turns. Perhaps you should make a histogram on turns as well.

But the most important statistics is missing. The entire game is almost without decisions (except that you are allowed to skip a roll when rolling 6, and aren't forced to climb a ladder). Which leaves one big decision: do you go first, or second? Obviously, going first increases the chance of winning, but by how much? Said it differently, if you play chutes and ladders (2 player game), the loser paying the winner 1 USD, how much would you pay to go first?

• Comment on Re: Dial up some obscure stats for the Chutes and Ladders game

Replies are listed 'Best First'.
Re^2: Dial up some obscure stats for the Chutes and Ladders game
by toolic (Bishop) on Jul 04, 2009 at 01:42 UTC
The wikipedia article indeed does mention those facts. But, it also mentions that there are other variants of the game. The version of the game I have at home has no such restrictions. This Perl code is based on the game manufactured by Hasbro (formerly Milton Bradley) in the United States in 1999. Your post has prompted me to do a little more web searching to find a site more specific to this version, including the rules. I apologize for the confusion.

That being said, the variant you pointed out is slightly more complex, and hence, would make for more interesting analysis.

In case of the simple rules, you can't get to the square 100 before the 7th turn:
```#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

my %special = ( ... ); # copy from the OP

my %reachable = ( 0 => undef );

my \$turn = 0;
while (not exists \$reachable{100}) {
my %next;
for my \$square (keys %reachable) {
for my \$spin (1 .. 6) {
my \$target = \$square + \$spin;
next if \$target > 100;
undef \$next{\$target};
undef \$next{ \$special{\$target}{end} } if \$special{\$target}
+;
}
}
undef @reachable{ keys %next };
say ++\$turn, ': ', join ' ', sort { \$a <=> \$b } keys %reachable;
}
say "\$turn";
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2019-10-20 23:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In 2019 the site I miss most is:

Results (50 votes). Check out past polls.

Notices?