diff options
author | David McMackins II <contact@mcmackins.org> | 2017-08-01 06:29:07 -0500 |
---|---|---|
committer | David McMackins II <contact@mcmackins.org> | 2017-08-01 06:29:07 -0500 |
commit | 8a7f2c7449f2309931ba91c35a2ea3c324101396 (patch) | |
tree | ea514ee4462321e0b997a0997ad42b397750e5db | |
parent | df0e7abb5ce332cec7eea386a087a7b8120b8a34 (diff) |
Pre-allocate piece list
-rw-r--r-- | serverthread.lua | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/serverthread.lua b/serverthread.lua index 3b8d381..50a5d92 100644 --- a/serverthread.lua +++ b/serverthread.lua @@ -53,19 +53,30 @@ function Server:_cleanup() self._srv:close() end +function Server:_addpiece(new) + for i,piece in ipairs(self._pieces) do + if not piece then + self._pieces[i] = new + return + end + end +end + function Server:_initrow(start, y) local board_dim = BOARD_SIZE / boardsqsize() for i=0,3 do local x = start + i * 2 - table.insert(self._pieces, Piece(x, y, 1)) - table.insert(self._pieces, Piece(board_dim - (x - 1), - board_dim - (y - 1), - 2)) + self:_addpiece(Piece(x, y, 1)) + self:_addpiece(Piece(board_dim - (x - 1), board_dim - (y - 1), 2)) end end function Server:_resetgame() self._pieces = {} + for _ = 1,32 do + table.insert(self._pieces, nil) + end + self:_initrow(2, 1) self:_initrow(1, 2) self:_initrow(2, 3) |