Lâcher un gosse face à un murDropping a kid in front of a wall
Un daron qui ne pouvait plus poser un gosse devant un mur, quarante-huit murs testés, et le calcul qui explique pourquoi cinq bêtises ne font pas gagner.A Dad who couldn't put a kid down in front of a wall, forty-eight walls tested, and the math that explains why five pieces of mischief don't win the round.
Quand le daron lâche un gosse, ou quand un gosse s'arrache de ses bras, il doit atterrir devant le daron, tout près. Jamais derrière, jamais à travers un mur, et surtout jamais renvoyé à un point d'apparition. Ce dernier cas existait : quand la recherche d'une place échouait, un vieux mécanisme de secours pouvait choisir un point de départ, et le gosse se retrouvait téléporté à l'autre bout de la maison.
When Dad drops a kid, or when a kid wriggles out of his arms, the kid has to land in front of Dad, close by. Never behind him, never through a wall, and above all never sent back to a spawn point. That last case used to exist: when the search for a spot failed, an old fallback could pick a starting point, and the kid got teleported to the other side of the house.
86 centimètres
86 centimeters
En septembre, nouveau souci : face à un mur, le daron ne pouvait plus lâcher personne. La recherche cherchait tous ses candidats au moins 86 centimètres devant lui, soit la somme des rayons des deux personnages plus 30 centimètres. Contre une paroi, décaler la position sur les côtés ne suffisait jamais, puisque tous les candidats restaient dans le mur. Le daron gardait le gosse sous le bras, coincé avec lui.
In September, a new problem: facing a wall, Dad couldn't drop anyone anymore. The search looked for every candidate spot at least 86 centimeters in front of him, the sum of both characters' radii plus 30 centimeters. Against a wall, shifting sideways never helped, since every candidate was still inside the wall. Dad kept the kid under his arm, stuck with him.
Premier correctif : quand les places habituelles sont prises, la recherche balaie des arcs de chaque côté, en vérifiant à chaque fois le sol, la place disponible, l'absence d'autres joueurs et un trajet dégagé. Les tests passaient. Puis j'ai réessayé dans la vraie maison, contre un vrai mur, et ça bloquait encore.
First fix: when the usual spots are taken, the search sweeps arcs on both sides, checking the floor, the available room, the absence of other players and a clear path every time. The tests passed. Then I tried again in the real house, against a real wall, and it still got stuck.
Il a donc fallu tester sur la vraie maison : le daron se colle à 48 murs différents autour des points d'apparition, attrape un gosse et le lâche. Avant la seconde correction : 45 lâchers réussis et 3 refus, dont 2 injustifiés, car une place libre existait bien. Après, en resserrant l'espacement des positions testées et en élargissant les angles : 47 sur 48. Le dernier refus est légitime, il n'y a vraiment pas de place. Dans ce cas, le daron garde le gosse et doit reculer ou tourner, et un gosse qui a déjà gagné son évasion retente la sortie toutes les 0,2 seconde.
So the test had to run on the real house: Dad presses against 48 different walls around the spawn points, grabs a kid and drops them. Before the second fix: 45 successful drops and 3 refusals, 2 of them wrong, because a free spot did exist. After tightening the spacing between tested positions and widening the angles: 47 out of 48. The last refusal is legitimate, there really is no room. In that case Dad keeps the kid and has to back up or turn, and a kid who has already earned their escape retries getting out every 0.2 seconds.
Pourquoi cinq bêtises ne suffisent pas
Why five pieces of mischief aren't enough
Un retour de la même période m'a fait sortir la calculette : un gosse fait cinq bêtises et ne gagne pas. Avec les réglages par défaut, une bêtise rapporte 15 points de bordel et la victoire en demande 100. Cinq bêtises font 75. Quand le daron range une bêtise, il retire 10 points ; si un gosse la refait, il en remet 15. Chaque aller-retour rapporte donc 5 points net, et les événements changent aussi le total. J'ai choisi de garder ce seuil de victoire indépendant et réglable à part, plutôt que de le calculer d'après le nombre de joueurs ou de stations.
Another report from the same period had me reach for a calculator: a kid does five pieces of mischief and doesn't win. With the default settings, each one is worth 15 mess points and victory takes 100. Five of them make 75. When Dad cleans one up, he removes 10 points; if a kid redoes it, they add 15 back. Every round trip nets 5 points, and events change the total too. I chose to keep that victory threshold independent and tunable on its own, rather than computing it from the number of players or stations.
Et deux bugs pour finir. Le tableau des scores ne s'ouvrait plus avec TAB : deux lignes de configuration avaient glissé dans la section du mode Halloween, et le mode normal se retrouvait sans tableau. Côté traductions, « CUISINE » et « Cuisine » se mélangeaient, parce que la comparaison de textes ignorait les majuscules. En treize langues, ça s'est vu vite.
And two bugs to finish. The scoreboard wouldn't open with TAB anymore: two configuration lines had slipped into the Halloween mode's section, leaving the regular mode without a scoreboard. On the translation side, “CUISINE” and “Cuisine” got mixed up, because the text comparison ignored capital letters. In thirteen languages, it showed fast.
Lex Games