In 2D Mario, Bullet Bill cannons are two units tall. The Bullet Bill is fired out of the upper unit and travels in a straight line (parallel to the x axis).
Mario is two units tall when standing up and one unit tall when ducking. His jump height is three units. It takes him 0.5 seconds to reach the full height and 0.5 seconds to come back down.
Write a program that helps Mario avoid an incoming Bullet Bill. He may have to jump, duck, or do nothing.
The input will come in the format
[bullet_bill_position] [direction] [speed] [mario_position].
bullet_bill_positionconsists of two space-separated integers, x and y. This represents the coordinates of the upper unit of the cannon. The bullet bill will fire from this location.
directionwill either be
speedis the speed of the Bullet Bill in units per second.
mario_positionconsists of x and y and represents the coordinates that Mario is standing on.
actionwill be one of three strings:
wait_timeonly applies to
jump. It represents how long Mario should wait before jumping over the Bullet Bill. If
jump, this will be left blank.
- The ground will always be right underneath Mario's feet.
- Bullet Bills are only one unit tall and one unit wide. Mario will be safe if it passes one unit above his head.
- Mario will be safe if he lands on the Bullet Bill. Hitting the side or bottom will kill him.
- There will often be more than one solution. You only have to output one of them.
- Numerical input will always be integers. However, output may sometimes need to have floats/doubles.
5 1 left 2.5 0 0
Explanation: The Bullet Bill will be at Mario's feet in 2 seconds. Mario will jump at 1.5 and touch back down at 2.5. The Bullet Bill passed safely underneath him.
Another Possible Output:
Explanation: If Mario jumps at 1, he will touch back down at 2 and land on the Bullet Bill.
0 3 right 100 5 0
Explanation: The Bullet Bill will pass very quickly over Mario's head. He will be safe.
0 2 right 1 5 0
Explanation: The Bullet Bill will go where Mario's head would've been.
- You can write a full program or function.
- I/O should be to stdin and stdout.
This is code-golf. Your score is the number of bytes. The solution with the lowest score in one week will win. Good luck!