Hi Python activity developers, I am fairly new to Python and to Linux. I have a number of ideas for educational activities that I would like to create for the XO. I'm currently working on a Snakes and Ladders game. I have plans for several other activities, including an Abacus, a game for stimulating mental imagery and a co-operative game based on micro-loans.
I have spent some weeks now looking for the right tools to help me develop these activities. In the hope that I may have missed an obvious but ideal solution, I'd like to give a summary of what I'm hoping to do, and ask you for your suggestions. Snakes and Ladders ================== Snakes and Ladders is an implementation of the classic board game <http://en.wikipedia.org/wiki/Snakes_and_ladders>. My aim is to help young children to learn to count (use number names in the correct order, count each square in order, count each square only once, associate number name with quantity, ...). You can find a (non-XO) draft implementation of it at: <http://olpc-dev.fuelindustries.com/snakes_080116.zip> Issues ====== 1) Show the numbers in a localized writing system (Roman, Arabic, Chinese, ...) 2) Show multiple counters on the same square with an offset, so that all are visible. 3) Show the current player's counter at the front (z-order) 4) Use SVG images for the default graphics, to limit file size 5) Allow user to import custom artwork for the background from (say) the Paint activity to override the default graphics 6) Allow user to customize the Snake and Ladder start and end points to match those in their background image 7) Allow user to import custom sound files from (say) Record (Sound files are used to count aloud, so it would be great to use a recording of the player's own voice) 8) Allow multiple players to share one machine, and multiple machines to share a single game 9) Show a preferences screen to allow choice of number of players, number of dice, and so on. Modules ======= So far, I've been using Pygame to display the background and counters at precise positions on the screen. My understanding is the PyGTK might more economical in terms of CPU usage than PyGame, and that it would let me use Glade to layout the screens. On the one hand, I am unsure how I could deal with multiple overlapping counters [2] or a criss-cross arrangement of snakes and ladders [4, 5] in PyGTK. On the other, creating a separate screen for setting seems simpler in PyGTK than in Pygame. Is it possible to use the two approaches together? Platform ======== My background is in Macromedia Director, which I have used at a high level for over ten years. I'd probably be most productive most quickly if I could find a similar authoring environment for Python. Having said that, I understand that Python uses a very different metaphor, so, in the long term, I would be better off using a purely Pythonic environment. I'm looking for new good habits to acquire. I have done most of my Python development so far on Windows, using IDLE. I am also very much at ease on Macintosh. I would guess that the closer my development environment is to the XO environment, the smoother the development process will go. I have managed to get a machine set up to run Ubuntu 7.10, but I haven't found how to install IDLE on it. I have found a list of Python IDEs at <http://linuxmafia.com/faq/Devtools/ides.html>, but no reviews that allow me to compare them. I would be willing to pay for an IDE (shareware or otherwise) if that is what you recommend. I understand that personal preferences play a large part in choosing both what modules to use for a particular development and what platform and environment to work with. So what would your personal preferences be for the project I describe above and why? Thanks in advance for your insight. In return, I plan to create a series of tutorials[1], written from my beginner-to-the-whole-Python-Linux-XO-thing point of view, so that others interested in writing XO activities can get up and running faster. James [1] Examples For the XO: <http://wiki.laptop.org/go/Ethiopian_Setup> For Director: <http://nonlinear.openspark.com/articles/index.htm> _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel