Skip to content
Browse files


  • Loading branch information...
1 parent 69e802c commit 60df1f3f0fc13312c16696787745c09d9103e632 @nbeloglazov committed Nov 1, 2012
Showing with 3 additions and 62 deletions.
  1. +0 −62 README
  2. +3 −0 README.markdown
@@ -1,62 +0,0 @@
-# snakejure
-Game snake, created for learning clojure purpose.
-## Usage
-You can start game by executing (linux) or menu.bat (windows).
-Or you can start game by invoking function "show-menu" from menu_gui.clj file,
-this function in namespace.
-To win game you must "lay" on every "noiser" (magenta rectangles) simultaneously. When you win game resets.
-First you should choose level you want to play and press enter.
-To start/pause game press space. You can change direction with arrow keys.
-To return to main menu you can press escape.
-If you win at least 1 level .snakejure file will be created in your home directory for saving your results.
-Actually it's just with simple map in it in form {"level name 1" :win, "level name 2" :win}
-## Installation
-You need to have leiningen to install all. Just run lein deps and neccessary libs will be downloaded.
-## Structure
-core.clj - contains basic functions, "business" functions :).
- They are responsible for changing state of the game.
- It also contains function, which creates apple, wall, noiser from point and
- snake from seq of points (body).
-game_gui.clj - contains functions, which creates and runs concrete level.
-menu_gui.clj - contains functions, which creates frame and displays menu, where user can choose some level.
- It also creates panel by function from game_gui.clj and displays it.
-level_loader.clj - contains functions for loading all levels from levels directory.
-restults.clj - few functions which read/write .snakejure file in home directory.
-levels directory - directory with clj files, which represents levels.
-Each level is a separate clj file with at least 1 public function - "level-description" with no arguments:
-(defn level-description [] ...)
-It must return map with following keys: :name :level-creator
-:name - String - name of the level
-:level-creator - function, which takes no arguments and returns map with following keys:
-:walls - sequence of walls
-:apple - map, representing apple.
-:snake - map, representing snake.
-:noisers - sequence of noisers.
-:apple-generator - function, which takes level and returns new apple.
-:speed - optional, if speed is not set speed will be 100ms.
-For example see basic.clj level.
-## Logging
-I decided to use logging in project. Now it logs all level changes to file log.txt.
-You can change file in menu_gui.clj in *log-file* variable.
-I use clojure.contrib.logging and log4j libraries.
-## TODO
-1. Extract from core.clj all functions, which are responsible for modifying
-mutable data (like update-smth). But I don't know now what name new clj file and namespace should have.
-2. Improve gui part of the game.
-3. Create more levels.
3 README.markdown
@@ -0,0 +1,3 @@
+Multiplayer snake.

0 comments on commit 60df1f3

Please sign in to comment.
Something went wrong with that request. Please try again.