Skip to content

Commit 2972b0a

Browse files
Ajout de l'exercice 4, jeu des fléchettes niveau moyen
1 parent bcf20e3 commit 2972b0a

File tree

5 files changed

+190
-0
lines changed

5 files changed

+190
-0
lines changed
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Exercice 4
2+
3+
> Pour ceux qui ne sont pas trop maths et géométrie, il y a un indice en fin d'énoncé 👌.
4+
5+
Le jeu des fléchettes se joue sur une cible. Vous lancez une fléchette sur cette cible, elle atterrit quelque part et en fonction de sa position, vous gagnez un certain nombre de points :
6+
7+
* En dehors de la cible : 0 points.
8+
* À l'intérieur du cercle extérieur (gris) : 1 point.
9+
* À l'intérieur du cercle du milieu (orange) : 5 points.
10+
* À l'intérieur du cercle intérieur (rouge) : 10 points.
11+
* Si on tombe pile à la périphérie d'un cercle, on considère qu'on est à l'intérieur de ce cercle.
12+
13+
![flechette.jpg](./flechette.jpg)
14+
15+
La structure de la cible est la suivante :
16+
17+
* Le cercle extérieur (gris) a un `rayon` de `10` unités.
18+
* Le cercle du milieu (orange) a un `rayon` de `5` unités.
19+
* Le cercle intérieur (rouge) a un `rayon` d'`1` unité.
20+
21+
Les 3 cercles sont tous centrés sur la position d'origine représentée par une petite croix noire au centre du cercle rouge.
22+
23+
On note les coordonnées d'une position `(x,y)``x` représente la valeur sur l'axe des abscisses (axe horizontal) et `y` sur l'axe des ordonnées (axe vertical).
24+
25+
Le centre a comme coordonnées `x = 0, y = 0` c'est-à-dire `(0,0)`.
26+
27+
Écrivez une fonction qui renvoie le nombre de points gagnés en fonction des coordonnées de la position de la fléchette sur la cible.
28+
29+
Les coordonnées peuvent être des nombres entiers ou à virgules, positifs ou négatifs.
30+
31+
## Exemples
32+
- Pour `(4,4)`, soit `x = 4` et `y = 4` il faut renvoyer la valeur `1`, car on gagne `1` point. La flèche atterrit en haut à droite, juste au dessus du cercle orange.
33+
- Pour `(2,2)` il faut renvoyer `5` points.
34+
- Pour `(3,1)` il faut renvoyer `5` points.
35+
- Pour `(5,0)`, on est pile à la limite du cercle orange, donc on considère qu'on est dans le cercle orange, il faut retourner `5` points.
36+
- Pour `(0.8,-0.8)` il faut renvoyer `5` points.
37+
- Pour `(0,-1)`, on est pile à la limite du cercle rouge, il faut renvoyer `10` points.
38+
- Pour `(0.4,0.8)`, il faut renvoyer `10` points.
39+
40+
![flechette.jpg](./flechette.jpg)
41+
42+
## Indice
43+
44+
En utilisant le théorème de Pythagore, on peut calculer la distance entre la position de la flèche et le centre de la cible.
45+
46+
Descendez plus bas, je vous donne la formule à utiliser pour calculer directement cette distance.
47+
48+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
49+
50+
.
51+
52+
.
53+
54+
.
55+
56+
.
57+
58+
.
59+
60+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
61+
62+
.
63+
64+
.
65+
66+
.
67+
68+
.
69+
70+
.
71+
72+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
73+
74+
.
75+
76+
.
77+
78+
.
79+
80+
.
81+
82+
.
83+
84+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
85+
86+
.
87+
88+
.
89+
90+
.
91+
92+
.
93+
94+
.
95+
96+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
97+
98+
.
99+
100+
.
101+
102+
.
103+
104+
.
105+
106+
.
107+
108+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
109+
110+
## Formule de calcul de la distance
111+
Pour obtenir la distance entre le centre de la cible et la position `(x,y)` de la fléchette, il faut utiliser la formule suivante :
112+
113+
![pythagore](./pythagore.jpg)

01-moyen/exercice-4/exercice-4.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
function exercice4(x, y) {
2+
3+
}
4+
5+
// Ne touchez pas à la ligne suivante
6+
module.exports = exercice4;
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
const exercice4 = require('./exercice-4');
2+
3+
test('Position (-9,9). La fléchette atterrit en dehors de la cible: 0 points', () => {
4+
const x = -9;
5+
const y = 9;
6+
const expected = 0;
7+
expect(exercice4(x, y)).toEqual(expected);
8+
});
9+
10+
test('Position (0,10). La fléchette atterrit pile à la limite du cercle extérieur: 1 point', () => {
11+
const x = 0;
12+
const y = 10;
13+
const expected = 1;
14+
expect(exercice4(x, y)).toEqual(expected);
15+
});
16+
17+
test('Position (4,4). La fléchette atterrit dans le cercle extérieur: 1 point', () => {
18+
const x = 4;
19+
const y = 4;
20+
const expected = 1;
21+
expect(exercice4(x, y)).toEqual(expected);
22+
});
23+
24+
test('Position (5,0). La fléchette atterrit à la limite du cercle du milieu : 5 points', () => {
25+
const x = 5;
26+
const y = 0;
27+
const expected = 5;
28+
expect(exercice4(x, y)).toEqual(expected);
29+
});
30+
31+
test('Position (0.8,-0.8). La fléchette atterrit dans le cercle du milieu : 5 points', () => {
32+
const x = 0.8;
33+
const y = -0.8;
34+
const expected = 5;
35+
expect(exercice4(x, y)).toEqual(expected);
36+
});
37+
38+
test('Position (0,-1). La fléchette atterrit à la limite du cercle intérieur : 10 points', () => {
39+
const x = 0;
40+
const y = -1;
41+
const expected = 10;
42+
expect(exercice4(x, y)).toEqual(expected);
43+
});
44+
45+
test('Position (-0.1,-0.1). La fléchette atterrit dans le cercle intérieur : 10 points', () => {
46+
const x = -0.1;
47+
const y = -0.1;
48+
const expected = 10;
49+
expect(exercice4(x, y)).toEqual(expected);
50+
});
51+
52+
test('Position (0.4,0.8). La fléchette atterrit dans le cercle intérieur : 10 points', () => {
53+
const x = 0.4;
54+
const y = 0.8;
55+
const expected = 10;
56+
expect(exercice4(x, y)).toEqual(expected);
57+
});
58+
59+
test('Position (2,4). La fléchette atterrit dans le cercle du milieu : 5 points', () => {
60+
const x = 2;
61+
const y = 4;
62+
const expected = 5;
63+
expect(exercice4(x, y)).toEqual(expected);
64+
});
65+
66+
test('Position (4,8). La fléchette atterrit dans le cercle extérieur : 1 point', () => {
67+
const x = 4;
68+
const y = 8;
69+
const expected = 1;
70+
expect(exercice4(x, y)).toEqual(expected);
71+
});

01-moyen/exercice-4/flechette.jpg

68.6 KB
Loading

01-moyen/exercice-4/pythagore.jpg

12.6 KB
Loading

0 commit comments

Comments
 (0)