Hangman - Nib-Less Cocoa Application in Common Lisp Example
===========================================================


This is an implementation of the hangman game for MacOSX / Cocoa,
written in Common Lisp with ccl.


This demonstrates a simple Cocoa application written with ccl, without
using xib/nib files, but constructing the user interface entirely
programmatically (cf files nsapi.lisp and hangman-controller.lisp).


Development
-----------

The program can be loaded with quicklisp in arunning ccl image for
development and debugging.  Note

    (push #P"~/src/hangman/src/" asdf:*central-registry*)
    (ql:quickload :com.informatimago.hangman)
    (in-package :com.informatimago.hangman.cocoa)
    (objcl:set-objective-cl-syntax)
    (progn
      (setf *controller* [[HangmanController alloc] init])
      [*controller* createUI]
      (initialize-game *controller*))

after modifications, one can reset it with:

   (progn
     [*controller* dropUI]
     [*controller* createUI]
     (initialize-game *controller*))


To run the text UI version in the REPL:

   (push :debugging *features*)
   (ql:quickload :com.informatimago.hangman.tui)
   (com.informatimago.hangman.cocoa::play)


Production
----------

To generate the application package, with the Makefile:

    make

This generates an application package on the desktop named
Hangman.app, using the generate-application.lisp script.


To generate the CLI program, with the Makefile:


    make cli

this installs the executable in /usr/local/bin/hangman and the
resources in /usr/local/games/hangman/.

Note: the cli version should be compilable with any CL implementation;
update the generate-cli.lisp script with the save lisp image function
specific to your implementation.

License
-------

This program is distributed under the GNU AFFERO GENERAL PUBLIC
LICENSE, Version 3.  Cf. file COPYING.
ViewGit