📄 readme
字号:
An example of how this can be done is provided by the Eiffel version,which can be found in the directory 'eiffel'. A Pascal version iscurrently being developed. (The version provided in the directory'pascal' is suffering from some pipe communication problems. However,it should be very easy to derive a Borland Pascal version from thesesource files, so I chose to include them.) A problem that may occurwhen porting is the following: usually output written to stdout isbuffered and thus may not reach the server program. It is thereforeadvisable to flush the output buffer after writing ('fflush' in C).------------------------------------------------------------------------Files:file/directory descriptionmakefile UNIX makefile to build the X11 (xhamster) and the command line version (chamster) of the hamster program and the example client programs (hamster, ehamster)xh shellscript to start the xhamster program from the top directory (i.e. the directory in which the files `makefile', `xh' etc reside)eval.sh shellscript for an automatic evaluation of several hamster clients on several mazes; produces a table 'results.txt' with the resultschamster.dsp Microsoft C 5.0 project to build the example client program (chamster.exe); to be used with whamster.dswwhamster.dsp Microsoft C 5.0 project to build the hamster program (whamster.exe); to be used with whamster.dswwhamster.dsw Microsoft C 5.0 workspace to build the MS windows version of the hamster program (whamster.exe) and the example client program (hamster.exe); to be opened in the MS C 5.0 development environmentwhamster.mak Microsoft C 4.0 makefile to build the MS Windows version of the hamster program (whamster.exe) and the example client program (hamster.exe)whamster.mdp Microsoft C 4.0 project file (workspace definition); to be opened in the MS C 4.0 development environmentbin/ directory into which the object files and the executable programs are written (may be missing)doc/ directory containing the hamster documentation in plain ASCII and/or LaTeX format readme this file copying a copy of the GNU General Public License as published by the Free Software Foundation contest.tex a description of the contest and an explanation how to program your own hamster control function slides.tex some slides I used when I announced the hamster slides_c.tex programming contest in the lecture 'Algorithmen slides_e.tex und Datenstrukturen' at the University of Magdeburg chamster.tex example hamster control function in C as a TeX-file ehamster.tex ditto, for Eiffel phamster.tex ditto, for Pascaleiffel/ directory containing the example Eiffel client hamster.e hamster management implementation file; contains the methods by which a hamster can be controlled; corresponds to the file client.c of the C version client.e basic hamster control class; creates a hamster and calls the hamster control function; corresponds to the main function in the file client.c. control.e example of a customized hamster control class; implements a hamster that collects corn running around randomly in the maze for fifty (field to field) moves by redefining the control method of the base class control (file control.e, see above); corresponds to the file control.c of the C versionhamster/ directory containing all hamster files that are independent of the underlying operating system maze.h maze management header file; declares constants, data types, and functions to create, initialize, and modify a two-dimensional maze of arbitrary size maze.c maze management implementation file; contains the functions declared in the header file `maze.h' client.c hamster management implementation file; contains the functions declared in the header file `hamster.h' (see below) for the client process (the client process executes the (user programmed) hamster control function, see file `hamster.c' below) control.c example hamster control function; implements a hamster that collects corn running around randomly in the maze for fifty (field to field) moves server.h hamster management header file, additional server definitions; extends the header file `hamster.h' (see below) by declarations of special functions needed in the server process server.c hamster management implementation file; contains the functions declared in the header files `hamster.h' and `server.h' for the server process (the server process displays the maze, executes the commands received from the client process, and moves the hamster accordingly) hamster.h hamster management header file; declares constants, data types, and functions to control a hamsterpascal/ directory containing the example Pascal client hamster.p hamster management implementation file; contains the methods by which a hamster can be controlled; corresponds to the file client.c of the C version client.p main hamster control program; creates a hamster and calls the hamster control function; corresponds to the main function in the file client.c. control.p example of a customized hamster control function; implements a hamster that collects corn running around randomly in the maze for fifty (field to field) moves by redefining the control method of the base class control (file control.e, see above); corresponds to the file control.c of the C versionunix/ directory containing UNIX and X11 specific files hamster.c main hamster/maze program (server process, command line version) menu.h menu definition header file; declares constants and functions to create an Athena widgets menu menu.c menu definition implementation file; contains the functions declared in the header file `menu.h' fselect.h file select dialog header file; declares constants and functions to create a file select dialog box fselect.c file select dialog implementation file; contains the functions declared in the header file `fselect.h' sprite.h sprite management header file; declares constants, data types, and functions to create and control a sprite, i.e. a small movable (single color) image sprite.c sprite management implementation file; contains the functions declared in the header file `sprite.h' xhamster.c main hamster/maze program (server process) xhamster.rsc fallback resources for the main hamster program; contains menu and dialog box definitions english.ad english application default resources; contains menu and dialog box definitions for use with the X11 program `xrdb' (X11 resource database) german.ad german application default resources; contains menu and dialog box definitions for use with the X11 program `xrdb' (X11 resource database) hamster.xbm bitmap of the hamster graphics excl.xbm bitmap of the exclamation mark used in alert boxes (standard X11 bitmap, included for savety) logo.xbm bitmap of Otto von Guericke (university logo)windows/ directory containing MS Windows specific files sprite.h sprite management header file; declares constants, data types, and functions to create and control a sprite, i.e. a small movable image sprite.c sprite management implementation file; contains the unctions declared in the header file `sprite.h' whamster.c main hamster/maze program (server process) whamster.rh hamster resources header file; declares constants for menu and dialog box items whamster.rc hamster resources description file; contains menu and dialog box definitions whamster.def compiler definitions/specifications needed to compile the main hamster/maze program hamster.bmp bitmap of the hamster graphics mask.bmp bitmap of the hamster masks logo.bmp bitmap of Otto von Guericke (university logo)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -