Hi Veli, Thank you. That is right on my level. I am just about to learn how to make classes. I am truly at the beginning, so I think I need very simple explanations right now. I have another question about this process. Is there an effective way to make a plan for a project like this that anyone can recommend? I am used to writing plans for procedural programs, but this is a different thing and must require a different kind of planning. Thanks. Jim James D Homme, , Usability Engineering, Highmark Inc., james.homme@xxxxxxxxxxxx, 412-544-1810 "Never doubt that a thoughtful group of committed citizens can change the world. Indeed, it is the only thing that ever has." -- Margaret Mead "Veli-Pekka Tätilä" <vtatila@xxxxxxxx To dent.oulu.fi> programmingblind@xxxxxxxxxxxxx Sent by: cc programmingblind- bounce@freelists. Subject org Re: Python - Learning Object Orientation 12/12/2007 10:02 AM Please respond to programmingblind@ freelists.org Hi James, Sounds oK to me. If possible, try separating three different things in the design: 1. The classes that do all the hard, internal work but don't interact with the user, typically called the application engine or the model. 2. What-ever UI you are using for the user. This should use the engine itself and the engine should not have to know anything about the UI. The idea is that once you write the GUI version, you can substitute the UI component without changing the engine at all, This is typically called the view, I think. You might want to have a design where the engine is notified of UI changes and can react accordingly, or the UI is updated in response to the engine. Observer might be a good design pattern to look into. 3. A third component that does determine how exactly your UI interacts with the engine. for instance, given the option to save after having read a file name, this component would determine what to do in the UI and engine if the user pressed cancel, opened a file, doesn't have appropriate rights and so on. This is the glue that puts all the rest of the components together without still hardcoding any UI specific logic or doing any of the engine choares. I think this is called the controller or the proxy, but might be missing some of the terms here. I still have a feeling of never truely having mastered the model, view, controller paradigm MVC, even though I do understand bits of it. So this remains a relatively vague explanation. Sorry about that. I hope someone else is able to explain this better to both of us, <smile>. -- With kind regards Veli-Pekka Tätilä (vtatila@xxxxxxxxxxxxxxxxxxxx) Accessibility, game music, synthesizers and programming: http://www.student.oulu.fi/~vtatila james.homme@xxxxxxxxxxxx wrote: > > Hi, > I was thinking of making either a Freecell game, which is a card game, or a > Monopoly game, so that I can have an object orientation project I am > interested in. Would either of these be a good thing to try? For the > approach, I was thinking of writing the first version with a console > interface. Then I was going to try to use the code for the objects and > learn WXPython to put a different interface onto the project. Is this a > good approach? What other advice do you have? __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind