suranadira-core
Version:
Strokes, Elements, Words and Phases of Suranadira
349 lines (341 loc) • 8.43 kB
JavaScript
/**
* Suranadira Words.
*
* @module
* @exports (default) suranadiraWords
* @exports getWordID
* @exports getCompositionByWordID
* @exports countWords
*
* @link suranadira-core/words.suranadira.js
* @file A list of Suranadira Words and helper functions.
* @memberof suranadira-core
*
* @author Armands Strazds <strazds@gmal.com>
* @since 0.0.1
*/
/**
* suranadiraWords, an object list defining the structure of the Suranadira Words.
*
* Syntax:
* @property {Array} values, an array of truth values
* @property {Array} elements, an array of arrays: ["element", offset]
*
* @since 0.0.1
* @access public
*
*/
const suranadiraWords = {
0: {
values: [0, 0, 0, 0],
elements: [["M", 0], ["M", 0], ["M", 0], ["M", 0]]
},
1: {
values: [0, 0, 0, 0],
elements: [["AI", 0], ["M", 0], ["M", 0], ["M", 0]]
},
2: {
values: [0, 0, 0, 0],
elements: [["Z", 0], ["IA", 0], ["M", 0], ["M", 0]]
},
3: {
values: [1, 0, 0, 0],
elements: [["J", 1], ["AI", 0], ["M", 0], ["M", 0]]
},
4: {
values: [1, 0, 0, 0],
elements: [["IV", 0], ["IA", 0], ["M", 0], ["M", 0]]
},
5: {
values: [1, 0, 0, 0],
elements: [["I", 0], ["IA", 0], ["M", 0], ["M", 0]]
},
6: {
values: [1, 0, 0, 0],
elements: [["I", 0], ["S", 0], ["AI", 0], ["M", 0]]
},
7: {
values: [0, 1, 0, 0],
elements: [["M", 0], ["IV", 0], ["IA", 0], ["M", 0]]
},
8: {
values: [0, 1, 0, 0],
elements: [["AI", 0], ["IV", 0], ["IA", 0], ["M", 0]]
},
9: {
values: [0, 1, 0, 0],
elements: [["Z", 0], ["I", 0], ["IA", 0], ["M", 0]]
},
10: {
values: [1, 1, 0, 0],
elements: [["J", 1], ["I", 1], ["AI", 0], ["M", 0]]
},
11: {
values: [1, 1, 0, 0],
elements: [["VI", 0], ["I", 1], ["AI", 0], ["M", 0]]
},
12: {
values: [1, 1, 0, 0],
elements: [["VI", 0], ["I", 1], ["Z", 0], ["IA", 0]]
},
13: {
values: [1, 1, 0, 0],
elements: [["I", 1], ["I", 1], ["Z", 0], ["IA", 0]]
},
14: {
values: [0, 0, 1, 0],
elements: [["M", 0], ["M", 0], ["VI", 0], ["AI", 0]]
},
15: {
values: [0, 0, 1, 0],
elements: [["AI", 0], ["M", 0], ["VI", 0], ["AI", 0]]
},
16: {
values: [0, 0, 1, 0],
elements: [["Z", 0], ["IA", 0], ["VI", 0], ["AI", 0]]
},
17: {
values: [1, 0, 1, 0],
elements: [["J", 0], ["AI", -1], ["IV", 1], ["IA", 1]]
},
18: {
values: [1, 0, 1, 0],
elements: [["IV", 0], ["IA", 0], ["VI", 0], ["AI", 0]]
},
19: {
values: [1, 0, 1, 0],
elements: [["I", 0], ["IA", 0], ["VI", 0], ["AI", 0]]
},
20: {
values: [1, 0, 1, 0],
elements: [["I", 0], ["S", 0], ["I", 1], ["AI", 0]]
},
21: {
values: [0, 1, 1, 0],
elements: [["M", 0], ["IV", 0], ["I", 0], ["IA", 0]]
},
22: {
values: [0, 1, 1, 0],
elements: [["AI", 0], ["IV", 0], ["I", 0], ["S", 0]]
},
23: {
values: [0, 1, 1, 0],
elements: [["Z", 0], ["I", 0], ["I", 0], ["S", 0]]
},
24: {
values: [1, 1, 1, 0],
elements: [["IV", 0], ["I", 0], ["I", 0], ["S", 0]]
},
25: {
values: [1, 1, 1, 0],
elements: [["I", 0], ["I", 0], ["I", 0], ["S", 0]]
},
26: {
values: [0, 0, 0, 1],
elements: [["M", 0], ["M", 0], ["M", 0], ["IV", 0]]
},
27: {
values: [0, 0, 0, 1],
elements: [["AI", 0], ["M", 0], ["M", 0], ["IV", 0]]
},
28: {
values: [0, 0, 0, 1],
elements: [["Z", 0], ["IA", 0], ["M", 0], ["IV", 0]]
},
29: {
values: [1, 0, 0, 1],
elements: [["J", 1], ["AI", 0], ["M", 0], ["VI", 0]]
},
30: {
values: [1, 0, 0, 1],
elements: [["IV", 0], ["IA", 0], ["M", 0], ["IV", 0]]
},
31: {
values: [1, 0, 0, 1],
elements: [["I", 0], ["IA", 0], ["M", 0], ["IV", 0]]
},
32: {
values: [1, 0, 0, 1],
elements: [["I", 0], ["S", 0], ["AI", 0], ["IV", 0]]
},
33: {
values: [0, 1, 0, 1],
elements: [["M", 0], ["VI", 0], ["AI", 0], ["IV", 0]]
},
34: {
values: [0, 1, 0, 1],
elements: [["AI", -1], ["IV", -1], ["AI", 1], ["IV", 1]]
},
35: {
values: [0, 1, 0, 1],
elements: [["Z", 0.5], ["I", 0.5], ["AI", -0.5], ["IV", -0.5]]
},
36: {
values: [1, 1, 0, 1],
elements: [["J", 1], ["I", 1], ["AI", 0], ["IV", 0]]
},
37: {
values: [1, 1, 0, 1],
elements: [["VI", 0], ["I", 1], ["AI", 0], ["IV", 0]]
},
38: {
values: [1, 1, 0, 1],
elements: [["VI", 0], ["I", 1], ["Z", 0], ["I", 0]]
},
39: {
values: [1, 1, 0, 1],
elements: [["I", 1], ["I", 1], ["Z", 0], ["I", 0]]
},
40: {
values: [0, 0, 1, 1],
elements: [["M", 0], ["M", 0], ["VI", 0], ["I", 1]]
},
41: {
values: [0, 0, 1, 1],
elements: [["AI", 0], ["M", 0], ["VI", 0], ["I", 1]]
},
42: {
values: [0, 0, 1, 1],
elements: [["Z", 0], ["IA", 0], ["VI", 0], ["I", 1]]
},
43: {
values: [1, 0, 1, 1],
elements: [["J", 0], ["AI", -1], ["IV", 1], ["I", 1]]
},
44: {
values: [1, 0, 1, 1],
elements: [["IV", 0], ["IA", 0], ["VI", 0], ["I", 1]]
},
45: {
values: [1, 0, 1, 1],
elements: [["I", 0], ["IA", 0], ["VI", 0], ["I", 1]]
},
46: {
values: [1, 0, 1, 1],
elements: [["I", 0], ["S", 0], ["I", 1], ["I", 1]]
},
47: {
values: [0, 1, 1, 1],
elements: [["M", 0], ["IV", 0], ["I", 0], ["I", 0]]
},
48: {
values: [0, 1, 1, 1],
elements: [["AI", 0], ["IV", 0], ["I", 0], ["I", 0]]
},
49: {
values: [0, 1, 1, 1],
elements: [["Z", 0], ["I", 0], ["I", 0], ["I", 0]]
},
50: {
values: [1, 1, 1, 1],
elements: [["VI", 0], ["I", 1], ["I", 1], ["I", 1]]
},
51: {
values: [1, 1, 1, 1],
elements: [["I", 0.5], ["I", 0.5], ["I", 0.5], ["I", 0.5]]
},
52: {
values: [0, 0, 0, 0],
elements: [["H", 0], ["H", 0], ["H", 0], ["H", 0]]
},
53: {
values: [1, 0, 0, 0],
elements: [["J", 0], ["IA", 0], ["M", 0], ["M", 0]]
},
54: {
values: [0, 1, 0, 0],
elements: [["H", 0], ["V", 0], ["A", 0], ["H", 0]]
},
55: {
values: [1, 1, 0, 0],
elements: [["J", 0.5], ["I", 0.5], ["W", 0.5], ["H", -0.5]]
},
56: {
values: [0, 0, 1, 0],
elements: [["H", 1], ["H", 1], ["J", 1], ["AI", 0]]
},
57: {
values: [1, 0, 1, 0],
elements: [["J", 0], ["IA", 0], ["VI", 0], ["AI", 0]]
},
58: {
values: [0, 1, 1, 0],
elements: [["H", 0], ["V", 0], ["i", 0], ["A", 0]]
},
59: {
values: [1, 1, 1, 0],
elements: [["J", 0], ["I", 0], ["I", 0], ["S", 0]]
},
60: {
values: [0, 0, 0, 1],
elements: [["H", 0], ["H", 0], ["H", 0], ["V", 0]]
},
61: {
values: [1, 0, 0, 1],
elements: [["J", 0], ["IA", 0], ["M", 0], ["IV", 0]]
},
62: {
values: [0, 1, 0, 1],
elements: [["H", -1], ["V", -1], ["AI", 0], ["IV", 0]]
},
63: {
values: [1, 1, 0, 1],
elements: [["J", 1], ["I", 1], ["W", 1], ["J", 0]]
},
64: {
values: [0, 0, 1, 1],
elements: [["H", 0.5], ["H", 0.5], ["J", 0.5], ["I", 0.5]]
},
65: {
values: [1, 0, 1, 1],
elements: [["J", 0], ["IA", 0], ["VI", 0], ["I", 1]]
},
66: {
values: [0, 1, 1, 1],
elements: [["H", 0], ["V", 0], ["i", 0], ["i", 0]]
},
67: {
values: [1, 1, 1, 1],
elements: [["J", 0.5], ["I", 0.5], ["I", 0.5], ["I", 0.5]]
}
};
/**
* Get Word ID by Composition of Elements
*
* @param {Array} elements
*/
export const getWordID = elements => {
let words = suranadiraWords;
let c = JSON.stringify(elements);
let a = [];
for (let word in words) {
for (let n = 0; n < elements.length; n++) {
a.push(words[word].elements[n][0]);
}
if (c === JSON.stringify(a)) {
return word;
}
a = [];
}
};
/**
* Get Composition of Elements by Word ID
*
* @param {Number} wordID
*/
export const getCompositionByWordID = wordID => {
let cmp = suranadiraWords[wordID];
cmp = cmp.elements.map(el => el[0]);
return cmp;
};
/**
* Get the Words count
*/
export const countWords = () => 68;
const defaultExport = {
suranadiraWords,
getWordID,
getCompositionByWordID,
countWords
};
export default defaultExport;