Created
March 31, 2016 10:48
-
-
Save hyamamoto/aeeada2adb6fbb2c2c4e1ab42f85d3b6 to your computer and use it in GitHub Desktop.
It gives a text of the choo choo train for your tweet. (Not really sure why I wrote it.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DATA = { | |
ENGINES: ["π"], | |
CARS: ["π","π"], | |
SCENES: ['desert', 'forest', 'beach'], | |
ORBS: ["π","π","β","β"], | |
DESERT_TILES: ["π΅","π΅","π΄","π΄","πͺ","π’","π"], | |
FOREST_TILES: ["π²","π²","π²","π²","π","π³","π³"], | |
BEACH_TILES: ["π΄","π΄","π","π’","πΏ","π"], | |
SEA_TILES:["π¬","π³","π"], | |
HELL_TILES: ["π₯","π»","π","π"], | |
HEAVEN_TILES: ["π―πΌ","β¨","π","πΌ"], | |
SPACE_TILES: ["πΎ","π½","π«","π","π°"], | |
UNDERSEA_TILES: ["π","π","π¬","π"] | |
}; | |
function randint(min, max) { | |
return Math.floor( Math.random() * (max - min + 1) ) + min; | |
} | |
function randchoice(arr) { | |
return arr[Math.floor(Math.random() * arr.length)]; | |
} | |
function pick_engine() { | |
var leading_spaces = randint(0,9); | |
var engine = ""; | |
for (var i = 0; i < leading_spaces; i++) { | |
engine += " "; | |
} | |
engine += randchoice(DATA.ENGINES); | |
return engine; | |
} | |
function pick_body() { | |
var body = ""; | |
var cars = randint(1,8); | |
for (var i = 0; i < cars; i++) { | |
body += randchoice(DATA.CARS); | |
} | |
// body += "π¨"; | |
return body; | |
} | |
function make_sky() { | |
var sky = ""; | |
var orb = randchoice(DATA.ORBS); | |
// It appears most clients don't let tweets lead with whitespace. | |
// This commented out code would have put arbitrary whitespace in the sky | |
// But for now we'll just put the sun or moon or cloud on the far left | |
// for _ in range(20): | |
// sky += " " | |
// orb_placement = random.randint(0,len(sky)-1) | |
// sky = sky[:orb_placement] + orb + sky[orb_placement:] | |
sky = orb; | |
return sky; | |
} | |
function make_train() { | |
var scene = randchoice(DATA.SCENES); | |
if (randint(1, 12) == 12) { | |
scene = "special"; | |
} | |
var sky = make_sky(); | |
var landscape_train; | |
if (scene == "desert"){ | |
landscape_train = make_desert(); | |
} else if (scene == "forest") { | |
landscape_train = make_forest(); | |
} else if (scene == "beach") { | |
landscape_train = make_beach(); | |
} else if (scene == "special") { | |
sky = ""; | |
landscape_train = make_special(); | |
} | |
var landscape = landscape_train[0]; | |
var train = landscape_train[1]; | |
mise_en_scene = ( | |
sky + "\n" + | |
landscape[0] + "\n" + | |
landscape[1] + "\n" + | |
train + "\n" + | |
landscape[2] + "\n" + | |
landscape[3]); | |
return mise_en_scene; | |
} | |
function make_desert() | |
{ | |
var train = pick_engine() + pick_body(); | |
var landscape = []; | |
var tileset = DATA.DESERT_TILES; | |
for (var i = 0; i < 4; i++) { | |
var row = ""; | |
for (var spot = 0; spot < 20; spot++) { | |
var tile = randint(0, 1000); | |
if (tile % 10 == 0) { | |
row += randchoice(tileset); | |
} else { | |
row += " "; | |
} | |
} | |
landscape.push(row); | |
} | |
return [landscape, train]; | |
} | |
function make_forest() | |
{ | |
var train = pick_engine() + pick_body(); | |
var landscape = []; | |
var tileset = DATA.FOREST_TILES; | |
for (var i = 0; i < 4; i++) { | |
var row = ""; | |
for (var spot = 0; spot < 20; spot++) { | |
var tile = randint(0, 1000); | |
if (tile % 10 == 0) { | |
row += randchoice(tileset); | |
} else { | |
row += " "; | |
} | |
} | |
landscape.push(row); | |
} | |
return [landscape, train]; | |
} | |
function make_beach() { | |
var train = pick_engine() + pick_body(); | |
var landscape = []; | |
var tileset = DATA.BEACH_TILES; | |
for (var i = 0; i < 3; i++) { | |
var row = ""; | |
for (var spot = 0; spot < 20; spot++) { | |
var tile = randint(0, 1000); | |
if (tile % 10 == 0) { | |
row += randchoice(tileset); | |
} else { | |
row += " "; | |
} | |
} | |
landscape.push(row); | |
} | |
tileset = DATA.SEA_TILES; | |
var lastrow = ""; | |
for (var spot = 0; spot < 12; spot++) { | |
var tile = randint(0, 1000); | |
if (tile % 10 == 0) { | |
lastrow += randchoice(tileset); | |
} else { | |
lastrow += " "; | |
} | |
} | |
landscape.push(lastrow); | |
return [landscape, train]; | |
} | |
function make_special() { | |
var train = pick_engine() + pick_body(); | |
var scene = randchoice(["hell","heaven","space","undersea"]); | |
var border, tileset, landscape; | |
if (scene == "hell") { | |
border = "π₯πΉπ₯πΉπ₯πΉπ₯πΉπ₯πΉπ₯πΉ"; | |
tileset = DATA.HELL_TILES; | |
} else if (scene == "heaven") { | |
border = "βπΌβπΌβπΌβπΌβπΌβπΌ"; | |
tileset = DATA.HEAVEN_TILES; | |
} else if (scene == "space") { | |
border = "βπβπβπβπβπβπ"; | |
tileset = DATA.SPACE_TILES; | |
} else if (scene == "undersea") { | |
border = "ππππππππππππ"; | |
tileset = DATA.UNDERSEA_TILES; | |
} | |
landscape = [border]; | |
for (var i = 0; i < 2; i++) { | |
var row = ""; | |
for (var spot = 0; spot < 20; spot++) { | |
var tile = randint(0, 1000); | |
if (tile % 10 == 0) { | |
row += randchoice(tileset); | |
} else { | |
row += " "; | |
} | |
} | |
landscape.push(row); | |
} | |
landscape.push(border); | |
return [landscape, train]; | |
} | |
var exports = module.exports = {} | |
exports.make_train = make_train; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
π | |
π³ π | |
π³ π³ π² | |
πππππππππ | |
π π³ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment