aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--draughts/app.js5
-rw-r--r--draughts/color.js7
-rw-r--r--draughts/game.js2
-rw-r--r--draughts/public/game.html1
-rw-r--r--draughts/public/javascripts/color.js5
-rw-r--r--draughts/public/javascripts/game.js12
6 files changed, 16 insertions, 16 deletions
diff --git a/draughts/app.js b/draughts/app.js
index 6b55c6a..11a01f0 100644
--- a/draughts/app.js
+++ b/draughts/app.js
@@ -3,6 +3,7 @@ const WebSocket = require("ws")
const Express = require("express")
const Game = require("./game")
+const Color = require("./public/javascripts/color")
const Messages = require("./public/javascripts/messages")
const Environment = require("./environment")
const indexRouter = require("./routes/index")
@@ -41,11 +42,11 @@ wss.on("connection", ws => {
game = new Game(env.games.length) /* The number of games servers as a unique game ID */
env.games.push(game)
game.bluePlayer = ws
- game.messageClient({ head: Messages.WELCOME, body: "b" }, ws)
+ game.messageClient({ head: Messages.WELCOME, body: Color.BLUE }, ws)
} else {
game.redPlayer = ws
game.ongoing = true
- game.messageClient({ head: Messages.WELCOME, body: "r" }, ws)
+ game.messageClient({ head: Messages.WELCOME, body: Color.RED }, ws)
game.nextTurn()
}
diff --git a/draughts/color.js b/draughts/color.js
deleted file mode 100644
index 72361e8..0000000
--- a/draughts/color.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* A basic enumeration representing the two possible piece colors */
-const Color = {
- BLUE: 0,
- RED: 1
-}
-
-module.exports = Color
diff --git a/draughts/game.js b/draughts/game.js
index db9795a..d034746 100644
--- a/draughts/game.js
+++ b/draughts/game.js
@@ -1,7 +1,7 @@
const WebSocket = require("ws")
-const Color = require("./color")
const Piece = require("./piece")
+const Color = require("./public/javascripts/color")
const Messages = require("./public/javascripts/messages")
/*
diff --git a/draughts/public/game.html b/draughts/public/game.html
index f49df7d..42c52c2 100644
--- a/draughts/public/game.html
+++ b/draughts/public/game.html
@@ -6,6 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="stylesheets/game.css" />
+ <script src="javascripts/color.js" defer></script>
<script src="javascripts/messages.js" defer></script>
<script src="javascripts/game.js" defer></script>
<title>Draughts</title>
diff --git a/draughts/public/javascripts/color.js b/draughts/public/javascripts/color.js
new file mode 100644
index 0000000..0449161
--- /dev/null
+++ b/draughts/public/javascripts/color.js
@@ -0,0 +1,5 @@
+/* A basic enumeration for the two different player colors */
+(function (exports) {
+ exports.BLUE = "b"
+ exports.RED = "r"
+})(typeof(exports) == "undefined" ? (this.Color == {}) : exports)
diff --git a/draughts/public/javascripts/game.js b/draughts/public/javascripts/game.js
index a13fc36..20c9935 100644
--- a/draughts/public/javascripts/game.js
+++ b/draughts/public/javascripts/game.js
@@ -5,8 +5,9 @@ const ws = new WebSocket("ws://localhost:3000")
let legalMoves, // Array of moves :: Moves that each piece can legally make
ourTurn, // Boolean :: Is it currently our turn?
selectedPiece, // Piece :: The current HTML piece we have selected
- colorPrefix, // Character :: Either 'b' or 'r' depending on the clients side
- opponentPrefix // Character :: The inverse of `colorPrefix'
+ colorPrefix // Color :: Either Color.BLUE or Color.RED depending on the clients side
+
+const opponentPrefix = () => colorPrefix == Color.BLUE ? Color.RED : Color.BLUE
/* Remove all the position markers from the board */
const removeMarkers = () => Array
@@ -34,7 +35,7 @@ const addMarker = ({ x, y, captures }) => {
/* Get the ID of the selected piece so we can include it in the message to the server */
let id = selectedPiece.id.slice(1)
- removeCaptures(captures, opponentPrefix)
+ removeCaptures(captures, opponentPrefix())
/* Move the selected piece, unselect it, remove the markers, and end our turn */
selectedPiece.style.transform = img.style.transform
@@ -59,12 +60,12 @@ const addMarker = ({ x, y, captures }) => {
const removeCaptures = (captures, color) => {
captures.forEach(p => document.getElementById(color + p.id).remove())
- let node = document.getElementById(color == "b" ? "delta-red" : "delta-blue")
+ let node = document.getElementById(color == Color.BLUE ? "delta-red" : "delta-blue")
node.innerHTML = `+${Number(node.innerHTML) + captures.length}`
}
const movePiece = ({ id, position, captures }) => {
- document.getElementById(opponentPrefix + id).style.transform =
+ document.getElementById(opponentPrefix() + id).style.transform =
`translate(${position.x * 100}%, ${position.y * 100}%)`
removeCaptures(captures, colorPrefix)
}
@@ -101,7 +102,6 @@ ws.addEventListener("message", ({ data }) => {
switch (data.head) {
case Messages.WELCOME:
colorPrefix = data.body
- opponentPrefix = colorPrefix == "b" ? "r" : "b"
setupPieceEventListeners()
break
case Messages.RESIGN: