aboutsummaryrefslogtreecommitdiff
path: root/src/court.js
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2025-11-14 17:16:37 +0100
committerKaran Jayachandra <karan.jayachandra@nxp.com>2025-11-14 17:16:37 +0100
commitbaba5a39de4f699141438b122905888acd50ea53 (patch)
tree38316ad7e769e97f45cde515d8885d813b04a888 /src/court.js
parent27b3a8f4fe5f6259983a7bcf44e7e987f8e19e09 (diff)
Cleaned up the manager
Diffstat (limited to 'src/court.js')
-rw-r--r--src/court.js139
1 files changed, 0 insertions, 139 deletions
diff --git a/src/court.js b/src/court.js
deleted file mode 100644
index 31e828d..0000000
--- a/src/court.js
+++ /dev/null
@@ -1,139 +0,0 @@
-import { Court, Guest, Player } from "./data";
-import { shuffle, Manager, randomLevel, randomStatus } from "./utils";
-
-export class CourtManager extends Manager {
- constructor() {
- super("Court", 12);
- }
- createItem(i) {
- return new Court(i, randomStatus());
- }
- loadItem(data) {
- let id = Number(data.id);
- let status = Boolean(Number(data.status));
- return new Court(id, status);
- }
-}
-
-export class GuestManager extends Manager {
- constructor() {
- super("Guest", 12);
- }
- createItem(i) {
- return new Guest(i, randomStatus());
- }
- loadItem(data) {
- let id = Number(data.id);
- let status = Boolean(Number(data.status));
- let games = data.games;
- return new Guest(id, status, games);
- }
- active(factor) {
- factor = typeof factor !== "undefined" ? factor : 1;
- let data = super.active();
- console.log("Normalize skill by a factor of " + factor + ".");
- let players = data.map(function (p) {
- p.skill = Math.ceil(p.skill / factor);
- return p;
- });
- return players;
- }
-}
-
-export class PlayerManager extends Manager {
- constructor() {
- super("Regular", 71);
- addLoadBehaviour(this);
- this.g = new GuestManager();
- }
- createItem(i) {
- return new Player(i, randomStatus(), randomLevel());
- }
- loadItem(data) {
- let id = Number(data.id);
- let name = data.name;
- let level = Number(data.level);
- let status = Boolean(Number(data.status));
- let games = Number(data.games);
- return new Player(id, status, level, games, name);
- }
- import(data) {
- var lines = data.split("\n");
- var players = [];
- for (var i = 1; i < lines.length; i++) {
- if (lines[i] == undefined || lines[i].trim() == "") {
- continue;
- }
- players.push(parseLineToPlayer(lines[i]));
- }
- console.log("Loaded " + players.length + " Players");
- for (var i = 0; i < players.length; i++) {
- players[i].print();
- }
- this.data = players;
- this.store();
- this.render();
- }
- active(factor) {
- factor = typeof factor !== "undefined" ? factor : 1;
- let data = super.active();
- console.log("Normalize skill by a factor of " + factor + ".");
- let players = data.map(function (p) {
- p.skill = Math.ceil(p.skill / factor);
- return p;
- });
- return players;
- }
- propose(count) {
- console.log("Required players are " + count);
- let factor = Number(document.getElementById("skill").value);
- console.log("Skill normalized by a factor of " + factor + ".");
- let activePlayers = this.active(factor);
- const activeGuests = this.g.active(factor);
- activePlayers = activePlayers.concat(activeGuests);
- console.log("Active players are:");
- console.log(
- activePlayers
- .map((i) => {
- return i.name;
- })
- .join(",")
- );
- const shuffledPlayers = shuffle(activePlayers);
- shuffledPlayers.sort((a, b) => a.totalPlayed - b.totalPlayed);
- const selectedPlayers = shuffledPlayers.slice(0, count);
- selectedPlayers.sort((a, b) => a.level - b.level);
- console.log("Selected players are:");
- console.log(
- selectedPlayers
- .map((i) => {
- return i.name;
- })
- .join(",")
- );
- return selectedPlayers;
- }
-}
-
-function parseLineToPlayer(data) {
- var info = data.split(",");
- var id = Number(info[0].trim());
- var name = info[1].trim() + " " + info[2].trim();
- var level = Number(info[3].trim());
- return new Player(id, true, level, 0, name);
-}
-
-function addLoadBehaviour(p) {
- const f = document.querySelector("#player-load input[type=file]");
- f.addEventListener("change", () => {
- const file = f.files[0];
- let importData;
- console.log("Loading data from " + file.name);
- const reader = new FileReader();
- reader.onload = function (e) {
- importData = reader.result;
- p.import(importData);
- };
- reader.readAsText(file);
- });
-}