473,888 Members | 1,583 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Analyzing data in a Monopoly Game?

This should be fairly straightforward , but I can't figure out how to
approach this.... I'd appreciate any ideas you have.

Goal:

Make recommendations on what a Monopoly player should do with the
houses/hotels, cards and cash they have. (i.e., what should they
mortgage/unmortage, where should they build, etc.)

What I have:

I have created a calculator to figure out the relative value of any
board setup... so any setup I give the script, I can figure out how good it
is. (http://www.psmonopoly.com/calc/propstats.htm). If you try it, the page
will show you the relative value of your setup under RESULTS at the top.

The user has given me their current setup (what they own, what's
mortgaged, what has houses, etc.), how much money they have on-hand, how
much money they want to keep on-hand after the recommendations .

What I'd like to do:

Cycle through every conceivable thing they could do (mortgage a property
here, unmortage one there, build a house here, sell a house there, etc.),
compare the relative values of all the setups, and tell them which would be
their best choice. These options are limited by monopoly rules and what
they have to play with. For example, they have to build evenly, so a user
can't have four houses on one property and the other mortgaged in the same
monopoly. They can't build more houses than they have cash to buy, and they
can only change what they have (i.e., they can't build on a property unless
they own the whole block).

Where I'm stuck:

I haven't the foggiest notion of how to use javascript to loop through all
the configurations.

I assume, once I figure out how to loop through all the user's options, I
can create a two dimensional array, containing specifics of the monopoly
config, and the relative value I calculate for it, then find the highest
relative value, and show them the delta between how the board is set up now,
and how it should (optimally) be set up.

Any thoughts?

Oct 20 '05 #1
5 1852
> Where I'm stuck:

I haven't the foggiest notion of how to use javascript to loop through all
the configurations.


JavaScript is closely related to Scheme, so any sort of AI approach
could be easily accomodated. See
http://www.crockford.com/javascript/little.html
Oct 21 '05 #2
Lee
Mike P said:

This should be fairly straightforward , but I can't figure out how to
approach this.... I'd appreciate any ideas you have.

Goal:

Make recommendations on what a Monopoly player should do with the
houses/hotels, cards and cash they have. (i.e., what should they
mortgage/unmortage, where should they build, etc.)

What I have:

I have created a calculator to figure out the relative value of any
board setup... so any setup I give the script, I can figure out how good it
is.


That's not really enough. Maximizing the next move is likely to lead to
dead ends from which there is no "better" move.

Consider the case in the best strategy would be to sell one property
in order to finance the purchase of a hotel. Having the hotel instead
of that property might be clearly favorable, but looking one move ahead,
you're not going to see any advantage to selling the property.

Oct 21 '05 #3
"Lee" <RE************ **@cox.net> wrote in message
news:dj******** *@drn.newsguy.c om...
That's not really enough. Maximizing the next move is likely to lead to
dead ends from which there is no "better" move.

Consider the case in the best strategy would be to sell one property
in order to finance the purchase of a hotel. Having the hotel instead
of that property might be clearly favorable, but looking one move ahead,
you're not going to see any advantage to selling the property.


Lee, you make a good point. The calculator, as it stands now, uses long
term probability of landing on a square (assuming infinite rolls),
multiplied by the payoff should your opponent land on the square. I think
it's a fairly good measure, though your point is well taken. Monopoly
depends heavily on the dice roll. I'm not currently factoring in where
players are situated on the board, nor am I factoring in how their
opponent(s) are setup. So regardless of what they do, the next roll can
change things significantly.. . they might lose with the next roll of the
dice.

Still, I have to begin somewhere.... and I believe this is a good place to
start. Any ideas on how to do the data analysis.... or even a better
overall approach?

Thanks!

Mike
Oct 21 '05 #4
Mike P wrote:
"Lee" <RE************ **@cox.net> wrote in message
news:dj******** *@drn.newsguy.c om...

That's not really enough. Maximizing the next move is likely to lead to
dead ends from which there is no "better" move.

Consider the case in the best strategy would be to sell one property
in order to finance the purchase of a hotel. Having the hotel instead
of that property might be clearly favorable, but looking one move ahead,
you're not going to see any advantage to selling the property.

Lee, you make a good point. The calculator, as it stands now, uses long
term probability of landing on a square (assuming infinite rolls),
multiplied by the payoff should your opponent land on the square. I think
it's a fairly good measure, though your point is well taken. Monopoly
depends heavily on the dice roll. I'm not currently factoring in where
players are situated on the board, nor am I factoring in how their
opponent(s) are setup. So regardless of what they do, the next roll can
change things significantly.. . they might lose with the next roll of the
dice.

Still, I have to begin somewhere.... and I believe this is a good place to
start. Any ideas on how to do the data analysis.... or even a better
overall approach?


Once you define the algorithm, it can be implemented. There are a
number of strategies, and various ways of determining outcomes.

You may be interested in:

<URL:http://hometown.aol.co .uk/monopolycheat/>
Is that what you have in mind?
--
Rob
Oct 21 '05 #5

"RobG" <rg***@iinet.ne t.au> wrote in message news:hd******** **********@news .optus.net.au.. .
Once you define the algorithm, it can be implemented. There are a
number of strategies, and various ways of determining outcomes.
You may be interested in:
<URL:http://hometown.aol.co .uk/monopolycheat/>
Is that what you have in mind?
--
Rob


Well close :). I've not seen that site before, but I have read through Truman Collins and Durango Bill's work. I'm trying to take their numbers and apply it to actual play situations. Truman Collins speculated that we could estimate game outcome by adding his "long term estimated income" numbers for the current game state of each player. That will give the combined estimated income for that player, at that time. The Monopoly calculator I'm in the middle of writing does just that. A player enters which properties they own, and I determine the combined long-term income. Pretty simple. Comparing the numbers of each players setup will show who's the strongest.

Then I realized, I can take it even further. I can look at what the player's current game state is, and figure out how they can change things around to improve their combined long-term income. I made up a setup, and manually did some "what-if" changes, using the JavaScript calculator I had just written. I thought, suppose a player owned both Blue properties, all three Baby Blue properties, and had $400 in cash. Should they put two houses on Blue or 8 houses on Baby Blue? Playing around with it, I found out that the baby blue option is better.... Beyond that, if a player also mortgaged Park Place (cheaper Blue), they'd get $175 more, allowing them to put Hotels on each of the Baby Blues. That gave the strongest possible long-term expected income, given what they had to play with.

What I'm now trying to do, is have the JavaScript run through all the "what-ifs" for them, and tell them what they should change to optimize their setup (i.e., Houses/Hotels they should buy or sell, properties they should mortgage or unmortgage) to optimize what they have to work with. I'm having trouble figuring out the algorithm to run through all the what-if's. I can determine the outcome, but how do I identify the feasible what-ifs to loop through? It's a little tricky because of monopoly rules. Specifically, they must build evenly, so players can not put four houses on one property until they have three on the others. They can't build up a property unless they own the whole color group, and each property is out of mortgage. If they mortgage a property they get half the purchase price, but they'll pay a 10% premium to unmortgage it. So a $100 property will yield $50 when mortgaged, but will take $55 to unmortgage. How can I figure out all the feasible setups so that I can loop through them calculating their long-term expected income?

Thanks!!!

Mike
Oct 21 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
1776
by: Francisco | last post by:
I have this problem: I have a database with information about games, and users are able to vote for them. Everytime a user votes for a game I store the unique game name into a session variable (an array). So if they are in a page were they already voted, they won't have the option to do so. The idea is that the session cookie lasts "forever", I don't want them voting for the same game everytime they get to the site. This isn't soo strict,...
6
2681
by: Jocknerd | last post by:
I'm a Python newbie and I'm having trouble with Regular Expressions when reading in a text file. Here is a sample layout of the input file: 09/04/2004 Virginia 44 Temple 14 09/04/2004 LSU 22 Oregon State 21 09/09/2004 Troy State 24 Missouri 14 As you can see, the text file contains a list of games. Each game has a date, a winning team, the winning...
7
11538
by: Rolf Hemmerling | last post by:
Hello ! Beginner's question: What ist the easiest way to store and save objects in a file generated by a C++ program, by using the "standard C++ library" and/or "Standard Template Library ( STL )" ? So I would like to generate some objects ( of different classes ) with a C++ program and would like to make it permanent / persistent, so that
10
3421
by: Virginia | last post by:
We have a product that runs on Oracle. The version of Oracle I'm working with is 8.1.7. I should also note that I'm relatively new to Oracle. I'm troubleshooting one particular database that is having performance problems when we try to run various quireies and peform inserts or updates. Unfortunately this particular product "requires" that "OPTIMIZER_MODE = RULE".
0
1616
by: Joe Ross | last post by:
(Apologies in advance if there is a better forum for asking advice on this topic). Our ASP.NET application occasionally starts spitting out OutOfMemory exceptions. When this happens, the memory usage for that IIS worker process is over 1GB. I understand in this sceneario that the virtual memory pool can become fragmented and produce this type of exception. This time, however, I was able to do an ADPlus dump while it was in this...
6
2707
by: Ben Finney | last post by:
Howdy all, Summary: I'm looking for idioms in unit tests for factoring out repetitive iteration over test data. I explain my current practice, and why it's unsatisfactory. When following test-driven development, writing tests and then coding to satisfy them, I'll start with some of the simple tests for a class.
13
2222
by: lane straatman | last post by:
I'm trying to figure out what data type is appropriate to represent a card in a game. The idea that I thought was going to work was a struct, foo, with two integer fields and two fields of char arrays: index cardno description suit ( 1, 1,Two of clubs ,'c') ( 2, 2,Three of clubs ,'c') ( 3, 3,Four of clubs ,'c') ( 4, 4,Five of clubs ,'c') ( 5, 5,Six of clubs ,'c')
5
2241
by: DarkPhoenix739 | last post by:
I have 3 classes: a Windows Form, a Game, and a Piece. The Game has a Piece, and the Windows Form has a Game. The Windows Form needs to be able to "get" the game's Piece, and view its data, but not have access to the functions of Piece that modify that data. For Example: ..Windows Form .....Game .......Piece .........Location .........public location {get {return Location;} } .........public Move() .......public piece {get { return...
1
2079
by: Van Dugall | last post by:
Hello I have been writing a game in javascript which works fine but I wanted to step it up and request the data of the game from the server. I haven't really used php...all I know is from the Internet and I couldn't really find the answer I was looking for. I asked around and they said this is really easy to implement but I still can't get it to work. My problem is it doesn't work for some reason... I think I'm not calling the url of my php...
0
9800
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11178
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10777
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10882
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10438
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9597
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
7148
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5817
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
4243
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.