From 67149b289669316da0a7bd60e04138215f129826 Mon Sep 17 00:00:00 2001 From: Redak45 <43347242+Redak45@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:46:49 +0100 Subject: [PATCH 1/6] Update animal.class.ts --- src/animal.class.ts | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/animal.class.ts b/src/animal.class.ts index 63da713..85b4f7f 100644 --- a/src/animal.class.ts +++ b/src/animal.class.ts @@ -1,12 +1,37 @@ -import Food from './food/food'; - // Créer une class Animal qui implémente l'interface IAnimal // par défaut, la méthode eat augmente le poids de l'animal de 10 // par défaut, la méthode sleep réduit le poids de l'animal de 10 // le poids d'un animal ne peut pas être négatif -export default class Animal { +import Food from './food/food'; +import IAnimal from './animal.interface'; + +export default class Animal implements IAnimal { + + name: string; + weight: number = 0; + + constructor(name: string, weight: number){ + + this.weight = weight; + this.name = name; + + } + + eat(argument:Food): string | void { + this.weight += 10; + } + + sleep(): void { + if(this.weight >= 10){ + + this.weight -= 10; + } else{ + + this.weight = 0; + } + + } - // CODER ICI } From 8bd3928eb3b3f24362d9e90076b2a73c6a02e8c1 Mon Sep 17 00:00:00 2001 From: Redak45 <43347242+Redak45@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:47:25 +0100 Subject: [PATCH 2/6] Update animal.interface.ts --- src/animal.interface.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/animal.interface.ts b/src/animal.interface.ts index 32d5c62..f5a3c75 100644 --- a/src/animal.interface.ts +++ b/src/animal.interface.ts @@ -5,5 +5,8 @@ import Food from './food/food'; export default interface IAnimal { - // CODER ICI + + eat(argument:Food) : string | void; + + sleep() : void; } From 55ab1f5314f39c63ac61a2606dd1db9dc09e652f Mon Sep 17 00:00:00 2001 From: Redak45 <43347242+Redak45@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:48:00 +0100 Subject: [PATCH 3/6] Update array.ts --- src/array.ts | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/src/array.ts b/src/array.ts index 74d328e..ad870ff 100644 --- a/src/array.ts +++ b/src/array.ts @@ -3,23 +3,56 @@ export default class MyArray { // Coder une méthode oddNumbers qui prend en paramètre un tableau d'entier, et renvoie un tableau uniquement composé // des entiers impairs de ce dernier oddNumbers(arr: number[]) { - return undefined + + return arr.filter((n) => n % 2 !== 0); + } // Coder une méthode sort qui renvoie le tableau passé en paramètre trié par ordre croissant sort(arr: number[]) { - return undefined + + return arr.sort((a, b) => a - b); + } // Coder une méthode boringFunction qui renvoie true si les string du tableaux ont toutes la même longueur, // ou renvoie "relou ta fonction" sinon boringFunction(arr: string[]) { - return undefined + + var firstStringTable = arr[0].length; + var allStringsTable = arr.every((str) => str.length === firstStringTable); + + return allStringsTable ? true : "relou ta fonction"; + } // Coder une méthode optionalArray qui renvoie true si les 2 arrays d'entiers passés en paramètres sont égaux, false sinon // Faire de même avec un 3e tableau passé en paramètre qui sera optionnel - optionalArray(a, b, c?) { - return undefined + optionalArray(a:number[], b:number[], c?: number[]): boolean { + + if (a.length !== b.length) { + + return false; + + } + if (c && a.length !== c.length) { + + return false; + + } + for (let i = 0; i < a.length; i++) { + + if (a[i] !== b[i]) { + return false; + + } + if (c && a[i] !== c[i]) { + + return false; + + } + } + return true; + } } From a1c14f3201ef09cf8623cb577aa4e555031ed7a2 Mon Sep 17 00:00:00 2001 From: Redak45 <43347242+Redak45@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:48:32 +0100 Subject: [PATCH 4/6] Update calculator.ts --- src/calculator.ts | 71 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/src/calculator.ts b/src/calculator.ts index 412d171..0ac7d66 100644 --- a/src/calculator.ts +++ b/src/calculator.ts @@ -1,38 +1,77 @@ export default class MyCalculator { - // Coder une methode add qui prend 2 nombres en paramètre et renvoie la somme des deux - add(a, b) { - return undefined - } + // Coder une methode add qui prend 2 nombres en paramètre et renvoie la somme des deux + add(a: number, b: number) { + + return a + b; + + } // Coder une methode subtract qui prend 2 nombres en paramètre et renvoie la différence des deux - subtract(a, b) { - return undefined + subtract(a: number, b: number) { + + return a - b; + } // Coder une methode multiply qui prend 2 nombres en paramètre et renvoie le produit des deux - multiply(a, b) { - return undefined + multiply(a: number, b: number) { + + return a * b; + } // Coder une methode divide qui prend 2 nombres en paramètre et renvoie le quotient des deux - divide(a, b) { - return undefined + divide(a: number, b: number) { + + if (b === 0) { + + return 0; + + } + + return a / b; + } // Coder une méthode power qui prend 2 nombres en paramètre et renvoie le premier élevé à la puissance de l'autre - power(a, b) { - return undefined + power(a: number, b: number) { + + return Math.pow(a, b); + } // Coder une méthode squareRoot qui prend un nombre en paramètre et renvoie sa racine carrée - squareRoot(a) { - return undefined + squareRoot(a: number) { + + if (a > 0) { + + return Math.sqrt(a); + + } else { + + return 0 ; + } + } // Coder une fonction fléchée qui renvoie true si le chiffre en paramètre est premier, false sinon - isPrime = (a) => { - return undefined + isPrime = (a: number) => { + if (a <= 1) { + + return false; + + } + for (let i = 2; i <= Math.sqrt(a); i++) { + if (a % i === 0) { + + return false; + + } + } + + return true; + } } From b0c3eed31f5b3d1976bf87caeaa2b6d522fa87fd Mon Sep 17 00:00:00 2001 From: Redak45 <43347242+Redak45@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:49:02 +0100 Subject: [PATCH 5/6] Update hippopotamus.ts --- src/hippopotamus.ts | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/hippopotamus.ts b/src/hippopotamus.ts index 0c5a55b..54aee86 100644 --- a/src/hippopotamus.ts +++ b/src/hippopotamus.ts @@ -5,8 +5,45 @@ // ajouter une méthode swim() qui ne renvoie rien mais baisse le poids de 50. import Food from './food/food'; +import Animal from './animal.class'; -export default class Hippopotamus { - // CODER ICI +export default class Hippopotamus extends Animal { + + + eat(argument: Food){ + + if(argument.isVegan()) + { + this.weight = this.weight + 20; + } + else { + + return 'beurk'; + } + } + + sleep(){ + if(this.weight >= 20) + { + + this.weight -= 20; + } else{ + + this.weight = 0; + } + } + + swim(): void{ + + if(this.weight >= 50){ + + this.weight -= 50; + } else{ + + this.weight = 0; + } + + } } + From efb62655480d28d6e36a266abec2bae535065d6d Mon Sep 17 00:00:00 2001 From: Redak45 <43347242+Redak45@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:49:49 +0100 Subject: [PATCH 6/6] Update vehicle.ts --- src/vehicle.ts | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/vehicle.ts b/src/vehicle.ts index 63e999d..75da37d 100644 --- a/src/vehicle.ts +++ b/src/vehicle.ts @@ -1,5 +1,6 @@ import { VehicleType } from './vehicletype.enum'; + export default class Vehicle { type: VehicleType name: string @@ -8,26 +9,50 @@ export default class Vehicle { this.type = type this.name = name } - + // Coder une méthode nois qui switchera sur le type du véhicule et renverra // vrooooom si le vehicule est une voiture // bep bep si le vehicule est une moto // brrrrrrrrrrrrr si le vehicule est un camion // skrrrt skrrrt dans tout autre cas + noise() { - return undefined + + switch (this.type) { + + case VehicleType.Car: + return "vrooooom"; + + case VehicleType.Moto: + return "bep bep"; + + case VehicleType.Truck: + return "brrrrrrrrrrrrr" + + case VehicleType.Rocket: + return "skrrrt skrrrt"; + + } } // Coder un callback qui renverra la methode noise précedemment codée // mais transformera la valeur de retour en majuscule - myCb = () => { - return undefined + + + + myCb = () => { + + return this.noise().toUpperCase(); + } // Coder une méthode accelerate qui prend en paramètre un callback et renvoie la valeur de noise() concaténée au callback accelerate(cb: () => string) { - return undefined + + return `${this.noise()}${cb()}`; + } } +