UNPKG

celestial-moniker-generator

Version:

Generate a vector of `n` believable celestial (planetary) names using hidden Markov model.

2 lines (1 loc) 3.36 kB
!function(a,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((a="undefined"!=typeof globalThis?globalThis:a||self)["celestial-moniker-generator"]={})}(this,(function(a){"use strict";String.prototype.toTitleCase=function(){return this.toLowerCase().split(" ").map((function(a){return a.charAt(0).toUpperCase()+a.slice(1)})).join(" ")};const o=["cen-tau-ri","pro-xi-ma","al-pha","pro-xi-mus","ter-ra","sa-turn","ju-pi-ter","mer-cu-ry","ve-nus","u-ra-nus","mars","nep-tune","plu-to","ni-bi-ru","tra-pist","zeus","aph-ro-dite","a-res","heph-aes-tus","ty-phoon","da-scher","en-dor","ka-mi-no","qua-sar","no-va","om-ni-sen","dune","a-ra-kis","gla-tius","co-do-mi-ni-um","dor-sai","o-si-mio","he-li-os","leo","hein-lein","a-ca-mar","ach-ra-dy","a-di-ge-on","a-las-tria","al-drea","von-tria","al-di-bran","al-ge-ron","ach-eon","a-lon-dra","cyg-nus","a-ri-done","a-ri-da-ni","lep-tus","am-leth","am-di-vian","om-ri-con","ma-jo-ris","mi-no-ris","leo-nis","an-do-ria","an-go-sia","ar-ge-lius","ar-gus","per-cii","pro-me-thi-us","the-os","ar-ret","ar-va-da","au-re-lia","ba-lon-si","bar-son","ba-ri-di-on","ben-zar","ben-thos","kup-sic","bo-kara","bo-la-rus","bo-ra-dis","bos-lic","bren-ta-lia","bri-toid","he-lia","cal-do-nia","cal-dos","cal-leb","ca-li-os","ca-mus","ca-no-pius","car-da-sia","cas-tal","ca-tu-lia","ce-ti","cor-van","co-ri-dan","cyg-nia","cyg-net","da-ka-ra","da-lan","da-nu-la","oxi-lia","dav-los","de-cos","de-des-tris","cen-tris","cat-los","der-bia","der-mi-nia","de-ni-us","nig-mus","stag-ni-us","spho-li-us","shpo-rio","dre-on","val-les","al-pes","al-pus","xar-ria","cor-do-via","met-ne-ria","cos-ma-dov","ju-ne-ria","del-ta","o-rio-na","ci-ca-da","am-ne-li-um","noe-li-um","au-ra","au-ro-ra","em-bo-ria","phan-tax","ob-lox","ob-li-via","za-thu-ra","ar-chea","cen-tus","ep-si-lon","au-pho-ria","au-ro-ria","ma-ri-dia","po-tel-mia","hy-pho-ria","ti-tan","la-vi-tan","no-mi-cron","mag-nus","kep-lar","del-phi","nim-bus","am-phus","mor-phus","lamb-dus","dus-to-pia","mo-pi-um","mo-li-um","pho-ri-um","pho-ri-oso","oso-li-um","xe-li-um","so-li-sia","so-lus","ap-po-lus","pho-bos","chro-nos","as-tos","seg-mos","co-los","dei-mos","cog-nus","sig-mus","co-ro-li-os","pe-ri-li-os","sep-tus","mes-mus","op-tus","ne-bu-lus","hec-tus","me-gus","gi-gus","te-rus","pe-tus","lu-mus","pri-mus","op-ti-mus","ori-gus","xe-lo-phus","meg-lo-vus","al-pha-ni-us","es-la-var","cel-les-ti-us","stel-le-ra-sus","ra-le-os","pa-go-ya","pul-sar"],i=o.map((a=>a.split("-"))).flat(),e=[...new Set(i)];const s=e.length+1,r=((a,o,i=0)=>new Array(a).fill(null).map((()=>new Array(o).fill(i))))(s,s);for(const a of o){const o=a.split("-").map((a=>e.indexOf(a)));if(o.length>1){const a=o.slice(0,-1),i=o.slice(1);for(let o=0;o<a.length;o++)r[a[o]][i[o]]+=1}const i=o[o.length-1];r[i][s-1]+=1}const n=["prime","","B","","alpha","","proxima","","IV","","V","","C","","VI","","VII","","VIII","","X","","IX","","D","","",""];a.generate_celestial_monikers=function(a){const o=a;let i=0,t="";const l=[];for(;i<o;){let a=Math.floor(2*Math.random())+2,o=Math.floor(Math.random()*(s-2));for(t="";a>0;){for(;r[o].every((a=>1!==a));)o=Math.floor(Math.random()*(s-2));t+=e[o],o=r[o].findIndex((a=>1===a)),a-=1}const u=Math.floor(Math.random()*n.length);t=t.toTitleCase()+" "+n[u],l.push(t.trim()),i+=1}return l}}));