|
@@ -1,59 +1,20 @@
|
|
|
/// <reference path="player.ts" />
|
|
|
+/// <reference path="game.ts" />
|
|
|
|
|
|
-function startGame() {
|
|
|
- // Starting a new game.
|
|
|
- let playerName: string | undefined = getInputValue('playername');
|
|
|
- logPlayer(playerName);
|
|
|
+let newGame: Game;
|
|
|
|
|
|
- postScore(100, playerName);
|
|
|
-}
|
|
|
+document.getElementById('startGame')!.addEventListener('click', () => {
|
|
|
+ let player: Player = new Player();
|
|
|
+ player.name = Utility.getInputValue('playername');
|
|
|
|
|
|
-function getInputValue(elementId: string): string | undefined {
|
|
|
- // Type assertions applies to the whole document.get...., not to document.
|
|
|
- // We know that we're only going to pass valid IDs, so will never get a null,
|
|
|
- // so we can assert the result will always be an input element.
|
|
|
- const inputElement: HTMLInputElement = <HTMLInputElement>document.getElementById(elementId);
|
|
|
- if (inputElement.value === '') {
|
|
|
- return undefined;
|
|
|
- }
|
|
|
- else {
|
|
|
- return inputElement.value;
|
|
|
- }
|
|
|
-}
|
|
|
+ let problemCount: number = Number(Utility.getInputValue('problemCount'));
|
|
|
+ let factor: number = Number(Utility.getInputValue('factor'));
|
|
|
|
|
|
-function postScore(score: number, playerName: string = 'MultiMath player'): void {
|
|
|
- let logger: (value: string) => void;
|
|
|
+ newGame = new Game(player, problemCount, factor);
|
|
|
+ newGame.displayGame();
|
|
|
+});
|
|
|
|
|
|
- if (score < 0) {
|
|
|
- logger = logError;
|
|
|
- }
|
|
|
- else {
|
|
|
- logger = logMessage;
|
|
|
- }
|
|
|
-
|
|
|
- let scoreElement: HTMLElement | null = document.getElementById('postedScores');
|
|
|
- scoreElement!.innerText = `${score} - ${playerName}`;
|
|
|
- logger(`Score: ${score}`);
|
|
|
-}
|
|
|
-
|
|
|
-function logPlayer(name: string = 'MultiMath player'): void {
|
|
|
- console.log(`New game starting for player: ${name}.`);
|
|
|
-}
|
|
|
-
|
|
|
-function arm(doc: HTMLDocument) {
|
|
|
- // We know getElementById() cannot be null because we control the markup, so
|
|
|
- // we can use a non-null type assertion on the function call result.
|
|
|
- doc.getElementById('startGame')!.addEventListener('click', startGame);
|
|
|
-}
|
|
|
-
|
|
|
-arm(document);
|
|
|
-
|
|
|
-const logMessage = (message: string) => console.log(message);
|
|
|
-
|
|
|
-function logError(message: string): void {
|
|
|
- console.error(message);
|
|
|
-}
|
|
|
-
|
|
|
-let firstPlayer: Player = new Player();
|
|
|
-firstPlayer.name = 'Laney';
|
|
|
-console.log(firstPlayer.formatName());
|
|
|
+// Add click handler to the calculate score button.
|
|
|
+document.getElementById('calculate')!.addEventListener('click', () => {
|
|
|
+ newGame.calculateScore();
|
|
|
+});
|