Created
September 9, 2010 10:27
-
-
Save yhara/571695 to your computer and use it in GitHub Desktop.
This file contains 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
# coding: utf-8 | |
# inspired by http://twitter.com/koizuka/status/23977421116 | |
# see also: http://rtk.web.infoseek.co.jp/cjk/rads/169.html | |
# http://www.dangermouse.net/esoteric/haifu.html | |
class Yami | |
def initialize(src) | |
parse(src) | |
end | |
module YamiParser | |
OPS = { | |
"門" => [" ", :nop], | |
"閂" => :one], # 玉が1個入った箱を積みます。 | |
"閆" => :three], # 玉が3個入った箱を積みます。 | |
"𨳍" => :seven], # 玉が7個入った箱を積みます。 | |
"𨳊" => :nine], # 玉を9個入った箱を積みます。 | |
"閇" => :down], # 一番上の箱を、その下に移動します。 | |
"閤" => :join], # 一番上とその下の箱の中身を合わせます。 | |
"𨳦" => :double], # 一番上の箱の中身を2倍します。 | |
"䦤" => :quadruple], # 一番上の箱の中身を4倍します。 | |
"䦓" => :test], | |
"閞" => :describe], # 一番上の箱の中身の | |
"閔" => :writing], | |
"闇" => :hear], | |
"闏" => :wind], | |
"䦨" => :east], # 東へ1マス移動します。 | |
"閪" => :west], # 西へ1マス移動します。 | |
"閍" => :direction], # 最後に移動した方向が東なら1、西なら-1をTODO | |
"䦳" => :home], # 原点に戻ります。 | |
"闧" => :far], # 原点から離れる方向に1マス移動します。 | |
"𨶛" => :tribute], # 玉を王様に献上します。 | |
"䦍" => :request], # 玉を王様からもらいます。 | |
"王" => :king], # 王様に最後に渡した玉の数をTODO | |
"䦜" => :self], | |
"閚" => :standup], | |
"䦟" => :sitdown], | |
} | |
def parse(src) | |
end | |
end | |
include YamiParser | |
module YamiInterpreter | |
def evaluate(code) | |
@stdout ||= $stdout | |
@stack = [] | |
code.each do |op| | |
case op | |
when :nop then sleep 0.1 | |
when :one then push 1 | |
when :three then push 3 | |
when :seven then push 7 | |
when :nine then push 9 | |
when :double then push(pop * 2) | |
when :quadruple then push(pop * 4) | |
when :sound then @stdout.print(pop.chr) | |
when :wind then @stack.clear | |
else | |
end | |
end | |
end | |
private | |
def push(o) | |
@stack.push o | |
end | |
def pop(o) | |
@stack.pop || 0 | |
end | |
end | |
include YamiInterpreter | |
end |
This file contains 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