Skip to content

Instantly share code, notes, and snippets.

@hyamamoto
Created March 31, 2016 10:48
Show Gist options
  • Save hyamamoto/aeeada2adb6fbb2c2c4e1ab42f85d3b6 to your computer and use it in GitHub Desktop.
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.)
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;
πŸŒ•
🌳 πŸ‡
🌳 🌳 🌲
πŸš‚πŸšƒπŸšƒπŸšƒπŸšƒπŸšƒπŸš‹πŸš‹πŸšƒ
πŸ‡ 🌳
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment