From 337508e72ad90aabee2c3ba6fe2332d7531fdca3 Mon Sep 17 00:00:00 2001 From: didier amyot Date: Sat, 6 May 2017 10:57:10 -0400 Subject: [PATCH] changed parc to fucking george vernot --- data/articles/saison2017.toml.md | 4 +- data/createshedule.js | 89 ++++++++++++++++++++++++++++++++ script/views/mainPage.js | 27 ++++++++-- 3 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 data/createshedule.js diff --git a/data/articles/saison2017.toml.md b/data/articles/saison2017.toml.md index a7c00e6..fae8e22 100644 --- a/data/articles/saison2017.toml.md +++ b/data/articles/saison2017.toml.md @@ -24,14 +24,14 @@ aura donc aucun match pré-saison. Nous sommes toujours a la **recherche de capitaines**. La case "je veux devenir capitaine" ne fut pas des plus populaire. Nous cherchons donc intensément -cinq capitaines au sang neuf pour diriger cinq équipes au sang chaud. +quatre capitaines au sang neuf pour diriger cinq équipes au sang chaud. En résumé. * La saison debute le **jeudi 18 mai 2017** au parc **[Georges-Vernot](http://bit.ly/2qMdsdm)** * Nous retrouverons le parc [Walter-Stewart](http://bit.ly/2qDlnMW) la semaine du 19 juin -* Il nous manque 5 capitaines +* Il nous manque 4 capitaines """ diff --git a/data/createshedule.js b/data/createshedule.js new file mode 100644 index 0000000..890646e --- /dev/null +++ b/data/createshedule.js @@ -0,0 +1,89 @@ +var _ = require('lodash'); + +var hostTeamsFactory = function(teams){ + var i = 0; + return function(){ + var ret = teams[i]; + i = i + 1; + if(i == teams.length){ + i = 0; + teams = _.shuffle(teams); + } + return ret; + }; +}; + +var getGuestTeams = function(hostTeams, teams){ + return _.difference(hostTeams, teams); +}; + +var getLastTimeTwoTeamHasPlayedAgainst = function(history, team1, team2){ + for(var i = 0; i < history.length; i++){ + var nighGame = history[history.length - i - 1]; + if(nighGame[team1] == team2 || nighGame[team2] == team1){ + return i; + } + } + return -Infinity; +}; + +var initiateScheduleWithHostTeams = function(teams, numberOfNights, numberOfGamePerNight){ + var hostTeams = hostTeamsFactory(teams); + return _.map(_.range(numberOfNights), function(){ + var ret = {}; + _.each(_.range(numberOfGamePerNight), function(){ + ret[hostTeams()] = undefined; + }); + return ret; + }); +}; + +var getBestGuestTeam = function(hostTeam, previousSchedule, possibleGuests){ + + // TODO: FIX ME. + var presiouslyPlayed = _.map(possibleGuests, function(guestTeam){ + return getLastTimeTwoTeamHasPlayedAgainst(previousSchedule, hostTeam, guestTeam); + }); + var m = _.fromPairs(_.zip(presiouslyPlayed, possibleGuests)); + console.log(hostTeam); + console.log(m); + console.log(m[_.min(presiouslyPlayed)]); + console.log('\n\n\n\n'); + return m[_.min(presiouslyPlayed)]; + +}; + +var addGuestTeamToNight = function(night, previousSchedule, teams){ + var hostTeams = _.keys(night); + var nightHistory = 12; + _.each(hostTeams, function(hostTeam){ + var alreadyChoosenTeam = _.compact(_.values(night)); + var prohibitedGuests = _.concat(hostTeams, alreadyChoosenTeam); + var possibleGuests = _.difference(teams, prohibitedGuests); + night[hostTeam] = getBestGuestTeam(hostTeam, previousSchedule, possibleGuests); + }); + return night; +}; + +var addGuestTeams = function(schedule, teams){ + return _.map(schedule, function(night, idx){ + return addGuestTeamToNight(night, schedule.slice(0, idx), teams); + }); +}; + +function createSchedule(teams, numberOfNights, numberOfGamePerNight){ + var schedule = initiateScheduleWithHostTeams(teams, numberOfNights, numberOfGamePerNight); + return addGuestTeams(schedule, teams); +} + +function main(){ + var teams = ['jaune', 'vert', 'bleu', 'rouge', 'gris', 'orange']; + var numberOfNights = 10; + var numberOfGamePerNight = 3; + var schedule = createSchedule(teams, numberOfNights, numberOfGamePerNight); + _.each(schedule, function(night){ + console.log(night, ','); + }); +} + +main(); diff --git a/script/views/mainPage.js b/script/views/mainPage.js index af7832b..3b9985b 100644 --- a/script/views/mainPage.js +++ b/script/views/mainPage.js @@ -112,8 +112,7 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer', 'ar var mainMap = {}; - mainMap.getMap = function(){ - // + mainMap.getWalterStewartMap = function(){ var iframeUrl = "//www.openstreetmap.org/export/embed.html?bbox=-73.55936229228975%2C45.53102667048665%2C-73.55230271816255%2C45.53444249585723&layer=mapnik"; // "//www.openstreetmap.org/export/embed.html?bbox=-73.56355190277101%2C45.5294483312637%2C-73.54943275451662%2C45.53627996625677&layer=mapnik"; // "//www.openstreetmap.org/export/embed.html?bbox=-73.56355190277101%2C45.5294483312637%2C-73.54943275451662%2C45.53627996625677&layer=mapnik"; var externalLink = "http://www.openstreetmap.org/#map=17/45.53216/-73.55692"; var iframeParams = { @@ -131,13 +130,33 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer', 'ar ]; }; + mainMap.getGeorgesVernotMap = function(){ +// " style="border: 1px solid black">
View Larger Map + + var iframeUrl = "//www.openstreetmap.org/export/embed.html?bbox=-73.63185167312623%2C45.560217957150535%2C-73.60361337661745%2C45.57387292040785&layer=mapnik"; + var externalLink = "http://www.openstreetmap.org/#map=17/45.53216/-73.55692"; + var iframeParams = { + style: {border: '1px solid black', 'min-height': '300px'}, + width: '100%', + frameborder: 0, + scrolling: 'no', + marginheight: 0, + src: iframeUrl + }; + return [ + m('iframe', iframeParams), + m('br'), + m('small', m('a', {href: externalLink}, 'Voir la carte')) + ]; + }; + mainMap.view = function(){ return m('div.uk-panel.uk-panel-box',[ m('div.uk-panel-badge.uk-badge', [ m('i.fa.fa-map-o', {style: {'font-size': '1.7em'}}) ]), - m('h3.uk-panel-title', 'Parc Walter-Stewart'), - mainMap.getMap() + m('h3.uk-panel-title', 'Parc Georges-Vernot'), + mainMap.getGeorgesVernotMap() ]); };