GithubHelp home page GithubHelp logo

node-binaryarray's Introduction

binaryarray

NPM
Build Status Coverage Status

install

npm i binaryarray

usage

simple

var BinaryArray = require('binaryarray');
var all_off = BinaryArray.loadFromArray([0,0,0,0,0,0,0,0]);
var all_on = BinaryArray.loadFromArray([1,1,1,1,1,1,1,1]);

application1

  • event flag
var BinaryArray = require('binaryarray');

var EVENT_CLEAR = {
    TUTORIAL : 0,
    QUEST1 : 1,
    QUEST2 : 2,
    QUEST3 : 3,
    QUEST4 : 4,
    QUEST5 : 5,
    QUEST6 : 6,
    LASTBOSS : 7,
}
var EVENT_CLEAR_MAX = Math.max.apply(Math, Object.keys(EVENT_CLEAR).map(function(k){ return EVENT_CLEAR[k] })) + 1;

var ba = new BinaryArray(EVENT_CLEAR_MAX)

ba.bitOn(EVENT_CLEAR.TUTORIAL);
ba.bitOn(EVENT_CLEAR.QUEST1);
ba.bitOn(EVENT_CLEAR.QUEST4);

var save = ba.toArray();
var ba2 = BinaryArray.loadFromArray(save);
console.log(save);
console.log(ba2.toArray());

ba2.bitOn(2);
ba2.bitOn(3);
ba2.bitOff(4);
console.log(ba.toHexString())
console.log(ba2.toHexString())


if(ba.at(EVENT_CLEAR.QUEST4)) console.log("ok")
if(!ba2.at(EVENT_CLEAR.QUEST4)) console.log("ok")

  • typescript
import BinaryArray = require('binaryarray')

enum EVENT_CLEAR {
    TUTORIAL,
    QUEST1,
    QUEST2,
    QUEST3,
    QUEST4,
    QUEST5,
    QUEST6,
    LASTBOSS,
    _SIZEOF
}
const ba = new BinaryArray(EVENT_CLEAR._SIZEOF)

ba.bitOn(EVENT_CLEAR.TUTORIAL);
ba.bitOn(EVENT_CLEAR.QUEST1);
ba.bitOn(EVENT_CLEAR.QUEST4);

const save = ba.toArray();
const ba2 = BinaryArray.loadFromArray(save);
console.log(save);
console.log(ba2.toArray());

ba2.bitOn(2);
ba2.bitOn(3);
ba2.bitOff(4);
console.log(ba.toHexString())
console.log(ba2.toHexString())

if(ba.at(EVENT_CLEAR.QUEST4)) console.log("ok")
if(!ba2.at(EVENT_CLEAR.QUEST4)) console.log("ok")

application2

  • job category
"use strict"
const BinaryArray = require("binaryarray")

const JOB = Object.freeze({
    NONE : 0,
    FIGHTER : 1,
    MAGE : 2,
    PRIEST : 3,
    MONK : 4,
    KNIGHT : 5,
    SUMMONER : 6,
});

const JOB_MAX = Math.max.apply(Math, Object.keys(JOB).map(k => JOB[k] )) + 1;

let JOB_GROUP = {
    TANK : BinaryArray.deserialize([
        'FIGHTER',
        'MONK',
        'KNIGHT'
    ], JOB, JOB_MAX),
    CASTER : BinaryArray.deserialize([
        'MAGE',
        'PRIEST',
        'SUMMONER'
    ], JOB, JOB_MAX),
    HEALER : BinaryArray.deserialize([
        'PRIEST'
    ], JOB, JOB_MAX),
    EXJOB : BinaryArray.deserialize([
        'SUMMONER',
        'KNIGHT'
    ], JOB, JOB_MAX),
}

let job_id = JOB.FIGHTER;
if( JOB_GROUP.TANK.at(job_id) ){
    console.log("tank job")
}else{
    console.log("not tank job")
}

node-binaryarray's People

Contributors

you21979 avatar

Watchers

 avatar  avatar

node-binaryarray's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.