wheelgame.frink

View or download wheelgame.frink in plain text format


sum = 0

for s = 5 to 100 step 5
{
   sum = sum + makeProjections[s]
}

pe = sum / 20
println["Projected earnings for player 1 are $pe"]

makeProjections[sum] :=
{
   println["$sum"]
   spin = projSpin[sum]
   stay = projStay[sum]

   // First spin
   println["  Spin: " + spin]
   println["  Stay: " + stay]

   if spin > stay
      return spin
   else
      return stay
}


// Gets projected value from spinning, assuming there are others
// after you.
projSpin[num] :=
{
   pe = 0
   
   for s = 5 to 100 step 5
      pe = pe + (1-spinToBeat[s+num])

   return pe/20      
}

// Gets projected value from staying, assuming there are others after you.
projStay[num] := 1 - spinToBeat[num]


// Return probability that you'll beat the value
// given by beat.
spinToBeat[beat, val=0, spinNum=1] :=
{
   if beat > 100
      return 1    // Other guy busted, you win
   
   if val > beat
      return 1    // Don't spin... you've won.

   if spinNum > 2  // You have no more spins
      if val == beat
         return 1/2  // Tie
      else
         return 0    // Lost

   pe = 0
   
   for n = 5 to 100 step 5
      if n + val > 100
         pe = pe + 0         // Busted
      else
         if n + val > beat   
            pe = pe + 1      // You've beat it
         else
            pe = pe + spinToBeat[beat, val+n, spinNum+1] // Spin again

   return pe/20      
}


View or download wheelgame.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17596 days, 22 hours, 3 minutes ago.