papercats/game-server.js
2017-02-24 18:57:13 -06:00

79 lines
1.6 KiB
JavaScript

var GRID_SIZE = 80;
var CELL_WIDTH = 40;
var Player = require("./player.js");
function Game(id)
{
var players = [];
var newPlayers = [];
var frame = 0;
var filled = 0;
var grid = new Grid(GRID_SIZE, function(row, col, before, after) {
if (!!after ^ !!before)
{
if (after)
filled++;
else
filled--;
}
});
this.id = id;
this.addPlayer = function(client, name) {
var start = findEmpty(grid);
if (!start)
return false;
var params = {
posX: start.col * CELL_WIDTH,
posY: start.row * CELL_WIDTH,
currentHeading: getRandomInt(0, 4),
name: name,
num: players.length
}
var p = new Player(false, grid, params);
p.client = client;
player.push(p);
newPlayer.push(p);
client.emit("game", {players, })
return true;
}
}
function findEmpty(grid)
{
var available = [];
for (var r = 1; r < grid.size - 1; r++)
for (var c = 1; c < grid.size - 1; c++)
{
var cluttered = false;
checkclutter: for (var dr = -1; dr <= 1; dr++)
{
for (var dc = -1; dc <= 1; dc++)
{
if (grid.get(r + dr, c + dc))
{
cluttered = true;
break checkclutter;
}
}
}
if (!cluttered)
available.push({row: r, col: c});
}
if (available.length === 0)
return null;
else
return available[Math.floor(available.length * Math.random())];
}
module.exports = Game;