I finally had another look at NES Monopoly, after thinking about
adelikat's TAS (was it really 4 years ago?). I eventually put together a plan to make this TAS.
Goals:
- Aims for fastest input (minimum input frames)
- 1 human player vs CPU
Strategy used
adelikat's TAS showed that you can trade (I'm assuming with Ollie, who gives away money like free candy), select No, and once the other player selects Yes, mortgage the properties you put up for trade and then agree to the trade. This I am sure is illegal in an actual Monopoly game, but NES Monopoly doesn't care.
Anyway, Ollie gives up to $1360 for both utilities, enough to scheme a plan where he goes bankrupt on his turn. Actually it is a little faster (for minimum input frames) to get $1304 from him. When zooming the amount up on the trade interface, the trade amount goes from $1291 to $1391. So it is faster to mash up from $1291 to $1304, than to mash down from $1391 to $1360. Now if you're wondering why $1304, there is a reason, but you'll need to watch the video to find out.
Lua code
As old as it was, the C++ code I used a long time ago, posted on
this page, was instrumental in helping me remember what I was trying to do in the first place. I was able to create a Lua version which is a bit cleaner than the C++ code. I posted the code on the same page (
HomePages/FractalFusion/Source/Monopoly). Points of emphasis include creating a lookup table of RNG1 values and addressing them by index, so as to not force the program to run RNG1-calculating code a zillion times over. Of course the code can still be improved.
Anyway, I used the code to find the delays and get the dice rolls I wanted (6+6, then either 4+6 or 6+4, then Ollie's 1+1 & 1+1). For the dice rolls, I only needed 12 total frames of delay.
I also made a dump of Chance and Community Chest card order based on RNG, so I can manipulate the correct cards. The decks are set after pressing A to start a new game. I also went through a number of scenarios during the naming screen (the fastest way to scroll RNG) to manipulate RNG1 to the correct value as soon as possible. It turns out to be faster by taking Player 2.
Notable strategies
The two key strategies are:
- Instead of walking all the way to Water Works, let the nearest utility Chance card take you there. (And it allows you to get both utilities in two turns.)
- When trading with Ollie, raise Ollie's cash offer first before attaching the utilities; this turns out to be faster.
What about the minimum time to actual ending TAS?
adelikat already has this TAS. But if you were wondering, I have a movie which improves on it, based on the above two strategies. And it can still be improved.
ViGadeomes: The new strategy used here is clever !
After discussions with the staff, we originaly came to the conclusion that both
adelikat's TAS and this submission should be treated as different branches as the different end goals chosen (fastest input vs. fastest bankrupty) leads indeed to different gameplay & strategies different enough that they can coexist. This submission should have then been accepted to Alternative.
But then FractalFusion uploaded an userfile using the same strategy as this submission but with the same end metric as the current publication so the Alternative solution isn't one anymore because strategies are almost the same now. We are then back to the original plan: replace the submission file with the userfile given by the author and use the current submission file as an alternate movie on the publication.