Challenge 1
Split the mission set into two columns: FIXED, the parts that are the same every round, and VARIABLE, the parts decided per round. Argue about the borderline ones — that argument is the lesson.
EV3 Robotics›Level 4 · WRO Prep›Lesson 33
Level 4 · Lesson 33 · EV3-L04-3360 minutes · Block 5 of 6 · Mat: WRO 2025 — The Future of Robots
Plan a mission set that one fixed program cannot cover — and prove it with a number.
Every route you have planned so far has been the same every time you ran it. This mat breaks that. The three launch pads along the bottom look identical and are reached the same way, and which one a round actually needs is not something you can know while writing the program.
This is the real competition condition. A serious round tells you what to do shortly before you run, not weeks earlier. A program that assumes the answer is right some of the time and useless the rest.
Six stations, and their arrangement is the whole point:
Look at what that layout says. A, B and C are interchangeable — same line, same approach, same distance apart. Reaching pad 3 instead of pad 1 is the same driving with a different number in it.
And E is expensive. It is the only station away from the bottom edge, so visiting it means a long crossing up and back that no other mission needs. It is the obvious thing to include when you have time and drop when you do not.
Split your mission list into two columns, and be strict about which side things go on.
Fixed — the same in every round. Starting at HOME. Driving along the bottom line. Squaring up at a pad. Delivering to the gantry at D. Returning to HOME.
Variable — decided per round. Which pad. How many pads. Whether the satellite row at E is worth the crossing.
Now count. If a round can call for any one of three pads, and the satellite row is either in or out, that is three times two — six different runs. Write the six out.
Six fixed programs is six ways to load the wrong one. Under pressure, with a scorer waiting, somebody has to find the right file on the Brick and be certain. That is a way to lose a round that has nothing to do with robots — and it gets worse, not better, the more prepared you are.
The alternative is one program that is told which run to do, at the start, by a human pressing a button. The driving is written once. The choice is data.
That is this whole block. Lesson 35 builds the choosing, 36 makes it scale past a screenful, 37 makes the robot remember what it did, 38 lets it do two things at once, and 39 puts them together.
Three artefacts, and lesson 35 is built directly from the third.
One — the two columns. Fixed and variable, every mission on the set placed in one of them. Argue about the borderline ones; that argument is the lesson.
Two — the costed route for one run. As in lesson 25: station order, a time beside every leg and action, totalled against the round. Cost the version with the satellite row and the version without, so you know what E is worth in seconds.
Three — the menu list. The runs your program will offer, in the order they will appear, each with a name short enough to read on the Brick screen at a glance in a noisy hall. Pad 1 beats Launch pad one delivery run, every time.
Write the pad run as pseudocode in your My Block names, once. Then read it back and mark every place where the three pads would differ.
There should be very few. Probably one distance, or one count of lines crossed. Everything else — the follower, the squaring, the attachment, the delivery to the gantry — is identical.
That is lesson 14’s rule at a larger scale. Two blocks that differ only by a number should be one block with an input. Three routes that differ only by a number should be one route with a variable — and the menu is just how a person puts a value into that variable before the robot moves.
Sketch the shape of the finished program in three parts, because you will build exactly this over the next six lessons: choose, then run the chosen thing, then report what happened.
Three questions, answered as a team and written down:
Block 4’s robot at HOME, pushed by hand. Walk the pad 1 run, then the pad 3 run, then the pad 5 run, with somebody reading the pseudocode each time and a third person timing.
Walking all three back to back is what makes the point land: the three walks feel the same, because they are the same, apart from where you stop.
Then walk the satellite crossing on its own and time it. That number decides whether E is ever worth doing.
Today’s entry opens Block 5:
Nothing in Block 5 needs a new sensor. Everything from here is software: variables, menus, lists and parallel beams. Your robot is already good enough — this block is about making one program do what six programs would have done.
This model drives, so its challenges are run on a mat. Mats differ between branches — check you are looking at the one in your room.

WRO 2025 RoboMission Elementary — The Future of Robots · official WRO game mat, 2362 × 1143 mm
The challenges name these places rather than distances, so the same challenge works on any mat:
Switch mats above and every route below is redrawn on the mat you chose.
Work through the challenges in order — each is harder than the last. The mission comes after all three, and it is meant to make you plan before you build.
Split the mission set into two columns: FIXED, the parts that are the same every round, and VARIABLE, the parts decided per round. Argue about the borderline ones — that argument is the lesson.
Cost the route you want in seconds, using the times you measured in Block 4, and cost it twice: with the satellite row at E and without. The difference is what that crossing is worth.

Count how many separate programs the set would need without a menu — three pads times the satellite row being in or out. Write the number down, then write the menu list: the runs your program will offer, in order, with names short enough to read on the Brick screen at a glance.

Produce the costed route card, the fixed-and-variable columns, and the menu list. Then walk the pad 1, pad 3 and pad 5 runs back to back by hand and time each. They should feel the same, because they are the same apart from where you stop — which is the whole argument for one program with a variable in it instead of six programs on a Brick.
