Прописал логику при выборе пункта 3, в меню

related #4
parent c2295638
...@@ -6,7 +6,7 @@ export class Truck { ...@@ -6,7 +6,7 @@ export class Truck {
id: number; id: number;
name: string; name: string;
driver: Driver; driver: Driver;
private _state: TruckState; _state: TruckState;
private _stringState: string; private _stringState: string;
constructor (id: number, name: string, driver: Driver) { constructor (id: number, name: string, driver: Driver) {
......
import { Driver } from "./Driver"; import { Driver } from "./Driver";
import { Truck } from "./Truck"; import { Truck } from "./Truck";
import readlineSync from 'readline-sync'; import readlineSync from 'readline-sync';
import { InRunState } from "./TruckState/state/InRunState";
import { InBaseState } from "./TruckState/state/InBaseState";
import { InRepairState } from "./TruckState/state/InRepairState";
const john = new Driver("John", "Doe", 35, 10); const john = new Driver("John", "Doe", 35, 10);
const jack = new Driver("Jack", "Rose", 55, 30); const jack = new Driver("Jack", "Rose", 55, 30);
...@@ -20,16 +23,59 @@ function getTrucksInfo (truks: Truck[]): void { ...@@ -20,16 +23,59 @@ function getTrucksInfo (truks: Truck[]): void {
}; };
while (true) { while (true) {
const userAns: any = readlineSync.question('Меню:\n 1. Отобразить текущее состояние грузовиков\n 2. Показать данные грузовика по id \nВыберите действие: '); const userAns: any = readlineSync.question('Меню:\n 1. Отобразить текущее состояние грузовиков\n 2. Показать данные грузовика по id \n 3. Обновить состояние грузовика\n 4. Завершить программу\nВыберите действие: ');
let isNum: boolean = isNaN(userAns); let isNum: boolean = isNaN(userAns);
if (isNum === false) { if (isNum === false) {
if (parseInt(userAns) == 1) { if (parseInt(userAns) == 1) {
getTrucksInfo(trucks); getTrucksInfo(trucks);
continue; continue;
} else if (parseInt(userAns) == 2) { } else if (parseInt(userAns) == 2) {
const truckId: any = readlineSync.question('Введите номер грузовика: '); let truckId: any;
while (true) {
truckId = readlineSync.question('Введите номер грузовика: ');
let isNum: boolean = isNaN(truckId);
if (isNum === false) {
if (parseInt(truckId) > trucks.length || parseInt(truckId) < 1) {
continue;
};
break;
} else {
continue;
};
};
trucks[parseInt(truckId) - 1].getInfoSolo(); trucks[parseInt(truckId) - 1].getInfoSolo();
continue; continue;
} else if (parseInt(userAns) == 3) {
let truckId: any;
while (true) {
truckId = readlineSync.question('Введите номер грузовика: ');
let isNum: boolean = isNaN(truckId);
if (isNum === false) {
if (parseInt(truckId) > trucks.length || parseInt(truckId) < 1) {
continue;
};
break;
} else {
continue;
};
};
while (true) {
const action: any = readlineSync.question('Введите действие(run / base / repair): ');
if (action == 'run') {
trucks[parseInt(truckId) - 1]._state.startRun();
break;
} else if (action == 'base') {
trucks[parseInt(truckId) - 1].changeState(new InBaseState());
console.log('Грузовик успешно отправился на базу!');
break;
} else if (action == 'repair') {
trucks[parseInt(truckId) - 1]._state.startRepair();
break;
} else {
console.log('Пожалуйста введите корректное действие!');
continue;
};
};
}; };
} else { } else {
continue; continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment