(Link to video)
  • Recorded with FCEU 0.98.15
  • Luck manipulation
  • Fastest time to get the CPU bankrupt (by last player input)
Yet another improvement, by 16 frames, still using the same strategy. The time is now 00:30.03 (1802 frames) ... almost under 30 seconds, but unless I missed something unexpected, I don't think it's possible to do any better.
I spent the last 1-2 days figuring out the game's randomness completely (different variations and frame timings) by looking at the code and memory viewer, and made a program that simulates it. Then, given the initial random values, it tries all possible timings that lead to victory and only keeps the fastest one ... doing about 500000 re-records worth of work in 15 seconds.
The result was only 10 frames faster than on the last run, but it should be optimal. Then right when I was going to record this run to submit (after finding and testing the best combination), I found another way to manipulate the card order: when entering the player's name, both the amount of letters I enter and the time between each (including End) affect it. Trying different ones until I found a pattern in the results allowed to save 6 more frames.
The delays are now down to this:
  • 7+0 for the card order
  • 0+2+4 to get Community Chest
  • 0+0+4 to visit jail
  • 0 for the CPU to buy Oriental
  • 2+1 to buy St. James
  • 0+0+1 to buy Tennessee
  • 0+1+5 to buy New York
  • 3+2 for the CPU to go bankrupt
Total: 32

Bisqwit: Processing.

Active player (432)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
So what do I owe Baxter and Atro? :)
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P
Joined: 11/15/2004
Posts: 804
Location: Canada
Just a quick note about the brute force discussion. Bisqwit posted some extremely large numbers to explain how long it would take to test every possible input for a game of this length, which looks like it isn't possible and never will be. We assume "never" because we assume that computers will only double in power every 18 months or so because of Moore's Law. To be sure, "general purpose" processors really do only double their performance in general benchmarks every 18 months or so. When someone decides to make a specialized processor, or add specialized instructions, it's often possible to improve upon the performance of a general purpose processor -- on that task -- by dozens of times. Via, for instance, decided to add a dedicated decryption unit to their processors a few years back, making them several times faster at decrypting certain algorithms than AMD and Intel processors at the time, despite significantly lower general purpose performance. Ageia has developed a dedicated "physics processing unit" which they claim will allow 20 times as many objects to be tracked versus a general purpose processor (let's not debate that claim in this thread). Intel has now announced that their next architecture after the Core architecture, which is due in Q3, will be massively multi-core, using dozens of small general purpose cores, with additional dedicated cores for tasks that need the extra power. So... that means that, if someone chooses to create dedicated circuitry for whatever kind of processing this sort of brute force test would need, it's entirely within the realm of possibility that that specific task could be sped up exponentially, or even geometrically, while general performance continues to merely double. I'm not saying that it's likely, or that any of us may live to see the day, but it's at least possible that there will someday be enough processing power to write a program to play a perfect TAS of a game like Monopoly. You might want to freeze yourself while you're waiting for it.
TASing or playing back a DOS game? Make sure your files match the archive at RGB Classic Games.
Active player (277)
Joined: 5/29/2004
Posts: 5712
But won't I die of hypothermia?
put yourself in my rocketpack if that poochie is one outrageous dude
Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I realize Bisqwit was just throwing out numbers to prove a point (that brute-forcing a TAS is hard), but really the problem is much more feasible than he suggests. Instead of brute-forcing input, you'd want to brute-force the state of the game. In other words, look at the contents of memory, etc. You'd try each possible input, but only keep track of the unique states that are generated. That way, if there are lots of possible inputs that lead to the same state (an obvious example is, if your input is ignored by the program), not so much redundant computation is done. Perhaps you could even make the search easier by ignoring variables, such as score, that have no impact on whether you beat the game. However, I don't think even this would be feasible for more than ~60 frames in most situations ) Really you need a human to understand the programming of the game. I was wondering if Monopoly is a possible exception--with Acmlm figuring out the random number generator, and an optimal (?) game plan, the run should be provably optimal!
Use the force
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
I just found a way to bankrupt the cpu within 9 seconds (the entire movie is only 9 seconds), but it involves a controversial method. If you press Start and select at the same time, an option appears on the board which says "which player am I talking to" if you select the computer players name, you can control thier actions while in the select menu. At this point you can trade all thier cash to player1 and since you are also player1 you can accept the transaction. Afterwards the computer is left with $0 and he must land on a space which costs money, only then will he go bankrupt. Should this method be allowed in a run, or is it considered cheating?
They're off to find the hero of the day...
Player (94)
Joined: 6/25/2005
Posts: 122
hero of the day wrote:
I just found a way to bankrupt the cpu within 9 seconds (the entire movie is only 9 seconds), but it involves a controversial method. If you press Start and select at the same time, an option appears on the board which says "which player am I talking to" if you select the computer players name, you can control thier actions while in the select menu. At this point you can trade all thier cash to player1 and since you are also player1 you can accept the transaction. Afterwards the computer is left with $0 and he must land on a space which costs money, only then will he go bankrupt. Should this method be allowed in a run, or is it considered cheating?
I wouldn't worry about whether or not it was cheating when the previous movie loads every dice roll and stacks the deck of cards. However, the trade-all-the-money away plan certainly lacks style. I like watching TAS movies because they show complete dominance over the game, not because they reveal a hidden "win the game instantly" button.
Player (104)
Joined: 6/7/2005
Posts: 290
Location: New York
hero of the day wrote:
I just found a way to bankrupt the cpu within 9 seconds (the entire movie is only 9 seconds), but it involves a controversial method. If you press Start and select at the same time, an option appears on the board which says "which player am I talking to" if you select the computer players name, you can control thier actions while in the select menu. At this point you can trade all thier cash to player1 and since you are also player1 you can accept the transaction. Afterwards the computer is left with $0 and he must land on a space which costs money, only then will he go bankrupt. Should this method be allowed in a run, or is it considered cheating?
Haha, I used to do that when I played it on the NES for fun. It made things very boring after a while...one thing I did like, outside of the computer AI was that the chance for rolling any given number and getting any given card is about the same as the board game. Makes this game uber hard to TAS.
Soft Blue Dragon
Editor, Skilled player (1938)
Joined: 6/15/2005
Posts: 3244
I don't think that would be accepted. That's like forcing the CPU to give away all its money, rather than seeing how stupid/unlucky the CPU actually is on its own power. In that regard, Start+Select is almost like a code. On the other hand, I worked out a possible strategy that could bring Monopoly down to 25 seconds. I was inspired by hero's "CPU bankrupt by trading" movie and created a strategy that only trades once, then, after movie end, watches the CPU self-destruct in the next 75 seconds (hint!). It's definitely not what one would think, though (unless you are reading my mind). The only problem (not to a simulator, of course) is that the CPU's last move must be manipulated for 3 rolls. Acmlm, I sent you a PM regarding the strategy. Obviously, I can't do it myself.
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
Thats awsome FractalFusion, 25 seconds is great. Your strategy intrigues me though. The most you can obtain in a single trade is $930, which means you some how found a way for the computer to lose $570 within three (or four) dice rolls. Good luck with getting the final turn manipulated, I would love to see this game drop below 30 seconds. Edit: I couldn't figure out what your strategy is FractalFusion, but in the process of thinking I discovered a legitimate way to beat the current record. It involves the trading process but only requires one trade as well. I don't think my method would be 25 seconds though, more likely 28-29 seconds.
They're off to find the hero of the day...
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Is trading a good idea. No. Seriously, a movie doing that won't amaze me.
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
Yes the movie would be less entertaining with trading in it, but there is still alot of luck manipulation which makes it impossible to duplicate on a console. I dont really intend on running this game anymore, I just want to give ideas to people who are still trying.
They're off to find the hero of the day...
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3584)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
Computer opponents vary in their ability to handle money. Ollie is the worst. I just tested and if you mortage all 3 orange properties, he will trade all $1500 for them and then go bankrupt on the interest. That means just buying the 3 properties, minimizing ollie's first turn, then make 1 trade, then watching him self-destruct. Of course you could optimize that and ask for the minimum amount to make him go bankrupt (which would be slightly less than the 1500)
It's hard to look this good. My TAS projects
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
the orange monopoly will require 5 rolls of the dice to obtain and trade, 4 human & 1 computer. If you go for the dark purple monopoly the rolls are reduced to 4. H:1+2=baltic C:6+4=visit jail H:2+2=chance to boardwalk H:1+1=mediteranean Ollie is a total moron, willing to trade all his money for just 1 of the dark purple properties. Another idea which I didn't bother to test so it may not work, puts ollie on baltic and then the human obtains boardwalk and mediteranean. Ollie may purchse the properties for all his money, which would reduce the total amount of turns to 3.
They're off to find the hero of the day...
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3584)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
I just tested and he will in fact trade $1440 for a mortaged mediterranean & boardwalk when he owns baltic. the problem is that it won't bankrupt him since he is required only to pay the interest which adds up to $23 and he can mortgage baltic for $30.
It's hard to look this good. My TAS projects
Editor, Skilled player (1938)
Joined: 6/15/2005
Posts: 3244
My strategy (which I sent to Acmlm and I think he received), was quite different. The CPU and I take light blue properties: H: 2+4 Oriental C: 2+6 Vermont H: 1+2 Connecticut However, the trading is very different. Instead of trading as much as possible from the CPU, I give him a monopoly for $201. Why not max $? First, it's faster that way :) Second, a little trick I remember is that a player can have 4 houses each on a first street monopoly and nothing else, hit Community Chest repairs, and go bankrupt. Thus, I let the CPU build its houses and hotels. The CPU buys a second street property, then hits Chance repairs, losing its hotels, then hits Comm. Chest repairs, done. By the way, this doesn't work on all CPU characters since some go into trade mode almost instantly after buying Vermont. And that's three rolls to manipulate. I never realized though that CPU Ollie gives up all money for a monopoly, though.
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
Fractal I had the exact same idea, but after running the numbers through my head a few times, I dont think it is possible (if I understand your idea correctly). Here is why: From vermont avenue the CPU needs to roll doubles just to take a second turn. It is 9 spaces to community chest which would mean he would not be able to roll again. Not only that, but with 12 houses at $40 dollars a pop for the comunity chest repair card, he would owe $480. He would be able to mortgage all his houses for $300, and the 3 blue properties for $160. If he was allowed to purchase a second street property, he could mortgage that and easily pay off the extra $20 owed.
They're off to find the hero of the day...
Experienced player (527)
Joined: 11/14/2004
Posts: 169
Location: Mirabel, Québec, Canada
I haven't tried FractalFusion's yet, but it seemed like it'd work ... the CPU would buy one of the orange properties before landing on Chance and Community Chest, then would be missing $7 to pay for repairs. I tested the one where Ollie trades all his money away, it's about half a second slower than this submission (setting the money to trade takes too long), but at least it ends about 10 seconds faster.
Editor, Skilled player (1938)
Joined: 6/15/2005
Posts: 3244
Sorry for not making it clear, but the Chance repair would force CPU to mortgage both second street property and lose hotels. I also forgot to mention mortgaging Oriental and Connecticut before trading, since it seems faster than raising the trade money.
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
Oh ok that makes sense, very nice strategy FractalFusion! This would definitly bring the input time to around 25 seconds. Edit: I recorded a very unoptimized run using an easy new trade strategy and got a movie 28 seconds in length. It is likely that FractalFusion's method will yield a shorter movie, if not I may clean this one up and submit it.
They're off to find the hero of the day...
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14853
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [520] NES Monopoly by Acmlm in 00:30.03
Joined: 2/16/2005
Posts: 462
This is a very impressive feat of engineering. Though Bisqwit's comment is a little exagerrated. There are always optimizations you can do to a brute force search to prune the branching factor considerably. At least if you can think of a meaningful lower-bound heuristic.
This signature is much better than its previous version.
Player (200)
Joined: 7/6/2004
Posts: 511
Whoa very nice. I would have never guessed 4 seconds to be dropped and here you guys are still talking about dropping even more time!
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Joined: 5/13/2006
Posts: 10
That was really really fast. I loved it.
Active player (405)
Joined: 3/22/2006
Posts: 708
I wouldn't mind seeing a movie where the player bankrupts the maximum number of computer opponents (rather than just one). Any thoughts?
Joined: 5/13/2006
Posts: 10
Hyena wrote:
I wouldn't mind seeing a movie where the player bankrupts the maximum number of computer opponents (rather than just one). Any thoughts?
I would prefer to watch that instead myself. Seeing three computer opponents going bankrupt in 2 minutes would be hilarious.