## Chapter 7. Programs

In this chapter, you will build a real, working slot machine that you can play by running an R function. When you’re finished, you’ll be able to play it like this:

```play`()`
`## 0 0 DD`
`## \$0`

play`()`
`## 7 7 7`
`## \$80````

The `play` function will need to do two things. First, it will need to randomly generate three symbols; and, second, it will need to calculate a prize based on those symbols.

The first step is easy to simulate. You can randomly generate three symbols with the `sample` function—just like you randomly “rolled” two dice in Part I. The following function generates three symbols from a group of common slot machine symbols: diamonds (`DD`), sevens (`7`), triple bars (`BBB`), double bars (`BB`), single bars (`B`), cherries (`C`), and zeroes (`0`). The symbols are selected randomly, and each symbol appears with a different probability:

```get_symbols `<-` `function``()` `{`
wheel `<-` c`(``"DD"``,` `"7"``,` `"BBB"``,` `"BB"``,` `"B"``,` `"C"``,` `"0"``)`
sample`(`wheel`,` size `=` `3``,` replace `=` `TRUE``,`
prob `=` c`(``0.03``,` `0.03``,` `0.06``,` `0.1``,` `0.25``,` `0.01``,` `0.52``))`
`}````

You can use `get_symbols` to generate the symbols used in your slot machine:

```get_symbols`()`
`## "BBB" "0"   "C"`

get_symbols`()`
`## "0" "0" "0"`

get_symbols`()`
`## "7" "0" "B"````

`get_symbols` uses the probabilities observed in a group of video lottery terminals from Manitoba, Canada. These slot machines became briefly controversial in the 1990s, when a reporter decided to test their payout rate. The machines appeared to pay out only 40 cents on the dollar, even though the manufacturer claimed they would ...

Get Hands-On Programming with R now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.