Recently we started learning programming in my computer science course in school using Python. For this, we are using Kara, which looks like a game for children at first sight, but actually is pretty cool. In case you do not know Kara…

What Is Kara

In Kara, you have a grid which as a preset consists of 9 times 9 fields. On these fields, you can place either a tree, a mushroom, a leaf, Kara or Kara on a leaf. Kara is both the name of the program itself and of its controllable ladybug. Using Python, Java, JavaScript and perhaps a few other languages, you can move, turn and do a bunch of other things with Kara. But Kara’s Python version is not perfect.

The Problem

Kara for Python only supports Python 2.2, which already is 13 years old. The latest stable version is 3.3.4. Already being a programmer for nearly four years, I decided to fix this. At first I tried replacing the Jython library bundled with Kara, which did not really work. So instead, I decided to rewrite the whole thing using the latest version of Python. Aside of that, I think that it makes sense to write a program for learning Python in Python itself.

Rewriting Kara

As already mentioned, I decided on using Python 3 for rewriting Kara. To make it as portable as possible, I also decided on using Tkinter for the GUI. And since Kara’s worlds are saved in an XML format, I could just use them as-is, which in turn meant I wouldn’t have to rewrite its world editor. So far drawing the world works, and a few other internal things do too. Of course I will have to replace the images since I am not the copyright holder, but while it is in development I will keep on using them. I will post an update as soon as its programmable and release the source code on Github.

KaraPy