A downloadable game for Windows, macOS, and Linux
Unravel the map and make moves with a sense of complete clarity of what is happening! (written in its own Lisp dialect called Liscript)
This is the game "Labyrinth", written in its own dialect of the Lisp called Liscript. After all, the rules of jam say that you can write in any dialects, right? ;)
To run the game, you must first run the interpreter - by double-clicking on the file Liscript.jar in the root folder of the archive (next to this readme file). The interpreter window opens, which imho is interesting and by itself, when opened, the standard language library (standard_library.liscript file) automatically loads into it. To start the game, click the leftmost button in the load file and select the Labyrinth.liscript file in the Demo folder.
Rules of the game.
Before starting the game, select the field parameters and your starting position and click the New game button. The program will generate a field (if the start data is correct) and the progress buttons will be available. During the game, the player moves through an unknown field, by moving up / down / left / right. After each turn the program informs the player of the result of his turn - if he hits the pit The player moves to the corresponding dual cell of this pit, when it hits the river - to the end of the river, with an empty field - to this cage, while moving into the wall - remains in place. The pits are reported with indication of their numbers, the river - without indication. The rivers flow strictly through neighboring cells (not diagonally). Only one object can be in one cell of the field. It is guaranteed that any field generated by the program is passable - that is, from any cell it is possible to get into any other (except, perhaps, not the final cells of the rivers). With certain field parameters, the program may not generate a passable field from the first time (for a limited number of attempts), in which case "oops! Try again" is issued. You can restart the field generation or select other parameters.
Formally, there is no mission (such as to find a treasure and go out or other children's nonsense :)). Much more interesting to unravel the map. Do not rush to make moves, consider the result of each. Until the card is unraveled, you will experience the feelings of a kitten blind before the blows of fate :) Any move will lead to getting into a pit or river, and you will be blown away where to. Write on the piece of paper some clarified pieces of the map and try to put them together. But any of your mistakes (the computer is not mistaken :)) along this path can cost you all the efforts spent - you will have disparate pieces and you will not know which of them you can believe :) But when the card is solved, it turns into a pleasure to walk on it! You can set the goal to go to any cell (I remind you that the field is completely passable!), And do it in fewer moves. It reminds me of life in some way, does it not? ;)
Try to start with simple fields - size 3 * 3, one river length 3 and one or two holes. We play in this field in the mind with my 9-year-old older son during the walks :) Gradually go to more complex fields - for example, 5 * 5 with 2 rivers 5 and 3-4 in length. Etc.
At any time, you can click the Chart button to show the field and your moves on it. And since any field generated by the program is completely passable, you can
set by other missions - for example, generate a field 8 * 8 with 4 rivers length 13 and 5 holes (if it does not generate the first time, do not hesitate to repeat the generation) or 8 * 8 without rivers and with 32 holes :), open the map by the Chart button and seeing it, try to hit any given cells in the least number of moves. Imho is also fascinating. Or you can come up with other tasks and missions that your imagination will allow.
PS: all source codes are distributed on free-use terms.
References to the interpreter and related resources:
https://github.com/Ivana-/Liscript-GUI-Java-Swing - project github page
https://github.com/Ivana-/Liscript-GUI-Java-Swing/wiki/Liscript-short-overview - github wiki (in russian)
http://liscript.herokuapp.com/ - home project page
http://liscript.herokuapp.com/repl - online REPL (!) - Heroku stops application if 30 minutes no one refresh any its page (and bots will sleeps :))
http://liscript.herokuapp.com/bots-about - links to REPL-bots in some messengers
http://liscript.herokuapp.com/contacts - contacts