My First Raspberry Pi Game " Part 03 " It's like a magic spell

November 14, 2012 [My First Raspberry Pi Game, Programming Languages, Python, Raspberry Pi, Tech, Videos]

Parts: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.

Writing your first ever computer program on the Raspberry Pi.

Embedded YouTube video

Today we will write the very basic outline of our game. When we've finished it won't actually do anything. In fact, it won't even run.

Writing a computer program is a lot like doing magic. To write programs well it is really helpful to treat it like magic, and not think about how it works (until you have to...). We're going to do that - write down in very simple terms what our program will do, but not yet think about how it will do it.

The program we are going to write is a very simple test of your reactions. It will show you either a green circle or a red square. If you see a green circle, you have to press a key as quickly as you can. If you see a red square, you must not press anything.

That's the whole of the game (for now).

To make this game, we need to start up, then show a ready screen, then wait for a while showing the ready screen, then show a shape and wait for a key press, then finish.

So, let's write our magic spell. Start up LeafPad just like we did in part 2. Click File, then Open, click on "pi" on the left, then double-click redgreen.py to load up our Hello, world program. Delete everything that's there, and type exactly this instead:

start()

ready_screen()

wait()

shape()

end()

The brackets after each word mean "do it" - what they really mean is find a "function" with this name, and run it. A function is like a mini-program.

So, now our program is finished, right?

Let's run it. Go to the File menu in LeafPad and click Save, then open LXTerminal just like in part 2 and run the program by typing "python redgreen.py" as before. Here's what happens:

$ python redgreen.py
Traceback (most recent call last):
  File "redgreen.py", line 3, in 
    start()
NameError: name 'start' is not defined

We told python to run a function called "start", but we haven't written any functions yet, so it couldn't find it.

Our spell is cast, but we next time we need to start on the ingredients it uses. See you then.