From bb76a64e162fba00b70bd0b7d7bd0f0c40297d43 Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Thu, 1 Apr 2021 21:42:54 +0100 Subject: [PATCH] added resources --- README.md | 2 + ...game_letter_tile_put_in_plastic_rack_1.mp3 | Bin 0 -> 9624 bytes ...game_letter_tile_put_in_plastic_rack_2.mp3 | Bin 0 -> 7608 bytes ...game_letter_tile_put_in_plastic_rack_3.mp3 | Bin 0 -> 6216 bytes ...rabble_game_letter_tile_put_on_board_1.mp3 | Bin 0 -> 10608 bytes ...rabble_game_letter_tile_put_on_board_2.mp3 | Bin 0 -> 3792 bytes ...rabble_game_letter_tile_put_on_board_3.mp3 | Bin 0 -> 6840 bytes client/public/index.html | 4 ++ client/public/index.js | 6 +- client/{ => public/scrabble}/board.js | 0 client/{ => public/scrabble}/dragable.js | 10 ++- client/{ => public/scrabble}/game.css | 36 ++++++++--- .../{game.html => public/scrabble/index.html} | 26 +++----- client/public/scrabble/pieces.js | 57 ++++++++++++++++++ 14 files changed, 113 insertions(+), 28 deletions(-) create mode 100644 client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_1.mp3 create mode 100644 client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_2.mp3 create mode 100644 client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_3.mp3 create mode 100644 client/public/game_scrabble_game_letter_tile_put_on_board_1.mp3 create mode 100644 client/public/game_scrabble_game_letter_tile_put_on_board_2.mp3 create mode 100644 client/public/game_scrabble_game_letter_tile_put_on_board_3.mp3 rename client/{ => public/scrabble}/board.js (100%) rename client/{ => public/scrabble}/dragable.js (80%) rename client/{ => public/scrabble}/game.css (75%) rename client/{game.html => public/scrabble/index.html} (97%) create mode 100644 client/public/scrabble/pieces.js diff --git a/README.md b/README.md index 15f6084..19136a2 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ SEE BELOW FOR CONFIGURATION GUIDE ## Product Description +https://scrabble.hasbro.com/en-us/rules +https://www.zapsplat.com/?s=scrabble ## Configuration Guide diff --git a/client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_1.mp3 b/client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e0191c47e2d9ed7b2530b7bb7044f977c132047b GIT binary patch literal 9624 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 RE+v}c literal 0 HcmV?d00001 diff --git a/client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_2.mp3 b/client/public/game_scrabble_game_letter_tile_put_in_plastic_rack_2.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3e60e446bdbfcdc7104472684c8d4261df774d89 GIT binary patch literal 7608 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 literal 0 HcmV?d00001 diff --git a/client/public/game_scrabble_game_letter_tile_put_on_board_1.mp3 b/client/public/game_scrabble_game_letter_tile_put_on_board_1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3e5686ac43083231e8dd1b1a3c866d028d54122a GIT binary patch literal 10608 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 I|Ks}q17nkLDgXcg literal 0 HcmV?d00001 diff --git a/client/public/index.html b/client/public/index.html index aa21eac..9ec2472 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -18,6 +18,10 @@
Awaiting ClientID
+

+ + + \ No newline at end of file diff --git a/client/public/index.js b/client/public/index.js index 9dc858d..70b6833 100644 --- a/client/public/index.js +++ b/client/public/index.js @@ -7,6 +7,10 @@ const ConnectionState = document.querySelector('#connection-state'); UsernameForm.addEventListener('submit', onUsernameSubmit); +function playSingleplayer() +{ + document.location.href += 'scrabble'; +} // User submits their desired username async function onUsernameSubmit(e) @@ -49,6 +53,6 @@ async function onUsernameSubmit(e) sessionStorage.setItem('user', JSON.stringify(body.login.user)); console.log(sessionStorage.user) ClientID.innerHTML = `ClientID: ${JSON.parse(sessionStorage.user).uid}`; - document.location.href = document.location.href + '/game'; + document.location.href += 'game'; } } diff --git a/client/board.js b/client/public/scrabble/board.js similarity index 100% rename from client/board.js rename to client/public/scrabble/board.js diff --git a/client/dragable.js b/client/public/scrabble/dragable.js similarity index 80% rename from client/dragable.js rename to client/public/scrabble/dragable.js index 0183efd..b4197ed 100644 --- a/client/dragable.js +++ b/client/public/scrabble/dragable.js @@ -1,15 +1,14 @@ // I decided not to use the drag and drop API // purely because its very ugly +// i also assume there's no way a user's viewport isn't at least 700px tall +// bad assumption to make, but scroll pixels wouldn't scale document.querySelector('#game-container').addEventListener('mousemove', mouseMove); document.querySelector('#game-container').addEventListener('mouseup', mouseUp); - document.querySelectorAll('piece').forEach(element => { element.addEventListener('mousedown', e => mouseDown(e, element)); - // element.addEventListener('mousemove', e => mouseMove(e, element)); - // element.addEventListener('mouseup', e => mouseUp(e, element)); }); let state = {dx: 0, dy: 0}; @@ -19,9 +18,14 @@ function mouseDown(event, element) { event.preventDefault(); + // TODO: allow drag api (on mobile) state.dx = Math.abs(element.offsetLeft - event.clientX); state.dy = Math.abs(element.offsetTop - event.clientY); + + // move to the centre of the mouse to simulat pickup + // can also play a sound + element.pointerEvents = 'none'; selectedElement = element; } diff --git a/client/game.css b/client/public/scrabble/game.css similarity index 75% rename from client/game.css rename to client/public/scrabble/game.css index 350f8fa..11a9c34 100644 --- a/client/game.css +++ b/client/public/scrabble/game.css @@ -1,6 +1,14 @@ +/** + * This would be responsive, ie, resizing with the size of the window + * but decided it against the scope of the project as it would be + * technically difficult to resize dynamically and have all the elements + * needed, visible at the times they needed to be visible + */ + piece { display: flex; + position: absolute; cursor: move; background: radial-gradient(circle, rgba(255,214,45,1) 41%, rgba(255,179,0,1) 84%); @@ -13,22 +21,33 @@ piece { width: 80px; height: 80px; +} +nopiece { + display: flex; position: absolute; + + background: none; + + width: 80px; + height: 80px; } score { display: inline-block; + position: absolute; text-align: right; right: 5px; - width: 100%; - height: 100%; - font-size: 20px; - position: absolute; + width: 100%; + height: 100%; +} + +.dragging-piece { + } #game-container { @@ -40,12 +59,14 @@ score { flex-wrap: wrap; margin: auto; - width: 600px; + width: 700px; height: 700px; } #game-board { + outline: 2px inset black; + display: table; table-layout: fixed; @@ -54,7 +75,6 @@ score { height: 600px; text-align: center; - font-size: 3vw; /* roughly 15 / table width */ } .game-board-row { @@ -63,12 +83,14 @@ score { } .game-board-cell { + outline: 1px inset black; + display: table-cell; width: 40px; height: 40px; - font-size: 15px; /* roughly 15 / table width */ + font-size: 17px; vertical-align: middle; background: radial-gradient(circle, rgba(255,255,255,1) 38%, rgba(244,244,244,1) 94%); diff --git a/client/game.html b/client/public/scrabble/index.html similarity index 97% rename from client/game.html rename to client/public/scrabble/index.html index 5339be5..7ce7c60 100644 --- a/client/game.html +++ b/client/public/scrabble/index.html @@ -6,19 +6,11 @@ - + Scrabble! - -

@@ -385,18 +377,18 @@

- A4 - A4 - A4 - A4 - A4 - A4 - A4 + A4 + A4 + + A4 + A4 + A4 + A4

- + \ No newline at end of file diff --git a/client/public/scrabble/pieces.js b/client/public/scrabble/pieces.js new file mode 100644 index 0000000..1f4f594 --- /dev/null +++ b/client/public/scrabble/pieces.js @@ -0,0 +1,57 @@ + +const BOARD_WIDTH = 600; +const BOARD_HEIGHT = 600; + +// these change with resize +let BOARD_TL_X = document.querySelector('#game-container').getBoundingClientRect().left + window.scrollX; +let BOARD_TL_Y = document.querySelector('#game-container').getBoundingClientRect().top + window.scrollY; + +const PIECE_WIDTH = 80; +const PIECE_HEIGHT = 80; + + +class Piece { + +} + + +function setupPieces() +{ + BOARD_TL_X = document.querySelector('#game-container').getBoundingClientRect().left + window.scrollX; + BOARD_TL_Y = document.querySelector('#game-container').getBoundingClientRect().top + window.scrollY; + // if the window has enough vertical height to fit the peices, + // have them at the bottom of the board, else, have them to the right + if (window.innerHeight > 700) + { + let index = 0; + for (const piece of document.querySelectorAll('piece, nopiece')) + { + // i feel dirty hardcoding this much + const dx = (BOARD_TL_X) + (index * (PIECE_WIDTH + 5)) + 5; + const dy = (BOARD_TL_Y + BOARD_HEIGHT) + 10; + + piece.style.left = `${dx}px`; + piece.style.top = `${dy}px`; + + index++; + } + } else + { + let index = 0; + for (const piece of document.querySelectorAll('piece, nopiece')) + { + const dx = (BOARD_TL_X + BOARD_WIDTH) + 10; + const dy = (BOARD_TL_Y) + (index * (PIECE_WIDTH + 5)) + 5; + + piece.style.left = `${dx}px`; + piece.style.top = `${dy}px`; + + index++; + } + } +} + +window.onresize = setupPieces; + +setupPieces(); + \ No newline at end of file