Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.

Would you play Monopoly on a calculator?
Yes
 37%  [ 18 ]
No
 0%  [ 0 ]
Maybe
 4%  [ 2 ]
Only if it was really good
 58%  [ 28 ]
Total Votes : 48

What I deem to be the second-greatest board game of all time (after chess) and certainly the most successful one is now making it's way into the world of TI-83+ BASIC! That's right, I am porting Parker Brothers' Monopoly for the TI-83+ family of calculators.

The Inspiration:
World Domination (basically risk), by none other than the all powerful KermMartian! After seeing this high quality board game clone, I wanted to make one of my own.

What I have so far:
  • Board Drawing
  • Rolling Dice/Moving
  • Player stat viewing
  • Card/Space Viewing
  • 2, 3, or 4 player games
  • The ability to forfeit
  • All property info in (very large) strings and a matrix
  • Help/Credits

Stats:
4 programs, 2 matrices. 2 strings, and a bunch of real variables. Around 10000 bytes currently. Lots left to do.

This is the biggest project I have ever attempted on a calculator, so it will likely be quite a while before the game is released.
Thanks for the shout-out! I'm glad my project was an inspiration to you; it's one of my games of which I'm particularly proud from my high school years. Have you taken a look at tifreak8x's long-suffering Calcopoly yet? Good luck.
Be careful with naming things. There were other Monopoly clones being produced over the last decade that were shut down by the official Monopoly making people :p

And yes, mine needs a kick in the pants.
Thanks for the advice! I will have to come up with a good new name for it that is original enough to not infringe any copyright Shock. I may also change the names of properties/spaces to the names of calculators or some of my favorite coding commands and maybe tweak the rent values as well. I also thought that I should put up a list of what I still need to do (which you all should feel free to add to if necessary), so here it is:

  • Card Drawing //Storing all of the cards could pose a memory problem so I may have do design some randomized card creation
  • Displaying of pieces on the board //may not end up being implemented due to limited screen space)
  • Buying Properties
  • Charging Rent
  • Trading //This will be a biggie and I will probably need help, but I'll cross that bridge when I get to it
  • Mortgaging/Un-mortgaging
  • Auctioning //Could also be a pain
  • Transitioning from "Player 1, Player 2, etc" to "Dog, Car, Battleship, etc" //These names might change as well
  • Being in/getting out of Jail
  • Building houses/hotels
  • Coming up with new names

And finally, here are some screenies:


Looks really cool! Very Happy
So here is what I have for the names. Feel free to make suggestions for changes.

CODE-OPOLY
Mediterranean Avenue = TI-73
Baltic Avenue = TI-73 Explorer
Oriental Avenue = TI-80
Vermont Avenue = TI-81
Connecticut Avenue = TI-82
St Charles Place = TI-83
States Avenue = TI-83+
Virginia Avenue = TI-83+ SE
St James Place = TI-84+
Tennessee Avenue = TI-84+ SE
New York Avenue = TI-84+ CSE
Kentucky Avenue = TI-84+ CE
Illinois Avenue = TI-85
Indiana Avenue = TI-86
Atlantic Avenue = TI-89
Ventnor Avenue = TI-89 Titanium
Marvin Gardens = TI-92
Pacific Avenue = TI-92 II
North Carolina Avenue = TI-92+
Pennsylvania Avenue = Voyage 200
Park Place = TI-Nspire CAS
Boardwalk = TI-Nspire CX
Reading Railroad = Direct USB
Pennsylvania Railroad = Parallel Link
B&O Railroad = Serial Link
Short Line Railroad = TI-Graph Link
Electric Company = Short Circuit
Water Works = Memory leak
Chance = rand
Community Chest = randInt
Go = ON
Jail = ERROR: JAIL
Free parking = FREE MONEY
Go to jail = Goto J
Income Tax = ERROR: INCOME TAX
Luxury Tax = ERROR: LUXURY TAX

Also, I have begun the implementation of property acquisition and rent paying (without development) and am making some of the messages be on the graph screen and appear smoothly instead of jumping to the homescreen and interrupting the flow of the game.
Kydapoot wrote:
So here is what I have for the names. Feel free to make suggestions for changes.

CODE-OPOLY
Mediterranean Avenue = TI-73
Baltic Avenue = TI-73 Explorer
...
Income Tax = ERROR: INCOME TAX
Luxury Tax = ERROR: LUXURY TAX

Houses/Hotels? (BASIC programs, ASM programs)
Game pieces? (random hardware components?)
Thanks, I forgot those. I like the BASIC/ASM programs for houses/hotels idea, but I may use Programs/Apps. As for as game pieces, I will probably stick with Player 1, Player 2 for now to save memory and keep it simple until I do the tweaking and optimization. Once I get to that stage, I will probably name them after well-known emulators.
Another update on progress: I have completely finished title deed card/property info viewing and have begun working on buying properties and charging simple rent (no development).
MORE STUFF:
  • Dollars will become bytes
  • I fixed a bug where sometimes the turn would not change
  • You can now view more detailed information on players and properties
  • You can buy properties
  • Simple rent is finished except for utilities
  • Added "Quick Clear" where you can instantly exit to the home screen and then pick up where you left off
  • Added colors (written out, obviously, as this is for monochrome calcs)
  • There are now six total programs, but seeing as Metroid Pi, World Domination, and Age of Darkness (all of which I am impressed by the quality of) all have about 20 subprograms, I think I am OK in that respect. Razz
It's been a while since an update so here goes:
I have...
  • Began rand/randInt card drawing. The possibilities are randomly generated and you can currently pay/receive money or move up to four spaces in either direction
  • Discovered (just this morning so I haven't fixed them yet) two bugs involving keeping track of doubles after buying properties and putting the new location into affect after being moved by a card draw
  • Tested what gameplay I have and tweaked some graphics and user interface
Well, here we go again! I'm having to start over because I couldn't make sense of my old spaghetti-code, but I'm excited to do it correctly this time. Now, I am fully documenting the project in the Wiki attached to this Github repository: https://github.com/TrumpetDude/TI-Monopoly
This sounds like an awesome project. Will it still be on the ti83+?
Good luck!
21tmccauley wrote:
Will it still be on the ti83+?

The ReadMe wrote:
Monopoly for the TI-84+
Wink

Glad you're getting back into this! Even if I don't have a compatible calculator. Make sure to comment your code this time! Razz
Whoops! The program will work for the whole TI-83+ series. I will correct that in the repository.
I probably will not be actually implementing chance/community chest cards for a while, but I'd like to start figuring them out. Cool

I think that what I had planned on before was to randomly generate cards. However, I would like to figure out a way to make them similar to the way that they are in the actual game. Currently, my idea for this is to use a list of money values, randomize it at the beginning of the game, and cycle through it as cards are drawn.

I have a couple of questions though. One is: Is there an efficient way in TI-Basic to pop out the first item in a list and bump all of the other elements upward? Once a card is drawn, I want to move its value to the bottom and then move all the cards up, and currently, the best method that I can think of to do this is using a for() loop.

Secondly, when do y'all shuffle the card draw piles? I don't think there is an official rule for this beyond shuffling at the beginning, but I'm curious if people generally reshuffle the cards when they start reappearing and they are all cycles through.
You could use the seq( command to move the first element of a list to the bottom.

Code:
L1(1→L1(1+dim(L1
seq(L1(I),I,2,dim(L1→L1

I haven't tested that but hopefully it should work. The first line copies the first element of L1 to the end. The second line creates a new list using the 2nd through last elements of L1 and stores it back in L1.
You can use augment( to append an element, and deltaList(cumSum( to remove the first element:

Code:
augment(deltaList(cumSum(L1)),L1(1->L1
Thank you! I think that I will go with
Code:
augment(deltaList(cumSum(L1)),L1(1->L1
because it is a little smaller and I understand the commands more thoroughly.

EDIT: After some fiddling with this code, I have discovered that L1(1 has to be bracketed to make it a list argument for the augment( command.

Code:
augment(deltaList(cumSum(L1)),{L1(1->L1
Well, now users can start a new game. It isn't much, but I would rather take a long time and document everything than zip through writing and then forget stuff.

On another note, I have a couple of questions about packaging programs into an app.
Firstly, does anyone know of an alternative Basic Builder that runs on a mac? If not, I'll figure out how to access a windows computer, but it would be nice if I didn't have to.
Second, if I use short assembly programs (I plan on using hexcodes like these for graphics), will I be able to package these along with the TI-Basic programs into an app?
1) I don't know of a mac alternative
2) I'm pretty sure you can package sub-programs along with your program with basic builder
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement