From 1027aa704628094c42d46104d99f40936a7a5b52 Mon Sep 17 00:00:00 2001 From: edoardoo Date: Sun, 9 Aug 2015 06:23:13 +0200 Subject: [PATCH] initial commit --- public/images/active.png | Bin 0 -> 37116 bytes public/images/neutral.png | Bin 0 -> 40274 bytes public/images/touched.png | Bin 0 -> 29746 bytes public/images/unit.png | Bin 0 -> 37754 bytes public/index.html | 6 +- public/scripts/functions.js | 224 ++++++++++++++------------------- public/style/style.less | 23 +++- sample_problems/problem_1.json | 2 +- 8 files changed, 120 insertions(+), 135 deletions(-) create mode 100644 public/images/active.png create mode 100644 public/images/neutral.png create mode 100644 public/images/touched.png create mode 100644 public/images/unit.png diff --git a/public/images/active.png b/public/images/active.png new file mode 100644 index 0000000000000000000000000000000000000000..b58214202aa8a50e6800fd4548a3c4d48041eb52 GIT binary patch literal 37116 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 Ee|~ZD9smFU literal 0 HcmV?d00001 diff --git a/public/images/neutral.png b/public/images/neutral.png new file mode 100644 index 0000000000000000000000000000000000000000..49d209f086c8f718c6f12f7e19a29edb5b133bd1 GIT binary patch literal 40274 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 literal 0 HcmV?d00001 diff --git a/public/images/touched.png b/public/images/touched.png new file mode 100644 index 0000000000000000000000000000000000000000..e6deff9e6138944dfd2d79f0311659936af379c1 GIT binary patch literal 29746 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 Xlb28A5 literal 0 HcmV?d00001 diff --git a/public/images/unit.png b/public/images/unit.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdef446b2f312f3b069cc43849645f59c047ed5 GIT binary patch literal 37754 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 w-h{h6v;gzY@Aim%+Auf9_1q}N%-T(jq literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index 2732b7c..5bc309d 100644 --- a/public/index.html +++ b/public/index.html @@ -6,11 +6,15 @@ -
+
+ Index:
+ Score:
+ +
diff --git a/public/scripts/functions.js b/public/scripts/functions.js index 33c5bf7..3519d37 100644 --- a/public/scripts/functions.js +++ b/public/scripts/functions.js @@ -1,181 +1,151 @@ var points = 0; var totalRenders = 0; -function updateDimensions( dimension ){ - less.modifyVars({"@sizeWidth":dimension+"px"}); +var urlToImageMap = {}; + +function loadImageGroup(urls, onCompleteFunc) { + var numImagesNotYetLoaded = urls.length; + urlToImageMap = {}; + var markLoaded = function() { + if (--numImagesNotYetLoaded == 0) + onCompleteFunc(urlToImageMap); + } + + for (var i = 0; i < urls.length; i++) { + var img = new Image(); + img.onload = markLoaded; + img.src = urls[i]; + urlToImageMap[urls[i]] = img; + } } function prePopulate(honeyCells){ var honeyCells = JSON.parse(honeyCells); + var urls = [ + 'images/neutral.png', + 'images/active.png', + 'images/touched.png', + 'images/unit.png', - if( honeyCells.constructor === Array){ - for (var i = 0; i < honeyCells.length; i++) { - populateHoneycomb( honeyCells[i], i ); - }; - }else{ - populateHoneycomb( honeyCells , 0); - } + ]; + + loadImageGroup(urls, function(urlToImageMap) { + //all are loaded. draw to canvas here + if( honeyCells.constructor === Array){ + for (var i = 0; i < honeyCells.length; i++) { + populateHoneycomb( honeyCells[i], i ); + + }; + }else{ + document.getElementById("honeyComb").innerHTML=""; + populateHoneycomb( honeyCells , 0); + } + }); + } -function populateHoneycomb( honeyCells , index){ - // honeyCells = jsonExample; +function populateHoneycomb( honeyCells , index){ + var height = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight; var width = "innerWidth" in window ? window.innerWidth : document.documentElement.offsetWidth; - - // var cellWidth = ( height/honeyCells.height )*Math.sqrt(3); - // if( width/honeyCells.width < height/honeyCells.height ){ - var cellWidth = (width - honeyCells.width)/(honeyCells.width+1); - // } - - - updateDimensions( cellWidth ); - - var horizontal = false; - if(width/height > 1){ - horizontal = true; - } - - var honeyCombHorizontal = false; - - if( honeyCells.width/honeyCells.height > 1){ - honeyCombHorizontal = true; - } - - var honeyComb = document.getElementById("honeyComb"); - var renderedHoneyComb = document.getElementById("renderedHoneyComb"); - renderedHoneyComb.innerHTML=""; - if( typeof honeyCells.score == "undefined"){ + var cellWidth = width/(honeyCells.width); + var cellHeigth = (cellWidth / Math.sqrt(3))*2; + var canvas = document.createElement("canvas"); + canvas.id = "canvas_"+index; + canvas.width = honeyCells.width*cellWidth; + var heightDifference = 0; + for( var i = 0; i < honeyCells.height; i++){ + heightDifference = ((cellHeigth-(cellHeigth/2))/2)*i; + } + canvas.height = honeyCells.height*cellHeigth - heightDifference; + document.getElementById("honeyComb").appendChild(canvas); + + canvas.setAttribute("data-index", index); + + if( typeof honeyCells.score == "undefined"){ honeyCells.score = 0; } - honeyComb.innerHTML = "
Index: "+index+"
"; - honeyComb.innerHTML += "
Score:"+honeyCells.score+"
"; - - - for (var i = honeyCells.height - 1; i >= 0; i--) { - var even = (i%2 == 0) ? "even" : ""; - - var container = document.createElement('div'); - container.className = "hex-row " + even; - honeyComb.appendChild(container); - - for (var j = honeyCells.width - 1; j >= 0; j--) { - - var hexCell = document.createElement("div"); - hexCell.className = "hex"; - - container.appendChild(hexCell); - - var topPart = document.createElement('div'); - topPart.className = "top"; - var middlePart = document.createElement('div'); - middlePart.className = "middle"; - var bottomPart = document.createElement('div'); - bottomPart.className = "bottom"; - - hexCell.appendChild(topPart); - hexCell.appendChild(middlePart); - hexCell.appendChild(bottomPart); - + canvas.setAttribute("data-score", honeyCells.score ); + canvas.className += " canvasRendered"; + if(index == 0){ + canvas.className += " visible"; + updateLabels(document.getElementById("canvas_0")); + } + var context = canvas.getContext('2d'); + + for (var i = 0; i < honeyCells.height; i++) { + var even = (i%2 == 0) ? true : false; + for (var j = 0; j < honeyCells.width; j++) { + var startx = (even) ? j*cellWidth : (j*cellWidth)+(cellWidth*0.5); + var starty = i*cellHeigth-((cellHeigth-(cellHeigth/2))/2)*i; + context.drawImage(urlToImageMap['images/neutral.png'], startx, starty , cellWidth, cellHeigth); }; - - }; - addHexDetails( honeyCells ); - - renderImage( index ); - totalRenders++; - removeHexs(); + addDetails( honeyCells, cellWidth, cellHeigth, context ); + } -function addHexDetails( honeyCells ){ - setFilled( honeyCells, honeyCells.filled, "active" ); +function addDetails( honeyCells, cellWidth, cellHeigth, context ){ + + setFilled( honeyCells, honeyCells.filled, "active" , cellWidth, cellHeigth, context); if(honeyCells.touched){ - setFilled( honeyCells, honeyCells.touched, "touched" ); + setFilled( honeyCells, honeyCells.touched, "touched" , cellWidth, cellHeigth, context); } if(honeyCells.unit){ - setFilled( honeyCells, honeyCells.unit, "unitMember" ); + setFilled( honeyCells, honeyCells.unit, "unit" , cellWidth, cellHeigth, context); } } -function removeHexs(){ - var honeyComb = document.getElementById("honeyComb"); - honeyComb.innerHTML = ""; -} -function setFilled( honeyCells, cellsToCheck, className ){ - // honeyCells = jsonExample; - var hexCells = document.getElementsByClassName("hex"); +function setFilled( honeyCells, cellsToCheck, className, cellWidth, cellHeigth, context ){ + // honeyCells = jsonExample; for (var i = 0; i < cellsToCheck.length; i++) { var x = cellsToCheck[i].x; - var y = cellsToCheck[i].y; - var filledCell = ( y * honeyCells.width ) + x; - var honeyCell = hexCells[ filledCell ]; - honeyCell.className += " "+className; + var y = honeyCells.height - cellsToCheck[i].y; + var even = ( y % 2 == 0 ) ? true : false; + var startx = (even) ? x*cellWidth : (x*cellWidth)+(cellWidth*0.5); + var starty = y*cellHeigth-((cellHeigth-(cellHeigth/2))/2)*y; + context.drawImage(urlToImageMap['images/'+className+'.png'], startx, starty , cellWidth, cellHeigth); }; } -function renderImage(index){ - html2canvas(document.getElementById("honeyComb")).then(function(canvas) { - canvas.id = "rendered_"+index; - canvas.className = "renderedCanvas"; - if(index == 0){ - canvas.className += " visible"; - } - document.getElementById("renderedHoneyComb").appendChild(canvas); - totalRenders--; - if( totalRenders == 0){ - document.getElementById("controlBar").className += " visible"; - } - - }); -} -function orderRenderedCanvas(){ - renders = [].slice.call(renders); - renders.sort(function(a,b){ - if(a.id.split("_")[1] == 0){ - a.className += " visible"; - } - if(a.id.split("_")[1] < b.id.split("_")[1] ){ - return -1; - } - }); - var container = document.getElementById("renderedHoneyComb"); - container.innerHTML = ""; - for (var i = 0; i < renders.length; i++) { - container.appendChild(renders[i]); - }; - // 17:43 -} function slideBack(){ - var actual = document.getElementById("renderedHoneyComb").getElementsByClassName("visible")[0]; + var actual = document.getElementById("honeyComb").getElementsByClassName("visible")[0]; var actualId = actual.id.split("_")[1]; if(actualId > 0){ actualId--; - actual.className = "renderedCanvas"; - document.getElementById("rendered_"+actualId).className += " visible"; + actual.className = "canvasRendered"; + document.getElementById("canvas_"+actualId).className += " visible"; } + updateLabels(document.getElementById("canvas_"+actualId)); +} +function updateLabels( e ){ + document.getElementById("score").innerHTML = e.getAttribute("data-score"); + document.getElementById("index").innerHTML = e.getAttribute("data-index"); + } function slideForward(){ - var actual = document.getElementById("renderedHoneyComb").getElementsByClassName("visible")[0]; + var actual = document.getElementById("honeyComb").getElementsByClassName("visible")[0]; var actualId = actual.id.split("_")[1]; - if(actualId < document.getElementsByClassName("renderedCanvas").length - 1){ + if(actualId < document.getElementsByClassName("canvasRendered").length - 1){ actualId++; - actual.className = "renderedCanvas"; - document.getElementById("rendered_"+actualId).className += " visible"; + actual.className = " canvasRendered"; + document.getElementById("canvas_"+actualId).className += " visible"; } + updateLabels(document.getElementById("canvas_"+actualId)); } function hasClass(el, cls) { @@ -211,6 +181,7 @@ function populateBoard(){ for (var i = rankings.length - 1; i >= 0; i--) { if( rankings[i].teamId == 235 ){ + results += "

Updated "+hour+"h "+minutes+"m "+seconds+"s

"; results += "

Cazziammolla Placement: "+rankings[i].rank+"

"; results += "

with a score of: "+rankings[i].score+"

"; @@ -275,12 +246,11 @@ function checkKey(e) { e = e || window.event; - if ( document.getElementById("controlBar").className.indexOf("visible") != -1 ) { if (e.keyCode == '37') { slideBack(); }else if(e.keyCode == '39') { slideForward(); } - } + } // jsonExample = {"height":15,"width":15,"sourceSeeds":[0],"units":[{"members":[{"x":0,"y":0}],"pivot":{"x":0,"y":0}}],"id":1,"filled":[{"x":2,"y":4},{"x":3,"y":4},{"x":4,"y":4},{"x":5,"y":4},{"x":6,"y":4},{"x":11,"y":4},{"x":2,"y":5},{"x":8,"y":5},{"x":11,"y":5},{"x":2,"y":6},{"x":11,"y":6},{"x":2,"y":7},{"x":3,"y":7},{"x":4,"y":7},{"x":8,"y":7},{"x":11,"y":7},{"x":2,"y":8},{"x":9,"y":8},{"x":11,"y":8},{"x":2,"y":9},{"x":8,"y":9},{"x":2,"y":10},{"x":3,"y":10},{"x":4,"y":10},{"x":5,"y":10},{"x":6,"y":10},{"x":9,"y":10},{"x":11,"y":10}],"sourceLength":100}; diff --git a/public/style/style.less b/public/style/style.less index e57b309..e08fb33 100644 --- a/public/style/style.less +++ b/public/style/style.less @@ -49,20 +49,28 @@ audio{ margin: 0 auto; text-align: center; z-index: 999; - display: none; + // display: none; &.visible{ display: block; } + .lefting{ + background: rgba(20,20,20, .5); + color: white; + float: left; + padding: 10px; + + } } -#renderedHoneyComb{ +#honeyComb{ canvas{ - height: 700px; position: absolute; display: none; + height: 100%; + &.visible, &:first-child{ + display: block; + } } - canvas.visible{ - display: block; - } + } #leaderBoard:extend(.transition) { position: fixed; @@ -130,6 +138,9 @@ audio{ background-color: rgba(175, 0, 198, 0.29); } +.canvasRendered{ + background-color: #333; +} .hex { float: left; margin-left: @border; diff --git a/sample_problems/problem_1.json b/sample_problems/problem_1.json index 7946336..73f44e9 100644 --- a/sample_problems/problem_1.json +++ b/sample_problems/problem_1.json @@ -1 +1 @@ -{"height":15,"width":15,"sourceSeeds":[0],"units":[{"members":[{"x":0,"y":0}],"pivot":{"x":0,"y":0}}],"id":1,"filled":[{"x":2,"y":4},{"x":3,"y":4},{"x":4,"y":4},{"x":5,"y":4},{"x":6,"y":4},{"x":11,"y":4},{"x":2,"y":5},{"x":8,"y":5},{"x":11,"y":5},{"x":2,"y":6},{"x":11,"y":6},{"x":2,"y":7},{"x":3,"y":7},{"x":4,"y":7},{"x":8,"y":7},{"x":11,"y":7},{"x":2,"y":8},{"x":9,"y":8},{"x":11,"y":8},{"x":2,"y":9},{"x":8,"y":9},{"x":2,"y":10},{"x":3,"y":10},{"x":4,"y":10},{"x":5,"y":10},{"x":6,"y":10},{"x":9,"y":10},{"x":11,"y":10}],"sourceLength":100} \ No newline at end of file +{"height":15,"width":15,"sourceSeeds":[0],"units":[{"members":[{"x":0,"y":0}],"pivot":{"x":0,"y":0}}],"id":1,"touched":[{"x":2,"y":4}],"filled":[{"x":2,"y":4},{"x":3,"y":4},{"x":4,"y":4},{"x":5,"y":4},{"x":6,"y":4},{"x":11,"y":4},{"x":2,"y":5},{"x":8,"y":5},{"x":11,"y":5},{"x":2,"y":6},{"x":11,"y":6},{"x":2,"y":7},{"x":3,"y":7},{"x":4,"y":7},{"x":8,"y":7},{"x":11,"y":7},{"x":2,"y":8},{"x":9,"y":8},{"x":11,"y":8},{"x":2,"y":9},{"x":8,"y":9},{"x":2,"y":10},{"x":3,"y":10},{"x":4,"y":10},{"x":5,"y":10},{"x":6,"y":10},{"x":9,"y":10},{"x":11,"y":10}],"sourceLength":100} \ No newline at end of file