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

related #4
parent c2295638
......@@ -6,7 +6,7 @@ export class Truck {
id: number;
name: string;
driver: Driver;
private _state: TruckState;
_state: TruckState;
private _stringState: string;
constructor (id: number, name: string, driver: Driver) {
......
import { Driver } from "./Driver";
import { Truck } from "./Truck";
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 jack = new Driver("Jack", "Rose", 55, 30);
......@@ -20,16 +23,59 @@ function getTrucksInfo (truks: Truck[]): void {
};
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);
if (isNum === false) {
if (parseInt(userAns) == 1) {
getTrucksInfo(trucks);
continue;
} 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();
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 {
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