summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Paul <n@nc0.fr>2024-03-18 09:05:23 +0100
committerNicolas Paul <n@nc0.fr>2024-03-18 09:05:23 +0100
commit2ff19a1f8ac10e629effb4e0db42f7320f2a97dd (patch)
tree91848210ed1518648369cfab9c16903df15e27f8
parent5b7be9c3b28701e3f62d56547345c226b5d64390 (diff)
Move existing package documentation a Markdown document
Since NPM only uses README.md (and no normal README file), the existing documentation is now living in the README.md. Signed-off-by: Nicolas Paul <n@nc0.fr>
-rw-r--r--life2/game/CC-4.0396
-rw-r--r--life2/game/INSTALL17
-rw-r--r--life2/game/MANUAL122
-rw-r--r--life2/game/README25
-rw-r--r--life2/game/README.md29
-rw-r--r--life2/game/package.json7
6 files changed, 31 insertions, 565 deletions
diff --git a/life2/game/CC-4.0 b/life2/game/CC-4.0
deleted file mode 100644
index da6ab6c..0000000
--- a/life2/game/CC-4.0
+++ /dev/null
@@ -1,396 +0,0 @@
-Attribution 4.0 International
-
-=======================================================================
-
-Creative Commons Corporation ("Creative Commons") is not a law firm and
-does not provide legal services or legal advice. Distribution of
-Creative Commons public licenses does not create a lawyer-client or
-other relationship. Creative Commons makes its licenses and related
-information available on an "as-is" basis. Creative Commons gives no
-warranties regarding its licenses, any material licensed under their
-terms and conditions, or any related information. Creative Commons
-disclaims all liability for damages resulting from their use to the
-fullest extent possible.
-
-Using Creative Commons Public Licenses
-
-Creative Commons public licenses provide a standard set of terms and
-conditions that creators and other rights holders may use to share
-original works of authorship and other material subject to copyright
-and certain other rights specified in the public license below. The
-following considerations are for informational purposes only, are not
-exhaustive, and do not form part of our licenses.
-
- Considerations for licensors: Our public licenses are
- intended for use by those authorized to give the public
- permission to use material in ways otherwise restricted by
- copyright and certain other rights. Our licenses are
- irrevocable. Licensors should read and understand the terms
- and conditions of the license they choose before applying it.
- Licensors should also secure all rights necessary before
- applying our licenses so that the public can reuse the
- material as expected. Licensors should clearly mark any
- material not subject to the license. This includes other CC-
- licensed material, or material used under an exception or
- limitation to copyright. More considerations for licensors:
- wiki.creativecommons.org/Considerations_for_licensors
-
- Considerations for the public: By using one of our public
- licenses, a licensor grants the public permission to use the
- licensed material under specified terms and conditions. If
- the licensor's permission is not necessary for any reason--for
- example, because of any applicable exception or limitation to
- copyright--then that use is not regulated by the license. Our
- licenses grant only permissions under copyright and certain
- other rights that a licensor has authority to grant. Use of
- the licensed material may still be restricted for other
- reasons, including because others have copyright or other
- rights in the material. A licensor may make special requests,
- such as asking that all changes be marked or described.
- Although not required by our licenses, you are encouraged to
- respect those requests where reasonable. More considerations
- for the public:
- wiki.creativecommons.org/Considerations_for_licensees
-
-=======================================================================
-
-Creative Commons Attribution 4.0 International Public License
-
-By exercising the Licensed Rights (defined below), You accept and agree
-to be bound by the terms and conditions of this Creative Commons
-Attribution 4.0 International Public License ("Public License"). To the
-extent this Public License may be interpreted as a contract, You are
-granted the Licensed Rights in consideration of Your acceptance of
-these terms and conditions, and the Licensor grants You such rights in
-consideration of benefits the Licensor receives from making the
-Licensed Material available under these terms and conditions.
-
-
-Section 1 -- Definitions.
-
- a. Adapted Material means material subject to Copyright and Similar
- Rights that is derived from or based upon the Licensed Material
- and in which the Licensed Material is translated, altered,
- arranged, transformed, or otherwise modified in a manner requiring
- permission under the Copyright and Similar Rights held by the
- Licensor. For purposes of this Public License, where the Licensed
- Material is a musical work, performance, or sound recording,
- Adapted Material is always produced where the Licensed Material is
- synched in timed relation with a moving image.
-
- b. Adapter's License means the license You apply to Your Copyright
- and Similar Rights in Your contributions to Adapted Material in
- accordance with the terms and conditions of this Public License.
-
- c. Copyright and Similar Rights means copyright and/or similar rights
- closely related to copyright including, without limitation,
- performance, broadcast, sound recording, and Sui Generis Database
- Rights, without regard to how the rights are labeled or
- categorized. For purposes of this Public License, the rights
- specified in Section 2(b)(1)-(2) are not Copyright and Similar
- Rights.
-
- d. Effective Technological Measures means those measures that, in the
- absence of proper authority, may not be circumvented under laws
- fulfilling obligations under Article 11 of the WIPO Copyright
- Treaty adopted on December 20, 1996, and/or similar international
- agreements.
-
- e. Exceptions and Limitations means fair use, fair dealing, and/or
- any other exception or limitation to Copyright and Similar Rights
- that applies to Your use of the Licensed Material.
-
- f. Licensed Material means the artistic or literary work, database,
- or other material to which the Licensor applied this Public
- License.
-
- g. Licensed Rights means the rights granted to You subject to the
- terms and conditions of this Public License, which are limited to
- all Copyright and Similar Rights that apply to Your use of the
- Licensed Material and that the Licensor has authority to license.
-
- h. Licensor means the individual(s) or entity(ies) granting rights
- under this Public License.
-
- i. Share means to provide material to the public by any means or
- process that requires permission under the Licensed Rights, such
- as reproduction, public display, public performance, distribution,
- dissemination, communication, or importation, and to make material
- available to the public including in ways that members of the
- public may access the material from a place and at a time
- individually chosen by them.
-
- j. Sui Generis Database Rights means rights other than copyright
- resulting from Directive 96/9/EC of the European Parliament and of
- the Council of 11 March 1996 on the legal protection of databases,
- as amended and/or succeeded, as well as other essentially
- equivalent rights anywhere in the world.
-
- k. You means the individual or entity exercising the Licensed Rights
- under this Public License. Your has a corresponding meaning.
-
-
-Section 2 -- Scope.
-
- a. License grant.
-
- 1. Subject to the terms and conditions of this Public License,
- the Licensor hereby grants You a worldwide, royalty-free,
- non-sublicensable, non-exclusive, irrevocable license to
- exercise the Licensed Rights in the Licensed Material to:
-
- a. reproduce and Share the Licensed Material, in whole or
- in part; and
-
- b. produce, reproduce, and Share Adapted Material.
-
- 2. Exceptions and Limitations. For the avoidance of doubt, where
- Exceptions and Limitations apply to Your use, this Public
- License does not apply, and You do not need to comply with
- its terms and conditions.
-
- 3. Term. The term of this Public License is specified in Section
- 6(a).
-
- 4. Media and formats; technical modifications allowed. The
- Licensor authorizes You to exercise the Licensed Rights in
- all media and formats whether now known or hereafter created,
- and to make technical modifications necessary to do so. The
- Licensor waives and/or agrees not to assert any right or
- authority to forbid You from making technical modifications
- necessary to exercise the Licensed Rights, including
- technical modifications necessary to circumvent Effective
- Technological Measures. For purposes of this Public License,
- simply making modifications authorized by this Section 2(a)
- (4) never produces Adapted Material.
-
- 5. Downstream recipients.
-
- a. Offer from the Licensor -- Licensed Material. Every
- recipient of the Licensed Material automatically
- receives an offer from the Licensor to exercise the
- Licensed Rights under the terms and conditions of this
- Public License.
-
- b. No downstream restrictions. You may not offer or impose
- any additional or different terms or conditions on, or
- apply any Effective Technological Measures to, the
- Licensed Material if doing so restricts exercise of the
- Licensed Rights by any recipient of the Licensed
- Material.
-
- 6. No endorsement. Nothing in this Public License constitutes or
- may be construed as permission to assert or imply that You
- are, or that Your use of the Licensed Material is, connected
- with, or sponsored, endorsed, or granted official status by,
- the Licensor or others designated to receive attribution as
- provided in Section 3(a)(1)(A)(i).
-
- b. Other rights.
-
- 1. Moral rights, such as the right of integrity, are not
- licensed under this Public License, nor are publicity,
- privacy, and/or other similar personality rights; however, to
- the extent possible, the Licensor waives and/or agrees not to
- assert any such rights held by the Licensor to the limited
- extent necessary to allow You to exercise the Licensed
- Rights, but not otherwise.
-
- 2. Patent and trademark rights are not licensed under this
- Public License.
-
- 3. To the extent possible, the Licensor waives any right to
- collect royalties from You for the exercise of the Licensed
- Rights, whether directly or through a collecting society
- under any voluntary or waivable statutory or compulsory
- licensing scheme. In all other cases the Licensor expressly
- reserves any right to collect such royalties.
-
-
-Section 3 -- License Conditions.
-
-Your exercise of the Licensed Rights is expressly made subject to the
-following conditions.
-
- a. Attribution.
-
- 1. If You Share the Licensed Material (including in modified
- form), You must:
-
- a. retain the following if it is supplied by the Licensor
- with the Licensed Material:
-
- i. identification of the creator(s) of the Licensed
- Material and any others designated to receive
- attribution, in any reasonable manner requested by
- the Licensor (including by pseudonym if
- designated);
-
- ii. a copyright notice;
-
- iii. a notice that refers to this Public License;
-
- iv. a notice that refers to the disclaimer of
- warranties;
-
- v. a URI or hyperlink to the Licensed Material to the
- extent reasonably practicable;
-
- b. indicate if You modified the Licensed Material and
- retain an indication of any previous modifications; and
-
- c. indicate the Licensed Material is licensed under this
- Public License, and include the text of, or the URI or
- hyperlink to, this Public License.
-
- 2. You may satisfy the conditions in Section 3(a)(1) in any
- reasonable manner based on the medium, means, and context in
- which You Share the Licensed Material. For example, it may be
- reasonable to satisfy the conditions by providing a URI or
- hyperlink to a resource that includes the required
- information.
-
- 3. If requested by the Licensor, You must remove any of the
- information required by Section 3(a)(1)(A) to the extent
- reasonably practicable.
-
- 4. If You Share Adapted Material You produce, the Adapter's
- License You apply must not prevent recipients of the Adapted
- Material from complying with this Public License.
-
-
-Section 4 -- Sui Generis Database Rights.
-
-Where the Licensed Rights include Sui Generis Database Rights that
-apply to Your use of the Licensed Material:
-
- a. for the avoidance of doubt, Section 2(a)(1) grants You the right
- to extract, reuse, reproduce, and Share all or a substantial
- portion of the contents of the database;
-
- b. if You include all or a substantial portion of the database
- contents in a database in which You have Sui Generis Database
- Rights, then the database in which You have Sui Generis Database
- Rights (but not its individual contents) is Adapted Material; and
-
- c. You must comply with the conditions in Section 3(a) if You Share
- all or a substantial portion of the contents of the database.
-
-For the avoidance of doubt, this Section 4 supplements and does not
-replace Your obligations under this Public License where the Licensed
-Rights include other Copyright and Similar Rights.
-
-
-Section 5 -- Disclaimer of Warranties and Limitation of Liability.
-
- a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
- EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
- AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
- ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
- IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
- WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
- PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
- ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
- KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
- ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
-
- b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
- TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
- NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
- INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
- COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
- USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
- DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
- IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
-
- c. The disclaimer of warranties and limitation of liability provided
- above shall be interpreted in a manner that, to the extent
- possible, most closely approximates an absolute disclaimer and
- waiver of all liability.
-
-
-Section 6 -- Term and Termination.
-
- a. This Public License applies for the term of the Copyright and
- Similar Rights licensed here. However, if You fail to comply with
- this Public License, then Your rights under this Public License
- terminate automatically.
-
- b. Where Your right to use the Licensed Material has terminated under
- Section 6(a), it reinstates:
-
- 1. automatically as of the date the violation is cured, provided
- it is cured within 30 days of Your discovery of the
- violation; or
-
- 2. upon express reinstatement by the Licensor.
-
- For the avoidance of doubt, this Section 6(b) does not affect any
- right the Licensor may have to seek remedies for Your violations
- of this Public License.
-
- c. For the avoidance of doubt, the Licensor may also offer the
- Licensed Material under separate terms or conditions or stop
- distributing the Licensed Material at any time; however, doing so
- will not terminate this Public License.
-
- d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
- License.
-
-
-Section 7 -- Other Terms and Conditions.
-
- a. The Licensor shall not be bound by any additional or different
- terms or conditions communicated by You unless expressly agreed.
-
- b. Any arrangements, understandings, or agreements regarding the
- Licensed Material not stated herein are separate from and
- independent of the terms and conditions of this Public License.
-
-
-Section 8 -- Interpretation.
-
- a. For the avoidance of doubt, this Public License does not, and
- shall not be interpreted to, reduce, limit, restrict, or impose
- conditions on any use of the Licensed Material that could lawfully
- be made without permission under this Public License.
-
- b. To the extent possible, if any provision of this Public License is
- deemed unenforceable, it shall be automatically reformed to the
- minimum extent necessary to make it enforceable. If the provision
- cannot be reformed, it shall be severed from this Public License
- without affecting the enforceability of the remaining terms and
- conditions.
-
- c. No term or condition of this Public License will be waived and no
- failure to comply consented to unless expressly agreed to by the
- Licensor.
-
- d. Nothing in this Public License constitutes or may be interpreted
- as a limitation upon, or waiver of, any privileges and immunities
- that apply to the Licensor or You, including from the legal
- processes of any jurisdiction or authority.
-
-
-=======================================================================
-
-Creative Commons is not a party to its public
-licenses. Notwithstanding, Creative Commons may elect to apply one of
-its public licenses to material it publishes and in those instances
-will be considered the “Licensor.” The text of the Creative Commons
-public licenses is dedicated to the public domain under the CC0 Public
-Domain Dedication. Except for the limited purpose of indicating that
-material is shared under a Creative Commons public license or as
-otherwise permitted by the Creative Commons policies published at
-creativecommons.org/policies, Creative Commons does not authorize the
-use of the trademark "Creative Commons" or any other trademark or logo
-of Creative Commons without its prior written consent including,
-without limitation, in connection with any unauthorized modifications
-to any of its public licenses or any other arrangements,
-understandings, or agreements concerning use of licensed material. For
-the avoidance of doubt, this paragraph does not form part of the
-public licenses.
-
-Creative Commons may be contacted at creativecommons.org.
-
diff --git a/life2/game/INSTALL b/life2/game/INSTALL
deleted file mode 100644
index 63f6957..0000000
--- a/life2/game/INSTALL
+++ /dev/null
@@ -1,17 +0,0 @@
-
- INSTALLATION OF @life2/game
-
-
- NPM
-
-@life2/game is a JavaScript package distributed via NPM (https://npmjs.com).
-You can found the online page of the package at
-https://npmjs.com/package/@life2/game.
-
-Installation can be done in any Node.js projects or with NPM-compatible tools:
-
- # NPM
- npm install @life2/game
-
- # Yarn
- yarn add @life2/game
diff --git a/life2/game/MANUAL b/life2/game/MANUAL
deleted file mode 100644
index 29c4fae..0000000
--- a/life2/game/MANUAL
+++ /dev/null
@@ -1,122 +0,0 @@
-
- MANUAL DOCUMENTATION FOR
- @life2/game
-
-
-This document provides usage notices and extensive documentations about the API
-exposed by the @life2/game JavaScript package. Please also consider looking
-at the source files in the same directory to learn more.
-
-
- Copyright Notice
-
-This manual is written by Nicolas Paul. The author decided to publish and
-distribute this document under the terms of the Creative Commons Attribution
-4.0 International license agreement (CC 4.0). You can find a copy of the
-agreement in the CC-4.0 file.
-
-
- Introduction
-
-@life2/game is a JavaScript implementation of the Life2 simulation game, which
-is expected to be used in Web browsers, such as the Life2 Web Simulation Tool.
-
-Life2 is a cellular automaton similar to Conway's Game of Life, with the
-particularity that the cells can be members of societies (Life2 allows only
-two societies, hence the "2" in the name).
-Games of Life2 happen in a two-dimensional space. This package provides a
-third type of cells entitled BARRIERs which are immutable. They can be used
-to create shaped-boards, such as circles.
-
- #################
- ####...###...#### HEARTH SHAPED GAME BOARD
- ##......#......##
- #...............# Board size: 17x7
- ##.............## "#" are BARRIER cells, "." are EMPTY cells.
- ####.........####
- ######.....######
- ########.########
- #################
-
-The main goals of Life2 is to study the maths behind the interaction between
-cells from the same team, as well as the behavior of societies between each
-others in specific configurations.
-
-
- Installation
-
-Since @life2/game is a NPM package, it can be installed using any NPM-compatible
-toolchain:
-
- npm install -E @life2/game
-
-See more detailed information in the INSTALL file.
-
-
- World, the Entry Point of All Life2 Games
-
-The entry point for every Life2 simulations start with the World class. This
-class consists of a facade between your code and the internal game state.
-Indeed, to start a simulation, users are expected to instantiate a new World
-object with a board and, optionally, a list of rules.
-
-The board, an instance of Board, describes the game board that will be used
-within the simulation. Boards are pretty flexible, as they can describe any
-shapes (as seen earlier). Rules are mathematical functions that are used by
-the World to determine the next state of a cell.
-
-Given b any board, and r a list of rules, we can create a new game using:
-
- import {World} from 'life2';
-
- const game = new World(b, r);
-
-Do note that the second parameter (the list of rules), is optional. Rules may
-be added later via the World.rules interface.
-
-The class World exposes a limited API, reducing the chances of corrupting the
-simulation state:
-
- * World.board: access to the Board class defining the board used by the
- simulation.
-
- * World.rules: a RulesManager facade that is responsible for managing rules,
- such as registering or removing rules on-the-fly.
-
- * World.nextState(): simulates a movement forward in time, calculating the
- new state of the board and applying it to the simulation. The new state
- is determined by applying, for each non BARRIER cells, all the registered
- rules, obtaining an array of cell states. Then, the array list is reduced
- to only return the most occurring element, which will be the new state for
- this cell. We save this new cell in a copy of the board, the copy will be
- assigned to World.board once all cells have been computed.
-
-
- RulesManager, an Utility Facade
-
-The class RulesManager serves as another facade to manage the registration of
-rules within a World. The registration of rules is important as it can be done
-"on-the-fly" (between two World.nextState() calls), which can allow the
-development of interface debugging interfaces for Life2 simulations.
-
-You are not expected to instantiate RulesManager classes by yourself, but
-simply use the public methods it exposes. Each World instance has its own
-RulesManager, available via World.rules.
-
-The public API for a RulesManager is:
-
- * getAll(): returns the list of all registered rules in the manager.
-
- * add(rule): registers a rule into the manager, or throws an error if it is
- already registered. Registered rules are used by the World to calculate
- the states of cells.
-
- * remove(rule): removes a rule from the manager.
-
- * has(rule): checks whether or not the passed rule is already registered.
-
-
- Rule, the Way to Manipulate Societies
-
-TODO
-
diff --git a/life2/game/README b/life2/game/README
deleted file mode 100644
index 76fed2d..0000000
--- a/life2/game/README
+++ /dev/null
@@ -1,25 +0,0 @@
-
- @life2/game
-
-
- Introduction
-
-@life2/game is a JavaScript implementation of the Life2 simulation game.
-It is supposed to work on any modern ECMAScript 5+ runtimes, including
-V8-based machines (Node.js, Google Chrome, ...), and other engines.
-
-The Life2 simulation game is a cellular automaton software where two societies
-are created and populated by cells. The game is based on the same ideas
-behind Conway's Game of Life, except it is flexible enough to allow external
-rules, and it separates cells in two teams (so called "groups" or "societies").
-
-The principal objectives behind Life2 is to analyze the behavior of societies
-given the rules we defined for them. For example, how does members of
-different societies interact with each other?
-
-To install and use this software, please read:
-
- 1. The INSTALL file for installation instructions.
- 2. The MANUAL file for usage instructions, including documentation of
- the API.
- 3. The LICENSE file for licensing information.
diff --git a/life2/game/README.md b/life2/game/README.md
new file mode 100644
index 0000000..8de8355
--- /dev/null
+++ b/life2/game/README.md
@@ -0,0 +1,29 @@
+# `@life2/game`
+
+[`@life2/game`][pkg-npm] is a JavaScript implementation of the Life2
+simulation game. It is supposed to work on any modern ECMAScript 5+ runtimes,
+including V8-based machines (Node.js, Google Chrome, ...), and other engines.
+
+The Life2 simulation game is a cellular automaton software where two societies
+are created and populated by cells. The game is based on the same ideas
+behind [Conway's Game of Life][gol], except it is flexible enough to allow
+external rules, and it separates cells in two teams (so called "groups" or
+"societies").
+
+The principal objectives behind Life2 is to analyze the behavior of societies
+given the rules we defined for them. For example, how does members of
+different societies interact with each other?
+
+[pkg-npm]: https://npmjs.com/package/@life2/game
+[gol]: https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
+
+## Installation
+
+The `@life2/game` package is distributed via [NPM][npm]. It can be installed
+using:
+
+```shell
+npm install @life2/game
+```
+
+[npm]: https://npmjs.com
diff --git a/life2/game/package.json b/life2/game/package.json
index e80f414..5206e53 100644
--- a/life2/game/package.json
+++ b/life2/game/package.json
@@ -1,6 +1,6 @@
{
"name": "@life2/game",
- "version": "1.0.0",
+ "version": "1.1.0",
"description": "Node.js implementation of the Life2 game.",
"keywords": [
"cellular",
@@ -29,11 +29,8 @@
"directory": "life2/game"
},
"files": [
- "CC-4.0",
- "INSTALL",
"LICENSE",
- "MANUAL",
- "README",
+ "README.md",
"board.js",
"cell.js",
"index.js",