 # Who wants to be the weakest millionaire?

TV game shows like "Who Wants To Be A Millionaire?" and "The Weakest Link" are very popular. Part of their popularity lies in the fact that they have interesting rules for the contestants to play against. These rules give the shows their tension, but someone has to make the rules up to begin with. So how would you go about designing the format for a good game show? ## Cash in a box

Well, we need some prize money - the amount of cash that the player will walk off with in their pocket. Lets add a prop, a shiny box that our host puts the money into, and lets label this box with big letters 'PRIZE'. So, a very simple game show would ask the contestant a question. If they get it right, they win £100, for example, which our host puts into the 'PRIZE' box. At the end, the player gets what is in the box, so 'PRIZE' can refer to the box but also, more importantly, the value of money in the box.

How could we write the instructions for this simple quiz? Well how about:

```If (Answer is correct)
{PRIZE = £100}
```

We have used PRIZE = £100 to mean put £100 in the prize box. So, as we wanted, if the answer's right, the value in PRIZE goes up to £100.

Simple enough, now suppose that we make the game a little more challenging, so what will happen is that each time the player gets the answer correct they double their money. If they get the answer wrong then they lose the lot (a bit like Who Wants To Be A Millionaire?). So, how would we write that?

We have a problem to begin with. If there is no money in PRIZE to start with, then doubling it when you get the answer right will give you twice as much nothing. Hardly fun to watch. So we have to put some cash in the box to begin, (or we give them a simple question to start with). Let's be kind. Let's put £100 in the box to start.

```PRIZE = £100
```

If they get the question right we can then say that PRIZE = 2 * PRIZE. What this means is that the new money in the box will be twice the money that was in the box beforehand (we've used * for multiplication).

## Twice in the box

We have our starting situation (we need something to double remember)

```PRIZE = £100
```

And if the player gets the question right

```If (Answer is correct)
{PRIZE = 2*PRIZE}
```

But we were being nasty. What happens when they get the question wrong? They need to lose all the cash! That is we want to set PRIZE=£0: no cash in the box. How could we write this? We could simply write

```If (Answer is wrong)
{PRIZE = £0}
```

After all the answer is either right or else it's wrong, and here's an idea about how to write this:

```If (Answer is correct)
{PRIZE = 2*PRIZE}
else
{PRIZE = £0}
```

We have a single line. 'If the answer is correct, the cash doubles or else (if the answer is wrong, which is the only other option) the cash is lost.' So for our 'Who Wants To Be A Millionaire?'- type quiz, we have the rules.

```PRIZE = £100
{PRIZE = 2*PRIZE}
else
{PRIZE = £0}
```

## Round and round again But we want more than one round of the game. Each additional round should become more exciting, as the prize money grows with each correct answer. How do we write this? Well we need some way to say that we do the same thing time and again, as long as we are happy to do it, but that at some stage we want to stop. Hmm. How many rounds do we want to have?

## Count up

Let's do our quiz round eight times:

```Do 8 times {a round}
```

So we have a way to have eight rounds, and we know how to do each of the rounds, and how to start the prize fund in the box, so, let's put them together:

```PRIZE = £100
Do 8 times
{
{PRIZE = 2*PRIZE}
else
{PRIZE = £0}
}
```

Does this make sense? We start with setting the contents in the prize box to £100 before we do any rounds, so that first PRIZE = £100 will go outside the Do 8 times bit. For each round if the answer is correct the prize money doubles, and as it's the same PRIZE box we use in each round, the money will continue to double for our lucky player.

What happens if the contestant gets the answer wrong? Well, looking at our 'else' rule, if in any round the answer is wrong, the prize in the box goes to zero. And that's a problem for our player because even if they get the next question right it would just double nothing! Unkind perhaps but would watching the contestants play for, say, five rounds, answering the questions for nothing, make good television? Therefore, if a contestant gives a wrong answer, we want to stop the quiz and take away the prize money. The game will be over. So, let's add that to our set of rules. Put in the word 'Break' to mean just that: that we jump out of the rounds and end the game.

```PRIZE = £100
Do 8 times
{