Created by Abdulaziz Ghuloum and last modified

*** SDL Interface for Ikarus and the Worms Game ***

This is a very simple demo for how to write interactive graphical
programs in Ikarus. The demo is the single-player game worms (also
known as snake). It has pretty much no objective other than staying
alive and eating fruits. Three AI bots compete with you in the game
and each has a different playing strategy.

The real purpose of the demo is to show how such program can be
implemented in Ikarus, an implementation that does not provide any
foreign-function-interface (FFI) facilities. The trick that we use
is simple: we write a simple program that encapsulates all the gory
details of the library we want to interface to, and we communicate
to this program through IO. The program listens for request from
its standard-input and responds by writing to its standard-output.
On the Scheme side, we start the program using process and send it
requests through the input and output ports that the process
procedure returns.

This method is pretty straight-forward and shields the programmer
from all the problems associated with writing FFI wrappers. The
programmer needs not care about how Ikarus is represented
internally, how the given library is implemented, and most
importantly, how the two systems would interact in many undesirable

This is just a demo. You're welcome to improve it as you please and
to adapt it to your needs. Enjoy.

Get this branch:
bzr branch lp:~aghuloum/scheme-libraries/ikarus-sdl
Only Abdulaziz Ghuloum can upload to this branch. If you are Abdulaziz Ghuloum please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Abdulaziz Ghuloum
Scheme Libraries

Recent revisions

5. By Abdulaziz Ghuloum <aghuloum@156-56-224-136.dhcp-bl.indiana.edu>

rewrote uses of filter to use the r6rs filter instead.

4. By Abdulaziz Ghuloum <email address hidden>

Added README and COPYING files and added copyright notices to all

3. By Abdulaziz Ghuloum <email address hidden>

Worms Works!

2. By Abdulaziz Ghuloum <email address hidden>

can receive keyboard events now.

1. By Abdulaziz Ghuloum <email address hidden>

First revision: getting started.

This branch contains Public information 
Everyone can see this information.