Commit 3685cc78 authored by sunye's avatar sunye
Browse files

Initial commit

parents
= Projet Risk
Projet exemple, solution partielle.
== Resources additionnelles
- https://www.regledujeu.fr/risk-regle-du-jeu/[Risk: Règle du jeu]
\ No newline at end of file
name: risk
version: '1.0'
prerelease: '.0.1'
title: Projet Risk
asciidoc:
attributes:
source-language: asciidoc@
xrefstyle: short@
listing-caption: Example@
example-caption: false
version-node-major: '14'
version-node: '14.17.1'
version-npm: '6.14.18'
url-node-releases: https://nodejs.org/en/about/releases/
url-chat: https://antora.zulipchat.com
url-repo: https://gitlab.com/antora/antora
url-asciidoc: https://docs.asciidoctor.org/asciidoc/latest
nav:
- modules/analyse/nav.adoc
.Get Antora
* xref:install-antora.adoc[]
= Install Antora
To generate and publish documentation sites with Antora, you need the Antora command line interface (CLI) and an Antora site generator pipeline.
Assumptions:
* [x] You've installed an active Node LTS release on your xref:linux-requirements.adoc#node[Linux], xref:windows-requirements.adoc#node[Windows], or xref:macos-requirements.adoc#node[macOS] machine.
On this page, you'll learn:
* [x] How to install Antora globally. (recommended)
* [x] How to install the Antora CLI and site generator packages in a project directory.
We recommend installing Antora globally, especially if you're managing several documentation sites.
When we say "`globally`" here, it does not imply system-wide.
It means the location where Node is installed.
If you used nvm to install Node, this location will be inside your home directory (thus not requiring elevated permissions).
However, you can also install Antora in a project directory if you prefer.
== Install Antora globally using npm
To install the Antora CLI and site generator packages globally, open a terminal and run:
[subs=attributes+]
$ npm i -g @antora/cli@{page-component-display-version} @antora/site-generator-default@{page-component-display-version}
IMPORTANT: The `@` at the beginning of the package name is important.
It tells `npm` that the `cli` package is located in the `antora` group.
If you omit this character, `npm` will assume the package name is the name of a git repository on GitHub.
The second `@` offsets the requested version number.
Except for prerelease versions, only the major and minor segments are specified to ensure you receive the latest patch update.
Verify the `antora` command is available on your PATH by running:
$ antora -v
If installation was successful, the command should report the version of Antora (where `.x` is a placeholder for the latest patch version).
[subs=attributes+]
$ antora -v
@antora/cli: {page-component-version}.x
@antora/site-generator-default: {page-component-version}.x
CAUTION: If you're using a system-wide Node installation managed by your operating system's package manager, you may run into permission problems when installing packages globally.
In that case, you'll need to <<install-dir,install Antora directly in your project repository>>.
== Install Antora globally using Yarn
If you prefer Yarn over npm, use this command to install the Antora CLI package:
[subs=attributes+]
$ yarn global add @antora/cli@{page-component-display-version}
Next, install the default site generator.
[subs=attributes+]
$ yarn global add @antora/site-generator-default@{page-component-display-version}
[#install-dir]
== Install Antora in a project directory
You can opt to install Antora in a project directory, such as the directory where the playbook file(s) for your site are stored.
When possible, we recommend installing the Antora CLI globally so that the `antora` command is available on your PATH.
You can then install the site generator packages in a project directory.
To install *only* the CLI globally, run:
[subs=attributes+]
$ npm i -g @antora/cli@{page-component-display-version}
Or, to install the CLI in a project directory, change into your project directory, and run:
[subs=attributes+]
$ npm i @antora/cli@{page-component-display-version}
Dropping the `-g` flag installs the package under the [.path]_node_modules_ folder in the current directory.
Verify the `antora` command is available on your PATH by running `antora -v`.
If you installed the package without the `-g` flag, you'll need to prefix the command with `$(npm bin)/`.
.If installed globally
$ antora -v
.If installed in a project directory
$ $(npm bin)/antora -v
The command should report the Antora CLI version in the terminal (where `.x` is a placeholder for the latest patch version).
[subs=attributes+]
@antora/cli: {page-component-version}.x
@antora/site-generator-default: not installed
If you installed the CLI globally, change into the project directory before installing the site generator.
Next, run the following command to install the site generator package:
[subs=attributes+]
$ npm i @antora/site-generator-default@{page-component-display-version}
Now when you run `antora -v`, you should see the version of both the Antora CLI and the default site generator printed in the terminal (where `.x` is a placeholder for the latest patch version).
[subs=attributes+]
@antora/cli: {page-component-version}.x
@antora/site-generator-default: {page-component-version}.x
That confirms you have both top-level components of Antora installed.
TIP: If you're reinstalling Antora, it's best to first remove the [.path]_node_modules_ folder.
If you also want to get the latest version of each dependency, remove the [.path]_package-lock.json_ file as well.
If you do remove the [.path]_node_modules_ folder, be sure to install the CLI package again (unless you've installed it globally).
The `@antora/site-generator-default` and its dependent packages will be installed into the [.path]_node_modules_ folder inside your project.
The `antora` command will look for these packages there first before looking in the global installation folder.
== Learn more
Now that Antora is installed, you're ready to:
* Set up your own xref:playbook:index.adoc[playbook] or use the Demo playbook.
* Organize your xref:ROOT:organize-content-files.adoc[content source files and repositories] or use Antora's Demo content repositories.
* xref:ROOT:run-antora.adoc[Run Antora] and generate a documentation site.
== Cas d'utilisation
=== #1 : Mise en place du jeu
*pré-condition*
* Communication établie entre l'arbitre et chaque joueur.
* Un mode de jeu à été déterminé.
*postcondition*
* Les joueurs ont le même nombre d'armées.
* Les joueurs ont un écart maximal de 1 entre leurs nombres de territoires
* Aucune mission n'est accomplie.
*Scénario*
. #1.1 <<AttributionMissions>>
. L'arbitre distribue le même nombre d'armées à chaque joueurs selon le nombre total de joueurs : 2 joueurs->40 armées, 3 joueurs->35 armées, 4->30, 5->25, 6-> 20
. S'il y a 2 joueurs : <<MiseADeuxJoueurs>>, puis ignorer les étapes suivantes
. L'arbitre attribue une couleur différente à chaque joueur.
. L'arbitre lance 1d6/joueur.
Le joueur dont le lancé est le plus élevé est l'initiateur.
. Si le mode jeu est "secret mission risk" alors l'arbitre ditribue aléatoirement les territoires aux joueurs.
On ignore les 3 étapes d'attribution des territoires qui suivent.
. L'initiateur place une de ses armées sur un territoire non occupé qu'il proclame (le territoire lui est attribué).
. L'arbitre désigne le joueur à gauche du précédent qui doit faire de même.
. On recommence l'étape précédente jusqu'à-ce que tous les 42 territoires soient occupés.
. L'initiateur place une armée sur un de ses territoires.
. Le joueur désigné comme suivant fait de même
. On recommence l'étape précédente jusqu'à-ce que toutes les armées des joueurs soient placées.
. L'arbitre mélange les cartes territoires et joker ensemble et en forme une pile cachée.
. L'initiateur joue le 1er tour de jeu.
[#AttributionMissions]
==== #1.1 Attribution des missions
. Selon le mode de jeu, l'arbitre attribue à chaque joueur une mission :
.. Partie à 2 joueurs : défaire l'adversaire, le 3e joueur neutre ne compte pas.
.. world domination risk : tout les joueurs on pour mission de posséder tout les territoires du monde.
.. capital risk : capturer toutes les capitales
.. (4 joueurs) 2 capital risk : capturer 2 capitales en plus de la sienne.
.. (5 ou 6 joueurs) 3 capital risk : capturer 3 capitales en plus de la sienne.
.. (3 à 6 joueurs) secret mission risk : être le premier à accomplir la mission secrète indiquée sur la carte donnée au hasard par l'arbitre.
[#MiseADeuxJoueurs]
==== #1.2 Mise en place à deux joueurs
. L'arbitre crée un troisième joueur (le joueur neutre)
. L'arbitre attribue une couleur différente à chaque joueur.
. L'arbitre répartit aux hasard les territoires entre les 3 joueurs (14 territoires par joueur).
. L'arbitre place une armée sur chaque territoire.
. L'arbitre choisit au hasard qui des 2 joueurs non neutres est l'initiateur.
. En commençant par l'initiateur, les joueurs vont tour à tour placer : 2 armées sur leurs territoires et 1 armée sur un territoire neutre ; jusqu'à ce que toutes les armées soient placées.
. Les cartes territoire et joker l'arbitre mélange en une pile cachée.
. L'initiateur joue le 1er tour de jeu.
== Use Case Initialisation
Use Case Template. Copyright (c) 2004-2005 TechnoSolutions Corporation
*Use Case:* Initialisation
*Id*: UC- 2
*Description* Initialisation et mise en place d'une partie de RISK
*Level:* User Goal
*Primary Actor* Jeu
*Supporting Actors* Joueurs
*Stakeholders and Interests* Pioche Défausse Carte Territoire Continent
*Pre-Conditions*
Au moins 3 joueurs sont présents.
*Post Conditions*
[.underline]#Success end condition#
Le jeu a été correctement mis en place selon les règles de RISK. Chaque territoire est en possession d'un joueur. Chaque territoire supporte une ou plusieurs armées du joueur possédant ce territoire. La pioche est remplie avec toutes les cartes du jeu dans un ordre aléatoire.
[.underline]#Failure end condition#:
Un des joueurs ne place pas une de ses armées lorsque c'est à son tour de le faire. Il bloque l'initialisation.
[.underline]#Minimal Guarantee#
La partie ne peut pas continuer tant que le jeu n'a pas été correctement initialisé.
*Trigger*
Les joueurs sont prêts à jouer.
=== Main Success Scenario
[arabic]
. On distribue à chaque joueur des unités d'armé selon le nombre de joueurs total. 35 unités pour 3 joueurs, 30 pour 4, 25 pour 5 et 20 pour 6.
. L'ordre de jeu des joueurs à l'initialisation et lors des tours qui suivront est déterminé aléatoirement avec un lancé de dé 6. Chaque joueur lance le dé et le joueur ayant le plus grand chiffre commence. Les joueurs jouent ensuite dans le sens des aiguille d'une montre après le premier joueur *Extension 1*.
. Les joueurs posent tour à tour une de leur unité d'armé sur les territoires non occupés par un autre joueur, avec obligation de placer sur un territorie innocupé si possible. *Extension 2*.
. Répéter 3. tant qu'il reste des armées aux joueurs.
. On mélange toutes les cartes du jeu et les met dans la pioche.
=== Extensions
{empty}1. Si il y a une égalité entre les premiers, ces joueurs rejouent jusqu'à ce qu'il y ai un gagnant.
{empty}2. Si le territoire était innocupé par une armée, le joueur qui y pose l'armée se l'approprie.
*Frequency:* Une seule fois
== Use Case Template
=== Revision History +
[cols=",,",options="header",]
|===
|Date |Author |Description of change
|30/12/2019 | Kowalski, Lebouis, | Report en asciidoc des cas d'utilisation fait sur papier
|===
*Use Case:* Connection joueur
*Id*: UC-1
*Description*
Un joueur se connecte au site, il entre son pseudo et indique qu'il est près à jouer.
*Level:* High Level Summary
*Primary Actor*
Joueur courant
*Supporting Actors*
Serveur
*Stakeholders and Interests*
Autres joueurs
*Pre-Conditions*
Il y a moins de 6 joueurs déjà connecté au site +
Pour jouer il faut avoir entré un pseudo
*Post Conditions*
[.underline]#Success end condition#
Le serveur a reçu le message de
[.underline]#Failure end condition#:
Il y a déjà trop de joueurs connectés +
La partie a déjà commencé
[.underline]#Minimal Guarantee#
Seul un joueur ayant validé peu accéder au jeu
*Trigger*
Connection du joueur
=== Main Success Scenario
[arabic]
. Connection du joueur
. Le joueur entre un pseudo
. Le joueur indique qu'il est près à joueur
=== Extensions
3a. Dans l'étape 3, s'il y a déjà 6 joueurs de connectés ou si la partie est déjà en cour
{empty}1. On refuse sa demande
=== Variations
2’. Etape 2, le pseudo de l'utilisateur peut varier
*Frequency:* 2 à 6 par partie
*Assumptions*
---
*Use Case:* Initialisation plateau
*Id*: UC-2
*Description*
Lorsque tous les joueurs sont près, on initialise le plateau
*Level:* High Level Summary
*Primary Actor*
Serveur
*Supporting Actors*
*Stakeholders and Interests*
Joueurs
*Pre-Conditions*
Entre 2 et 6 joueur ont entré un pseudo et validé
*Post Conditions*
[.underline]#Success end condition#
Le plateau est initialisé, les joueurs ont reçu le plateau ainsi que leurs pays et leur mission
[.underline]#Failure end condition#:
[.underline]#Minimal Guarantee#
*Trigger*
Validation de tous les joueurs connectés
=== Main Success Scenario
[arabic]
. Création du plateau
. Création des missions
. Attribution d'une mission à chaque joueur
. Création des cartes territoire
. Attributions des pays de départ à chaque joueur
. Ajout des cartes joker à la pioche
. Attribution des régiments de départ à chaque joueur
=== Extensions
=== Variations
3’. l'attribution des mission se fait de manière aléatoire
5’. l'attribution des territoire se fait de manière aléatoire
*Frequency:* 1 par partie
*Assumptions*
---
*Use Case:* Placement Initial
*Id*: UC-3
*Description*
Chaque joueur pose ses regiments sur ses pays avant le début de la partie
*Level:* High Level Summary
*Primary Actor*
Joueurs
*Supporting Actors*
Serveur
*Stakeholders and Interests*
*Pre-Conditions*
Le joueur a reçu la demande de placer ses régiments ainsi que les régiments à placer
*Post Conditions*
[.underline]#Success end condition#
Tous les joueurs ont placé tous leurs régiments
[.underline]#Failure end condition#:
Un joueur a voulu placer plus de régiments qu'il ne le pouvait, ou bien sur un territoire qu'il ne possédait pas.
[.underline]#Minimal Guarantee#
*Trigger*
Envoie d'une demande de placement initial
=== Main Success Scenario
[arabic]
. Choisir un pays
. Choisir un nombre d'unités à placer
. Envoyer le placement
=== Extensions
1a. A l'étape 1, si le pays n'appartient pas au joueur
{empty}1. On reste à l'étape 1
2a. A l'étape 2, si le joueur n'a pas assez de regiments
{empty}1. On reste à l'étape 2
3a. Après l'étape 3, s'il ne reste plus de régiments au joueur
{empty}1. On indique au serveur que l'on a terminé
3b. Sinon
{empty}1. retour à l'étape 1
=== Variations
1’. Le pays choisit peu changer
5’. Le nombre d'unités à placer peu changer
*Frequency:* 1 par partie
*Assumptions*
---
*Use Case:* Combo
*Id*: UC-4
*Description*
Le joueur entrain de jouer fait un combo
*Level:* Summary
*Primary Actor*
Joueur courant
*Supporting Actors*
Serveur
*Stakeholders and Interests*
*Pre-Conditions*
Le joueur a reçu la demande de faire un combo, et s'il le peu il envoie des cartes au serveur, trois par trois, pour fair des combos
*Post Conditions*
[.underline]#Success end condition#
Le joueur recevra des unités en plus correspondant au combo qu'il a fait
[.underline]#Failure end condition#:
Les cartes proposé ne permet aucun combo possible
Si le joueur a 5 cartes ou plus il est obligé de faire un combo jusqu'à redescendre en dessous de ce nombre
[.underline]#Minimal Guarantee#
*Trigger*
Envoie d'une demande de combo
=== Main Success Scenario
[arabic]
. Choisir la première carte
. Choisir la deuxième carte
. Choisir la troisième carte
. Envoyer les cartes au serveur
=== Extensions
1a. Si le joueur ne veut pas effectuer de combo et n'y est pas forcé
{empty}1. On indique au serveur que l'on a fini de faire des combos
3a. Après l'étape 3, s'il ne reste plus assez de cartes pour faire un combo
{empty}1. On indique au serveur que l'on a terminé
3b. Sinon
{empty}1. retour à l'étape 1
=== Variations
1’. La carte peu changer
2’. La carte peu changer
3’. La carte peu changer
*Frequency:* 1 par tour de jeu
*Assumptions*
---
*Use Case:* Placement regiment
*Id*: UC-5
*Description*
Le joueur entrain de jouer place les régiments de début de tour
*Level:* Summary
*Primary Actor*
Joueur courant
*Supporting Actors*
Serveur
*Stakeholders and Interests*
*Pre-Conditions*
Le joueur a reçu la demande de faire des placements, et tant qu'il lui reste des régiments, il fait des placements de ces régiments sur les pays et les envoi au serveur
*Post Conditions*
[.underline]#Success end condition#
Le joueur n'a plus de régiments à placer
[.underline]#Failure end condition#:
Le pays sélectionné n'est pas au joueur
Le joueur ne peux pas placer autant d'unités
[.underline]#Minimal Guarantee#
*Trigger*
Envoie d'une demande de placement
=== Main Success Scenario
[arabic]
. Selection du pays de destination
. Précision du nombre d'unités à placer
. Envoie du placement
=== Extensions
1a. Si le pays choisit n'appartient pas au joueur
{empty}1. rester à l'étape 1
3a. Après l'étape 3, s'il ne reste plus d'unités
{empty}1. On indique au serveur que l'on a terminé
3b. Sinon