Skip to content

Commit a63692b

Browse files
committed
Abstract try again and win dialog boxes
1 parent 2e9ca02 commit a63692b

File tree

1 file changed

+19
-44
lines changed

1 file changed

+19
-44
lines changed

js/snake.js

Lines changed: 19 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -751,70 +751,45 @@ SNAKE.Board = SNAKE.Board || (function() {
751751
return tmpElm;
752752
}
753753

754-
function createTryAgainElement() {
754+
function createGameEndElement(message, elmId, elmClassName) {
755755
var tmpElm = document.createElement("div");
756-
tmpElm.id = "sbTryAgain" + myId;
757-
tmpElm.className = "snake-try-again-dialog";
756+
tmpElm.id = elmId + myId;
757+
tmpElm.className = elmClassName;
758758

759-
var tryAgainTxt = document.createElement("div");
760-
tryAgainTxt.innerHTML = "JavaScript Snake<p></p>You died :(<p></p>";
761-
var tryAgainStart = document.createElement("button");
762-
tryAgainStart.appendChild( document.createTextNode("Play Again?"));
759+
var gameEndTxt = document.createElement("div");
760+
gameEndTxt.innerHTML = "JavaScript Snake<p></p>" + message + "<p></p>";
761+
var gameEndStart = document.createElement("button");
762+
gameEndStart.appendChild(document.createTextNode("Play Again?"));
763763

764-
var reloadGame = function() {
764+
var reloadGame = function () {
765765
tmpElm.style.display = "none";
766766
me.resetBoard();
767767
me.setBoardState(1);
768768
me.getBoardContainer().focus();
769769
};
770770

771-
var kbTryAgainShortcut = function(evt) {
772-
if (boardState !== 0 || tmpElm.style.display !== "block") {return;}
771+
var kbGameEndShortcut = function (evt) {
772+
if (boardState !== 0 || tmpElm.style.display !== "block") { return; }
773773
if (!evt) var evt = window.event;
774774
var keyNum = (evt.which) ? evt.which : evt.keyCode;
775775
if (keyNum === 32 || keyNum === 13) {
776776
reloadGame();
777777
}
778778
};
779-
SNAKE.addEventListener(window, "keyup", kbTryAgainShortcut, true);
779+
SNAKE.addEventListener(window, "keyup", kbGameEndShortcut, true);
780780

781-
SNAKE.addEventListener(tryAgainStart, "click", reloadGame, false);
782-
tmpElm.appendChild(tryAgainTxt);
783-
tmpElm.appendChild(tryAgainStart);
781+
SNAKE.addEventListener(gameEndStart, "click", reloadGame, false);
782+
tmpElm.appendChild(gameEndTxt);
783+
tmpElm.appendChild(gameEndStart);
784784
return tmpElm;
785785
}
786786

787-
function createWinElement() {
788-
var tmpElm = document.createElement("div");
789-
tmpElm.id = "sbWin" + myId;
790-
tmpElm.className = "snake-win-dialog";
791-
792-
var winTxt = document.createElement("div");
793-
winTxt.innerHTML = "JavaScript Snake<p></p>You win! :D<p></p>";
794-
var winStart = document.createElement("button");
795-
winStart.appendChild(document.createTextNode("Play Again?"));
796-
797-
var reloadGame = function () {
798-
tmpElm.style.display = "none";
799-
me.resetBoard();
800-
me.setBoardState(1);
801-
me.getBoardContainer().focus();
802-
};
803-
804-
var kbWinShortcut = function (evt) {
805-
if (boardState !== 0 || tmpElm.style.display !== "block") { return; }
806-
if (!evt) var evt = window.event;
807-
var keyNum = (evt.which) ? evt.which : evt.keyCode;
808-
if (keyNum === 32 || keyNum === 13) {
809-
reloadGame();
810-
}
811-
};
812-
SNAKE.addEventListener(window, "keyup", kbWinShortcut, true);
787+
function createTryAgainElement() {
788+
return createGameEndElement("You died :(", "sbTryAgain", "snake-try-again-dialog");
789+
}
813790

814-
SNAKE.addEventListener(winStart, "click", reloadGame, false);
815-
tmpElm.appendChild(winTxt);
816-
tmpElm.appendChild(winStart);
817-
return tmpElm;
791+
function createWinElement() {
792+
return createGameEndElement("You win! :D", "sbWin", "snake-win-dialog");
818793
}
819794

820795
function handleEndCondition(elmDialog) {

0 commit comments

Comments
 (0)