Theme: 

1. Présentation

Bienvenue dans la documentation fonctionnelle de l’application de pilotage des tondeuses automatiques MowItNow.

On y retrouvera :

  • La description d’une programmation

  • Les contrôles de validation opérés

  • La description de l’exécution d’une programmation

Le logiciel de l’application est disponible depuis son dépôt en accès libre.

Cette documentation est également consultable en ligne.

2. Summary

Scenarios Steps Features: 5

Passed

Failed

Total

Passed

Failed

Skipped

Pending

Undefined

Missing

Total

Duration

Status

Programmation

1

0

1

4

0

0

0

0

0

4

061ms

passed

Validation

6

0

6

18

0

0

0

0

0

18

007ms

passed

Exécution

2

0

2

8

0

0

0

0

0

8

006ms

passed

Lexique

1

0

1

0

0

0

0

0

0

0

000ms

passed

Références

1

0

1

0

0

0

0

0

0

0

000ms

passed

Totals

11

0

11

30

0

0

0

0

0

30

075ms

3. Programmation

Pour programmer la tondeuse, on lui fournit un fichier d’entrée construit comme suit :

  • La premiére ligne correspond aux coordonnées du coin supérieur droit de la pelouse, celles du coin inférieur gauche sont supposées être (0, 0).

  • La suite du fichier permet de piloter toutes les tondeuses qui ont été déployées.

Chaque tondeuse a deux lignes la concernant :

  • La premiére ligne donne la position initiale de la tondeuse, ainsi que son orientation.

  • La seconde ligne est une série d’instructions ordonnant à la tondeuse d’explorer la pelouse.

3.1. Une configuration renseignée décrit la pelouse et les tondeuses déployées

Etant donné

le contenu de programmation (003ms)

5 5
1 2 N
GAGAGAGAA
3 3 E
AADAADADDA
Lorsque

l’application crée la programmation (015ms)

Alors

la pelouse doit être de taille 6x6 (032ms)

Et

les tondeuses doivent être (010ms)

Position Instructions

1, 2, N

GAGAGAGAA

3, 3, E

AADAADADDA

4. Validation

Un ensemble de règles relatives au format et à la consistance de la programmation sont mises en place.

Dans le cas où une programmation serait mal définie, un message d’erreur doit être émis à l’utilisateur.

4.1. Une programmation doit au minimum définir une taille de pelouse

Etant donné

le contenu de programmation (000ms)

Lorsque

l’application crée la programmation (000ms)

Alors

l’application doit émettre le message d’erreur (001ms)

Ligne 0 - Pas de contenu.

4.2. Une tondeuse doit être décrite par deux lignes, sa position et ses instructions.

Etant donné

le contenu de programmation (000ms)

5 5
0 0 N
Lorsque

l’application crée la programmation (000ms)

Alors

l’application doit émettre le message d’erreur (000ms)

Ligne 2 - Tondeuse incomplète.

4.3. Les coordonnées se composent de deux nombres positifs séparés par un espace.

L’expression régulière valide est d+ d+.

Etant donné

le contenu de programmation (000ms)

(2, 3)
Lorsque

l’application crée la programmation (000ms)

Alors

l’application doit émettre le message d’erreur (000ms)

Ligne 1 - Coordonnées invalides: '(2, 3)'.

4.4. La position de la tondeuse est représentée par une combinaison de coordonnées (x, y) et d’une lettre indiquant l’orientation selon la notation cardinale anglaise (N, E, W, S).

L’écriture des valeurs de la position se fait sans ponctuation, séparées par un espace.
L’expression régulière valide est d+ d+ [NEWS].

Etant donné

le contenu de programmation (000ms)

5 5
0, 0, N
GAGAGAGAA
Lorsque

l’application crée la programmation (000ms)

Alors

l’application doit émettre le message d’erreur (000ms)

Ligne 2 - Position invalide: '0, 0, N'.

4.5. Les instructions sont une séquence simple de lettres.

Les lettres possibles sont « D », « G » et « A ».
L’expression régulière valide est [DGA]+.

Etant donné

le contenu de programmation (000ms)

5 5
1 2 N
POKER
Lorsque

l’application crée la programmation (000ms)

Alors

l’application doit émettre le message d’erreur (000ms)

Ligne 3 - Instructions invalides: 'POKER'.

4.6. Une tondeuse déployée au-delà de la pelouse déclenche un message d’erreur

Etant donné

le contenu de programmation (000ms)

5 5
6 6 E
AADAADADDA
Lorsque

l’application crée la programmation (000ms)

Alors

l’application doit émettre le message d’erreur (000ms)

Ligne 2 - Tondeuse en dehors de la pelouse.

5. Exécution

Chaque tondeuse se déplace de façon séquentielle, ce qui signifie que la seconde tondeuse ne bouge que lorsque la première a exécuté intégralement sa série d’instructions.

5.1. A l’issue de l’exécution d’une série d’instructions par la tondeuse, chaque tondeuse communique sa position et son orientation.

Etant donné

le contenu de programmation (000ms)

5 5
1 2 N
GAGAGAGAA
3 3 E
AADAADADDA
Lorsque

l’application crée la programmation (000ms)

Et que

l’application exécute la programmation (002ms)

Alors

les positions des tondeuses doivent être (001ms)

Position

1, 3, N

5, 1, E

5.2. Si la position aprés mouvement est en dehors de la pelouse, la tondeuse ne bouge pas, conserve son orientation et traite la commande suivante.

Etant donné

le contenu de programmation (000ms)

5 5
0 3 N
AAA
Lorsque

l’application crée la programmation (000ms)

Et que

l’application exécute la programmation (000ms)

Alors

les positions des tondeuses doivent être (000ms)

Position

0, 5, N

Lexique

Vous retrouverez ici les concepts utilisés dans cette documentation, ainsi que leur équivalent en anglais.

Coordonnées (anglais: Coordinates)

Système de localisation utilisé par l’application pour une pelouse.
Par exemple, la position de la tondeuse pourrait être « 0, 0, N », ce qui signifie qu’elle se situe dans le coin
inférieur gauche de la pelouse, et orientée vers le nord.

Instructions (anglais: Instructions)

Séquence de lettres simples qui décrit les commandes à envoyer à une tondeuse.
Les commandes possibles sont au nombre de trois :

Commande Signal Action

Droite

D

Pivote la tondeuse de 90° à droite, sans la déplacer.

Gauche

G

Pivote la tondeuse de 90° à gauche, sans la déplacer.

Avance

A

Avance la tondeuse d’une case dans la direction à laquelle elle fait face, et sans modifier son orientation.

Orientation (anglais: Direction)

L’orientation cardinale des tondeuses.
Elle s’exprime d’une lettre indiquant l’orientation selon la notation cardinale anglaise (N, E, W, S).

Orientation Sens Notation

Au nord

Haut

N

À l’est

Droite

E

À l’ouest

Gauche

W

Au sud

Bas

S

Pelouse (anglais: Lawn)

L’espace vert sur lequel opère les tondeuses.
Les pelouses sont considérées comme des surfaces rectangulaires planes.
Au besoin d’une rotation, on considèrera la pelouse comme alignée aux axes.
La pelouse est divisée en grille pour simplifier la navigation.

Position (anglais: Position)

Décrit l’état d’une tondeuse sur la pelouse.
Cette position se compose de deux données :

  • Les coordonnées de la tondeuse

  • Son orientation

Tondeuse (anglais: Mower)

Tondeuse à gazon, automatisée, proposée par la société MowItNow.
Elle est capable de tondre une pelouse de façon autonome en suivant un jeu d’instructions.
L’application peut piloter une ou plusieurs tondeuses déployées sur une pelouse selon la configuration.

Références