| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-03-18 | Start Web simulator | Nicolas Paul | |
| Doesn't work still! Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-10 | simulator: Add template files | Nicolas Paul | |
| The new simulator is a simple Web application composed of a single HTML document. A controler script is available in //life2/simulator/site/simulator.js to manage the game displayed on the page. The board will be represented in a <canvas> element, using the Canvas Web API. Close: https://github.com/nc0fr/life2/issues/6 Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-10 | Restart simulator from the ground start | Nicolas Paul | |
| The simulator will now be based upon the open-source packages created for Life2, namely @life2/game (for implementing the game logic behind the scenes), and @life2/format (to share board states with the team). Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-09 | format: Add L2TF implementation | Nicolas Paul | |
| (A spec might come later) The Life2 Text Format (L2TF) is a ASCII-based file format that allows the sharing of a Life2 board easily. The format is designed to be easy to parse by both machines and humans, as it is pretty natural, reprensenting a grid as a set of lines. As said in the beginning, the format is currently only defined in the index.js file, however a specification will be done later (probably during the week), for now, this is enough. Currently, the format is composed of the following: CELL KIND CHARACTER UINT8 REPR EMPTY . 0 TEAM_A a 1 TEAM_B b 2 BARRIER # 3 A grid is supposedly a set of lines composed of the aforementionned characters, for illustration, a Boad like the following: const board = [[3, 3, 3, 3, 3, 3, 3, 3, 3], [3, 0, 1, 0, 0, 0, 0, 2, 3], [3, 0, 1, 0, 1, 2, 2, 2, 3], [3, 0, 0, 1, 1, 2, 1, 1, 3], [3, 0, 0, 0, 2, 2, 2, 0, 3], [3, 3, 3, 3, 3, 3, 3, 3, 3]]; // 9x6 will be represented in the following file: (file: //.../board.l2tf) #########\n #.a....b#\n #.a.abbb#\n #..aabaa#\n #...bbb.#\n #########\n The current implementation, in JavaScript, exposes only three elements: two functions and a string-based C-like enumeration. The API is really simple, only being based on the parse() and stringify() methods. JavaScript experts may recognize a similar pattern as the standard JSON API available. A typical user flow of the system may be: import * as Life2 from '@life2/game'; import * as L2TF from '@life2/format'; const game = new Life2.World(...); // ... init game // Save the current board state in a file to share it with others const curr = game.board.getGrid(); const text = L2TF.stringify(curr); shareFile(new File(text)); Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-08 | Add World library facade | Nicolas Paul | |
| The World class is a Facade pattern which manages the main logic of the Life2 simulation game: iterating over the board given a set of rules. The World class mainly represents a single simulation. Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-08 | Move NPM projets to the @life2 scope | Nicolas Paul | |
| I have reserved the @life2 scope on the NPM registry to allow publishing our packages, which is required for the game to work. Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-05 | Add Life2 Simulation logic | Nicolas Paul | |
| This patch provides the logic behind the Life2 simulator: a classic Game of Life with two teams. Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-04 | Configure ESLint | Nicolas Paul | |
| ESLint is a popular linting framework and static analyzer in the JavaScript Ecosystem. Our configuration follows the Google JavaScript Style Guide, as seen in issues. Closes: https://github.com/nc0fr/life2/issues/4 Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-04 | Merge branch 'master' of github.com:nc0fr/life2 | Nicolas Paul | |
| 2024-03-04 | simulator: Initialisation du projet de simulation (#2) | Nicolas Paul | |
| Le projet de simulation (`//life2/simulator`) est une machine d'exécution conçue pour faire tourner notre version customisable du jeu de la vie en supportant plusieurs équipes. Ce patch existe pour créer le projet et le configurer pour permettre le développement. Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-03-02 | Ajout de Webpack | Nicolas Paul | |
| Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
| 2024-02-22 | simulator: Initialisation du projet | Nicolas Paul | |
| Simulator est une application orientée Web complexe permettant l'exécution et l'étude d'automates cellulaires dans le style du jeu de la vie. Grâce à des fonctionnalités d'étude en temps réel, le système pourra permettre la gestion (ajout, suppression, ...) de règles durant l'exécution, ainsi que la modification des états de cellules (assigner des "équipes", bloquer une cellule sur un état perpetuelle, ...). Signed-off-by: Nicolas Paul <n@nc0.fr> | |||
