Skip to content

Instantly share code, notes, and snippets.

@aycabta
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aycabta/510f7882382eee07a4aa to your computer and use it in GitHub Desktop.
Save aycabta/510f7882382eee07a4aa to your computer and use it in GitHub Desktop.
class GreatName
@@nouns = {
egg: '卵',
bag: 'カバン',
rose: 'バラ',
chair: 'いす',
bat: 'バット',
fish: '魚',
notebook: 'ノート',
pencil: '鉛筆',
dog: '犬',
desk: '机',
watch: '腕時計',
mitt: 'ミット',
milk: '牛乳',
flower: '花',
door: 'ドア',
boat: 'ボート',
piano: 'ピアノ',
orange: 'オレンジ',
bird: '鳥',
sheep: '羊',
cup: 'カップ',
bus: 'バス',
apple: 'りんご',
fruit: '果物',
car: '自動車',
cake: 'ケーキ',
picture: ['絵', '写真'],
cat: '猫',
stamp: '切手',
plane: '飛行機',
book: '本',
racket: 'ラケット',
glass: ['コップ', 'ガラス'],
bed: 'ベッド',
letter: '手紙',
tape: 'テープ',
cap: '帽子',
mail: '郵便',
box: '箱',
bread: 'パン',
doll: '人形',
table: 'テーブル',
tree: '木',
pen: 'ペン',
map: '地図',
cow: '雌牛',
pot: 'ポット',
camera: 'カメラ',
hand: '手',
lemon: 'レモン',
yard: '中庭',
bank: ['銀行', '土手'],
library: '図書館',
hospital: '病院',
hotel: 'ホテル',
village: '村',
kitchen: '台所',
wall: '壁',
park: '公園',
girl: '少女',
father: '父',
doctor: '医者',
pilot: 'パイロット',
man: '男の人',
cook: '料理人',
sister: '姉妹',
mother: '母',
city: ['市', '都会'],
window: '窓',
church: '教会',
school: '学校',
country: ['国', 'いなか', '地方'],
office: '事務所',
garden: '庭',
town: '町',
brother: '兄弟',
woman: '女性',
citizen: '市民',
parent: '親',
student: '学生',
clerk: '店員',
family: '家族',
teacher: '先生',
player: ['選手', '演奏者'],
floor: ['床', '階'],
store: '店',
station: '駅',
house: '家',
field: ['野原', '競技場'],
Japan: '日本',
gate: '門',
room: '部屋',
aunt: 'おば',
boy: '少年',
son: '息子',
nurse: '看護婦',
friend: '友人',
uncle: 'おじ',
singer: '歌手',
daughter: '娘',
evening: '晩',
morning: '朝',
night: '夜',
noon: '正午',
tomorrow: '明日',
time: ['時', '回'],
afternoon: '午後',
diary: '日記',
meal: '食事',
breakfast: '朝食',
lunch: '昼食',
dinner: '夕食',
supper: '夕食',
walk: '散歩',
work: ['仕事', '作品'],
basketball: 'バスケットボール',
baseball: '野球',
tennis: 'テニス',
homework: '宿題',
season: '季節',
spring: '春',
summer: '夏',
autumn: '秋',
fall: '秋',
winter: '冬',
minute: ['分', 'ちょっとの間'],
week: '週',
month: '月',
year: '年',
hour: '時間',
day: '日',
January: '1月',
February: '2月',
March: '3月',
April: '4月',
May: '5月',
June: '6月',
July: '7月',
August: '8月',
September: '9月',
October: '10月',
November: '11月',
December: '12月',
Sunday: '日曜日',
Monday: '月曜日',
Tuesday: '火曜日',
Wednesday: '水曜日',
Thursday: '木曜日',
Friday: '金曜日',
Saturday: '土曜日',
zero: 'ゼロ',
one: 'ワン',
two: 'トゥー',
three: 'スリー',
four: 'フォア',
five: 'ファイヴ',
six: 'スィックス',
seven: 'セヴン',
eight: 'エイト',
nine: 'ナイン',
ten: 'テン',
eleven: 'イレヴン',
twelve: 'トゥエルヴ',
thirteen: 'サーティーン',
fourteen: 'フォーティーン',
fifteen: 'フィフティーン',
sixteen: 'スィックスティーン',
seventeen: 'セヴンティーン',
eighteen: 'エイティーン',
nineteen: 'ナインティーン',
twenty: 'トゥウェンティ',
thirty: 'スァーティ',
forty: 'フォーティ',
fifty: 'フィフティ',
sixty: 'スィックスティ',
seventy: 'セヴンティ',
eighty: 'エイティ',
ninety: 'ナインティ',
present: 'プレゼント',
way: ['道', '方法'],
west: '西',
chance: '機会',
age: ['年齢', '時代'],
right: ['右', '権利'],
half: '半分',
north: '北',
class: ['学級', '授業'],
danger: '危険',
lot: 'たくさん',
south: '南',
subject: ['科目', '題目'],
east: '東',
number: '数',
color: '色',
line: ['線', '列'],
place: '場所',
meter: 'メートル',
thing: 'こと・物',
name: '名前',
science: '科学',
left: '左',
}
@@verbs = {
like: '好む',
look: ['見る', '見える'],
read: '読む',
drink: '飲む',
walk: '歩く',
wash: '洗う',
run: '走る',
stop: ['止める', '止まる'],
have: ['持っている', '食べる'],
wait: '待つ',
collect: '集める',
send: '送る',
come: '来る',
want: '欲しい',
do: 'する',
make: ['作る', 'にする'],
ride: '乗る',
enjoy: '楽しむ',
play: ['遊ぶ', '(スポーツを)をする', '演奏する'],
sing: '歌う',
speak: '話す',
cook: '料理する',
swim: '泳ぐ',
write: ['書く', '手紙を書く'],
catch: ['捕まえる', '(列車に)間に合う'],
open: '開ける',
move: ['動く', '感動させる'],
help: '助ける',
buy: '買う',
leave: ['去る', '残す', '置いて行く'],
meet: '会う',
live: ['住む', '生きる'],
work: '働く',
go: '行く',
know: '知っている',
study: '勉強する',
eat: '食べる',
learn: ['学ぶ', '覚える'],
stand: '立つ',
dance: '踊る',
sell: '売る',
arrive: '到着する',
get: ['得る', '着く', '乗る'],
put: '置く',
stay: '滞在する',
try: '試す',
give: ['与える', '(会などを)開く'],
use: '使う',
visit: '訪問する',
need: '必要とする',
sad: '悲しい',
high: '高い',
slow: '遅い',
nice: 'すばらしい',
these: 'これらの',
all: 'すべての',
that: 'あの',
red: '赤い',
green: '緑の',
strong: ['強い', 'じょうぶな'],
big: '大きい',
fine: ['すばらしい', '元気な', '晴れた'],
}
@@modifiers = {
happy: ['幸福な', '楽しい'],
busy: '忙しい',
sorry: '残念な',
honest: '正直な',
poor: ['貧乏な', 'かわいそうな', '不十分な'],
later: '後で',
soon: 'すぐに',
yesterday: '昨日',
clock: '時に',
already: 'すでに',
up: '上へ',
there: 'そこに',
well: ['よく', 'じょうずに'],
so: 'そんなに',
slowly: 'ゆっくりと',
yet: 'まだ',
why: 'なぜ',
best: '一番良い',
bad: '悪い',
clean: 'きれいな',
large: ['大きい', '広い'],
easy: ['やさしい', '気楽に'],
tall: '背の高い',
some: 'いくつかの',
early: ['早い', '早く'],
this: 'この',
those: 'あれらの',
warm: '温暖な',
cool: '涼しい',
new: '新しい',
short: ['短い', '背が低い'],
little: ['小さい', '幼い', 'ちょっとした'],
dark: ['暗い', '黒い'],
old: ['年をとった', '古い'],
careful: '注意深い',
junior: ['年下の', '下級の'],
hungry: '空腹の',
ill: '病気の',
usually: 'ふつう',
today: ['今日', '現在'],
fast: ['速く', '速い'],
now: '今',
ago: '前',
where: 'どこに',
home: ['家を', '家へ'],
much: ['ずっと', 'たいへん', '多量の'],
yes: 'はい',
also: 'もまた',
not: 'でない',
together: '一緒に',
sick: ['病気で', '病気の'],
kind: '親切な',
glad: 'うれしい',
good: '良い',
young: '若い',
sometimes: '時々',
often: 'しばしば',
always: 'いつも',
again: '再び',
far: ['遠くに', 'はるかに'],
here: 'ここに',
very: '非常に',
how: 'どのくらい',
too: ['もまた', 'すぎる'],
no: 'いいえ',
beautiful: '美しい',
next: ['次の', '隣の'],
long: '長い',
rich: ['金持ちの', '豊かな'],
able: ['できる', '有能な'],
hot: '暑い',
small: '小さな',
white: '白い',
black: '黒い',
true: 'ほんとうの',
every: '毎',
many: '多くの',
cold: ['冷たい', '寒い'],
famous: '有名な',
blue: '青い',
most: 'ほとんど',
my: '私の',
me: '私を',
mine: '私のもの',
you: ['あなたに', 'あなたがたを', 'あなたを', 'あなたがたに'],
your: ['あなたの', 'あなたがたの'],
yours: ['あなたのもの', 'あなたがたのもの'],
his: ['彼の', '彼のもの'],
hers: '彼女のもの',
its: 'それの',
it: ['それを', 'それに'],
our: '私たちの',
us: ['私たちを', '私たちに'],
ours: '私たちのもの',
their: '彼(女)らの',
theirs: '彼(女)らのもの',
who: 'だれ',
what: '何',
which: 'どちら',
whose: 'だれの',
something: '何か',
}
@@nominatives = {
I: ['私は', '私が'],
he: '彼は',
she: '彼女は',
it: 'それは',
we: '私たちは',
they: ['それらは', '彼(女)らは'],
this: 'これは',
that: 'あれは',
these: 'これらは',
those: 'あれらは',
everyone: 'みんな',
someone: 'だれか',
nobody: 'だれでもない',
none: '何でもない',
everything: 'すべてのもの',
everybody: 'だれでもみな',
nothing: '何もない',
both: '両方',
all: 'みんな',
}
@@objects = {
yourself: 'あなた自身',
himself: '彼自身',
herself: '彼女自身',
myself: '私自身',
itself: 'それ自身',
ourselves: '私たち自身を',
themselves: '彼(女)ら自身',
you: ['あなたは', 'あなたがたは'],
them: ['彼(女)らを', '彼(女)らに'],
him: ['彼を', '彼に'],
her: ['彼女の', '彼女を', '彼女に'],
it: ['それを', 'それに'],
}
@@all = @@nouns.merge(@@nominatives).merge(@@verbs).merge(@@modifiers).merge(@@objects)
def get_phrase
[
lambda { [@@nouns.keys.sample] },
lambda {
[
[
lambda { @@verbs.keys.sample },
lambda { @@modifiers.keys.sample }
].sample.call,
@@nouns.keys.sample
]
}
].sample.call
end
def love_the_shit
@greatname = []
before = []
if rand(10).zero?
before << @@nominatives.keys.sample
if rand(8).zero?
before << @@verbs.keys.sample
end
end
after = []
after << @@verbs.keys.sample << @@objects.keys.sample if rand(20).zero?
@greatname.concat(before)
while (before.size + @greatname.size + after.size) < 3
@greatname.concat(get_phrase)
end
@greatname.concat(after)
end
def get_great_english
@greatname.map(&:upcase).join(' ')
end
def get_great_japanese
@greatname.map{ |i, v = @@all[i]| v.kind_of?(Array) ? v.sample : v }.join
end
end
greatname = GreatName.new
greatname.love_the_shit
puts greatname.get_great_english
puts greatname.get_great_japanese
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment