From ce1228e42773564f28f835ab8c5c6de916316ada Mon Sep 17 00:00:00 2001 From: Collin Betori Date: Wed, 13 Feb 2019 17:53:32 -0600 Subject: [PATCH 1/4] Testing out a new version of checkers --- 05week/checkers2/checkers.js | 39 ++++++ 05week/checkers2/index.js | 17 +++ 05week/checkers2/package-lock.json | 194 +++++++++++++++++++++++++++++ 05week/checkers2/package.json | 9 ++ 05week/checkers2/test.js | 0 5 files changed, 259 insertions(+) create mode 100644 05week/checkers2/checkers.js create mode 100644 05week/checkers2/index.js create mode 100644 05week/checkers2/package-lock.json create mode 100644 05week/checkers2/package.json create mode 100644 05week/checkers2/test.js diff --git a/05week/checkers2/checkers.js b/05week/checkers2/checkers.js new file mode 100644 index 000000000..195cb08ef --- /dev/null +++ b/05week/checkers2/checkers.js @@ -0,0 +1,39 @@ +'use strict'; + +let createboard = function(){ + for(let row = 0; row === 7; row++){ + const checkersRow = [row]; + for(let column = 0; column === 7; row++){ + + } + } +}; +///////////////////////////////////////////////////////////////////////////////// +let checkersStartPosition = function(){ + let red = [] + let black = []; +} + +let Checker = function(){ + this.color = null; + this.location = null + this.kinged = false; +} +Checker.prototype.createChecker = function(){ + for(){ + + } +} +///////////////////////////////////////////////////////////////////////////////// +let handleChecker = function(){ + +} + +let handleKill = function(){ + +} + +let handleKing = function(){ + +} +///////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/05week/checkers2/index.js b/05week/checkers2/index.js new file mode 100644 index 000000000..b54c44719 --- /dev/null +++ b/05week/checkers2/index.js @@ -0,0 +1,17 @@ +'use strict'; + +const readline = require('readline'); +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}); + +let getPrompt = function(){ + game.board.viewGrid(); + rl.question('which piece?: ', (whichPiece) => { + rl.question('to where?: ', (toWhere) => { + game.moveChecker(whichPiece, toWhere); + getPrompt(); + }); + }); + } diff --git a/05week/checkers2/package-lock.json b/05week/checkers2/package-lock.json new file mode 100644 index 000000000..83d50596c --- /dev/null +++ b/05week/checkers2/package-lock.json @@ -0,0 +1,194 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/05week/checkers2/package.json b/05week/checkers2/package.json new file mode 100644 index 000000000..8fd3a33d0 --- /dev/null +++ b/05week/checkers2/package.json @@ -0,0 +1,9 @@ +{ + "scripts": { + "start": "node index.js", + "test": "mocha" + }, + "devDependencies": { + "mocha": "^5.2.0" + } +} diff --git a/05week/checkers2/test.js b/05week/checkers2/test.js new file mode 100644 index 000000000..e69de29bb From 65f43e7d850ffd1a9548b22d7be9ffa7d8d4e2d0 Mon Sep 17 00:00:00 2001 From: Collin Betori Date: Wed, 13 Feb 2019 18:41:55 -0600 Subject: [PATCH 2/4] Updated checkers2.0 grid works --- 05week/checkers2/checkers.js | 67 ++++++++++++--- 05week/checkers2/oldcheckers.js | 139 ++++++++++++++++++++++++++++++++ 05week/checkers2/package.json | 2 +- 3 files changed, 196 insertions(+), 12 deletions(-) create mode 100644 05week/checkers2/oldcheckers.js diff --git a/05week/checkers2/checkers.js b/05week/checkers2/checkers.js index 195cb08ef..b04485bd2 100644 --- a/05week/checkers2/checkers.js +++ b/05week/checkers2/checkers.js @@ -1,17 +1,60 @@ 'use strict'; +const readline = require('readline'); +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}); +function getPrompt() { + grid(); + rl.question('which piece?: ', (whichPiece) => { + rl.question('to where?: ', (toWhere) => { + game.moveChecker(whichPiece, toWhere); + getPrompt(); + }); + }); + } +///////////////////////////////////////////////////////////////////////////////// -let createboard = function(){ - for(let row = 0; row === 7; row++){ - const checkersRow = [row]; - for(let column = 0; column === 7; row++){ +let grid = function(){ + createGrid(); + viewGrid(); +} + +let createGrid = function(){ + let gridArray = [] + for (let row = 0; row < 8; row++) { + gridArray[row] = []; + for (let column = 0; column < 8; column++) { + gridArray[row].push(null); + } + } +} +let viewGrid = function(){ + let board = " 0 1 2 3 4 5 6 7\n"; + for(let row = 0; row < 7; row++){ + const checkersRow = [row]; + for(let column = 0; column < 8; column++){ + checkersRow.push(' '); } + board += checkersRow.join(' ')+'\n'; } + console.log(board); }; + ///////////////////////////////////////////////////////////////////////////////// -let checkersStartPosition = function(){ - let red = [] - let black = []; +let checkersStartPosition = function(arg){ + let red = [ + [0, 1], [0, 3], [0, 5], [0, 7], + [1, 0], [1, 2], [1, 4], [1, 6], + [2, 1], [2, 3], [2, 5], [2, 7] + ] + let black = [ + [5, 0], [5, 2], [5, 4], [5, 6], + [6, 1], [6, 3], [6, 5], [6, 7], + [7, 0], [7, 2], [7, 4], [7, 6] + ]; + return checkersStartPosition; } let Checker = function(){ @@ -19,10 +62,10 @@ let Checker = function(){ this.location = null this.kinged = false; } -Checker.prototype.createChecker = function(){ - for(){ +Checker.prototype.createChecker = function(arg){ + // for(let i = 0; i { + rl.question('to where?: ', (toWhere) => { + game.moveChecker(whichPiece, toWhere); + getPrompt(); + }); + }); +} +const game = new Game(); +game.start(); +getPrompt(); +module.exports = game; \ No newline at end of file diff --git a/05week/checkers2/package.json b/05week/checkers2/package.json index 8fd3a33d0..cc4e86861 100644 --- a/05week/checkers2/package.json +++ b/05week/checkers2/package.json @@ -1,6 +1,6 @@ { "scripts": { - "start": "node index.js", + "start": "node checkers.js", "test": "mocha" }, "devDependencies": { From 5b8396cc0ba82d5253c24b81858f5bd72aff7f9d Mon Sep 17 00:00:00 2001 From: Collin Betori Date: Thu, 14 Feb 2019 21:45:42 -0600 Subject: [PATCH 3/4] More udpates --- 05week/checkers2/checkers.js | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/05week/checkers2/checkers.js b/05week/checkers2/checkers.js index b04485bd2..aa32980fc 100644 --- a/05week/checkers2/checkers.js +++ b/05week/checkers2/checkers.js @@ -6,6 +6,7 @@ const rl = readline.createInterface({ }); function getPrompt() { grid(); + Checker.prototype.createChecker.map(); rl.question('which piece?: ', (whichPiece) => { rl.question('to where?: ', (toWhere) => { game.moveChecker(whichPiece, toWhere); @@ -43,6 +44,11 @@ let viewGrid = function(){ }; ///////////////////////////////////////////////////////////////////////////////// +let red = [ + [0, 1], [0, 3], [0, 5], [0, 7], + [1, 0], [1, 2], [1, 4], [1, 6], + [2, 1], [2, 3], [2, 5], [2, 7] + ] let checkersStartPosition = function(arg){ let red = [ [0, 1], [0, 3], [0, 5], [0, 7], @@ -58,14 +64,18 @@ let checkersStartPosition = function(arg){ } let Checker = function(){ - this.color = null; + this.color = null this.location = null - this.kinged = false; + this.kinged = false } -Checker.prototype.createChecker = function(arg){ - // for(let i = 0; i { + let checker = new Checker(); + checker.color = "red" + console.log("tesst") + }) } ///////////////////////////////////////////////////////////////////////////////// let handleChecker = function(){ @@ -81,4 +91,11 @@ let handleKing = function(){ } ///////////////////////////////////////////////////////////////////////////////// -getPrompt(); \ No newline at end of file +// getPrompt(); + +// let x = [12, 99, 5, 30]; + +// let gt = n => m=> n Date: Mon, 18 Feb 2019 18:26:09 -0600 Subject: [PATCH 4/4] Checkers Update --- 05week/checkers2/checkers.js | 44 ++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/05week/checkers2/checkers.js b/05week/checkers2/checkers.js index aa32980fc..d884f0b03 100644 --- a/05week/checkers2/checkers.js +++ b/05week/checkers2/checkers.js @@ -6,7 +6,7 @@ const rl = readline.createInterface({ }); function getPrompt() { grid(); - Checker.prototype.createChecker.map(); + Checker.prototype.createChecker(); rl.question('which piece?: ', (whichPiece) => { rl.question('to where?: ', (toWhere) => { game.moveChecker(whichPiece, toWhere); @@ -49,33 +49,57 @@ let red = [ [1, 0], [1, 2], [1, 4], [1, 6], [2, 1], [2, 3], [2, 5], [2, 7] ] -let checkersStartPosition = function(arg){ +let checkersStartPosition = function(colorSwitch){ + if(colorSwitch === "red"){ let red = [ [0, 1], [0, 3], [0, 5], [0, 7], [1, 0], [1, 2], [1, 4], [1, 6], [2, 1], [2, 3], [2, 5], [2, 7] ] + return red + }else{ let black = [ [5, 0], [5, 2], [5, 4], [5, 6], [6, 1], [6, 3], [6, 5], [6, 7], [7, 0], [7, 2], [7, 4], [7, 6] ]; - return checkersStartPosition; + return black + } } -let Checker = function(){ +let Checker = function(color, location, index, kinged){ this.color = null this.location = null + this.index = null this.kinged = false } Checker.prototype.createChecker = function(){ - //for(let i = 0; i<1; i++){ - console.log("test") - red.map((element, index) => { + let playerColor; + + for(let i = 0; i<2; i++){ + let colorSwitch = playSwitcher(playerColor) + + checkersStartPosition(colorSwitch).map((element, index) => { let checker = new Checker(); - checker.color = "red" - console.log("tesst") + checker.color = colorSwitch + checker.location = element; + checker.index = index; + //createGrid.gridArray[element] = "X" + console.log(createGrid.gridArray) }) + + playerColor = "red" +} +} + +let playSwitcher = function(player){ + if(player === "red"){ + player = "black" + return player; + }else{ + player = "red" + return player; + } } ///////////////////////////////////////////////////////////////////////////////// let handleChecker = function(){ @@ -91,7 +115,7 @@ let handleKing = function(){ } ///////////////////////////////////////////////////////////////////////////////// -// getPrompt(); +getPrompt(); // let x = [12, 99, 5, 30];