//ProjectEulerTS/Problems/Problem.ts //Matthew Ellison // Created: 10-18-20 //Modified: 10-18-20 //What is the sum of all the multiples of 3 or 5 that are less than 1000 //Unless otherwise listed all non-standard includes are my own creation and available from https://bibucket.org/Mattrixwv/typescriptClasses /* Copyright (C) 2020 Matthew Ellison This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ import { Stopwatch } from "../../../Typescript/typescriptClasses/Stopwatch"; import { Unsolved } from "../Unsolved"; export abstract class Problem{ //Variables private description: string; protected timer: Stopwatch = new Stopwatch(); protected solved: boolean; //Constructor public constructor(description: string){ this.description = description; this.solved = false; } //Gets getDescription(){ return this.description; } //Returns the result of solving the problem public abstract getResult(): string; //Returns the time taken to run the problem as a string public getTime(): string{ if(!this.solved){ throw new Unsolved(); } return this.timer.getStr(); } //Returns the timer as a stopwatch public getTimer(): Stopwatch{ if(!this.solved){ throw new Unsolved(); } return this.timer; } //Solve the problem public abstract solve(): void; //Reset the problem so it can be run again public reset(): void{ this.timer.reset(); this.solved = false; } }