Virtual Caesar Cipher Wheel program

The Caesar Cipher Wheel is a paper cutout that can be used to perform encryption and decryption in the Caesar Cipher. However, if you don't have a printer but do have Python and Pygame installed, you can use this Caesar Cipher Wheel program to rotate a virtual cipher disk instead.

Download source and image files. (88 KB)

Download the executable for Windows (5.3 MB)

There is also an online JavaScript Virtual Cipher Wheel.

You will need Python (2 or 3) and Pygame installed to run the program. Or, if you are running Windows, you can download the win32 binary.

Read More

New Game Source Code: Simon Gesture (Simon clone with mouse gestures)

This game works with Python 2 or 3, though you'll need the Pygame framework first. This game makes use of the MooseGesture mouse gestures module I developed.

Draw out horizontal, vertical, or diagonal lines in the same directions that the dot moves. The pattern of the dot's movement becomes longer and longer.

Source code & music file.

If you'd like to learn about how the mouse gesture algorithm in the module works, look at the MooseGesture post

Read More

Pygcurse - A "curses" Emulator Built on Pygame

Pygcurse (pronounced "pig curse") is a curses library emulator that runs on top of the Pygame framework. It provides an easy way to create text adventures, roguelikes, and console-style applications. The mascot of Pygcurse is a blue pig with a skull tattoo on its butt.

Download Pygcurse and Demo Programs.

Read the Pygcurse tutorial.

View the Pygcurse homepage.

Pygcurse provides several benefits over normal text-based stdio programs:

  1. Color text and background.
  2. The ability to move the cursor and print text anywhere in the console window.
  3. The ability to make console apps that make use of the mouse.
  4. The ability to have programs respond to individual key presses, instead of waiting for the user to type an entire string and press enter (as is the case with input()/raw_input()).
  5. The ability to use any font and any character in those fonts.
  6. Since the console window that Pygcurse uses is just a Pygame surface object, additional drawing and transformations can be applied to it. Multiple surfaces can also be used in the same program.

Pygcurse also provides some additional features that curses normally doesn't, such as tinting, shadows, textboxes, and line drawing functions.

Pygcurse requires Pygame to be installed. Pygame can be downloaded from Pygcurse can be used with either Python 2 or Python 3.

Read More

New Game Source Code: Gemgem (A Bejeweled clone)

Here's the source code for a Bejeweled clone called Gemgem, written in Python with the Pygame library. You’ll need Python (2 or 3) and Pygame installed to run it. I've tried to keep the source code simple so it's easy to follow and learn programming and Pygame from it. It comes in under 540 lines of code, including whitespace & comments.

Download the Gemgem source code and graphics.

To play, click on (or drag over) two adjacent gems to swap their position. You need to swap them so that there are three or more gems of the same type in a row. This causes the gems to disappear and new gems to fall in their place. You get more points for chain reactions or more-than-three matches. The score constantly trickles down, so solve as fast as possible. The game ends when no more moves can be made.

The backspace key will reset the board, the escape key quits.

The graphics were from Osmic on

Read More

New Game Source Code: Star Pusher (Sokoban clone)

Here's a Sokoban ("box pusher") clone called Star Pusher. I've used the graphics from the Planet Cute collection. You'll need Python (2 or 3) and Pygame installed to run it. Just download and unzip the files to the same directory. It comes with 201 levels from David W. Skinner.

Download the source code and graphics.

(UPDATE: I've updated the code so that it works on Linux. It was due to a \r\n newline issue. I've tested the game in Ubuntu and it works.)

The source code is designed to be readable so that new programmers can understand and modify it without much effort.

Read More