Snowball Fight: SHHC20
Speaker UNPreparedness Room
 

In the Speaker Unpreparedness Room is Tangle Coalbox who asks for help in determining how folks are beating the Snowball Fight game in impossible mode.

Snowball Fight
 

Opening the modal shows the game where you can choose your player name on easy and medium, but not on hard or impossible.

Same Layout
 

In easy and medium mode, if the same username is used, the player and opponent's layout is the same. So the player name is used to seed the layouts.

Not-so-Random
 

Watching how the game modal was launched using Chrome Dev Tools, I saw that when the page https://snowball2.kringlecastle.com/game is loaded in impossible mode, hidden in the HTML is the previous 624 random values used for the player name, which then generates the layout.

Hammer Code
 

Using the mt19937.py script available from https://github.com/tliston/mt19937/blob/main/mt19937.py, I hammer coded it to give me the next number that is available here.

So what I did was to launch a game in impossible mode, copy all 624 seeds and dumped into a log file fed into the hacked script to generate the next value in the sequence.

Doppleganger
 

Opening another browser window in parallel, I opened the snowball fight game and started an easy game with the same player name as the next number. This showed the layout to be the same!

I played the game in easy mode to figure out the opponent's layout, then used that information to win the game in impossible mode.

Too Easy
 

I played the game in easy mode to figure out the opponent's layout, then used that information to play the game.

Cheating?
 

Knowing the opponents layout in a battleship clone is a surefire way to win (unless you're my 5-year-old son, who still hasn't figured out how to use that knowledge.... *sigh).

An overview of all people, places, and events can be learned in the Introduction.

×