grrrisu/Simulator

View on GitHub
examples/node/game_of_life/receiver.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";

import $ from 'jquery';

module.exports = class Receiver {

  constructor(socket){
    this.socket = socket;
    this.listen(socket);
  }

  listen(socket){
    socket.on('game_of_life.build', (data) => {
      this.renderMatrix(JSON.parse(data.answer));
    });

    socket.on('game_of_life.init', (data) => {
      this.renderMatrix(JSON.parse(data.answer));
    });

    socket.on('game_of_life.sim', (data) => {
      console.log("data received", data);
      let cell = data.answer;
      let element = $('.cell[data-coord="'+cell.x+':'+cell.y+'"]');
      if(cell.alive) {
        element.addClass('alive');
      } else {
        element.removeClass('alive');
      }
    });
  }

  renderMatrix(fields){
    let matrix = document.getElementById("matrix");
    $(matrix).html('');

    fields.forEach((y) => {
      let row = document.createElement("div");
      $(row).addClass('clearfix');
      matrix.appendChild(row);
      y.forEach((cell) => {
        let alive_css = cell.alive ? ' alive' : '';
        $(row).append('<div class="cell'+alive_css+'" data-coord="'+cell.x+':'+cell.y+'"></div>');
      });
    });
  }

}