logo CodeStepByStep logo

coin_flip

Language/Type: PHP parameters random

Write a function named coin_flip that simulates repeatedly flipping a two-sided coin until a particular side (Heads or Tails) comes up several times consecutively (in a row). Your function should accept two parameters, an integer $k and a character $side, where $side is expected to be 'H' for Heads or 'T' for Tails. You should keep simulating the flipping of the coin until $k occurrences of the given side are seen consecutively. For example, if the call is coin_flip(3, 'H'); , you should flip the coin until Heads is seen 3 times in a row. Here is an example output from the call of coin_flip(4, 'T');

T H T H T T H T T H H T H H H H H T T T T
You got T 4 times in a row!

If a negative $k is passed, and/or a side value is passed that is not 'H' or 'T', your function should throw an Exception with the message, "Error: k must be non-negative and only sides of H or T allowed".

Use PHP's standard rand($min, $max) function to give an equal chance to a head or a tail appearing ($rand($min, $max) returns a random integer between $min and $max, inclusive). Each time the coin is flipped, what is seen is displayed (H for heads, T for tails), separated by spaces. When $k consecutive occurrences of the given side occur, a congratulatory message is printed. Match our output format exactly.

Function: Write a PHP function as described, not a complete program.

You must log in before you can solve this problem.

Log In

Need help?

Stuck on an exercise? Contact your TA or instructor.

If something seems wrong with our site, please

Is there a problem? Contact us.