「愛理」を含む日記 RSS

はてなキーワード: 愛理とは

2018-09-27

anond:20180925183624

麻婆焼きそば ×

1970年代前半に、仙台市内の中華料理店「まんみ」にて賄い料理として提供したのが始まり

//ja.wikipedia.org/wiki/%E4%BB%99%E5%8F%B0%E3%83%9E%E3%83%BC%E3%83%9C%E3%83%BC%E7%84%BC%E3%81%9D%E3%81%B0

せり鍋 ○

河北新報の「仙台やすこ歩き」によると、

発案者が思いついたのが10年前と言っていたので、

2000年代の真ん中から広まったのではないでしょうか?

//detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11156573366

ただし他にも元祖を名乗る店がある。

チーズタッカルビ

16年2月に「チーズタッカルビ」を発売

//www.itmedia.co.jp/business/articles/1802/20/news021.html

塩焼きそば ×

1959年 4月

清ちゃん1959年4/10開店となる!

ここから小松名物塩焼きそば伝説が産声をあげる!

//www.sio-yakisoba.com/

ツナマヨおにぎり ×

1983年(昭和58年)に「ツナマヨネーズおにぎり」を発売

//q.hatena.ne.jp/1256202677

パン

14〜15年前ですかね。パンって、夏は本当に売れないんですよ。暑いからみんなソーメンを食べたり、おやつスイカになったりしてね。なんとか夏に売れるパンができないかなぁと思って開発したのが、塩分補給もできる塩パンだったんです

//tabi-labo.com/287605/painmaison-yawatahama

2018年のインタビューなので2003年頃か。

ししゃもっこの軍艦

1970年代以降、シシャモ代用魚として輸入が急増

//ja.wikipedia.org/wiki/%E3%82%AB%E3%83%A9%E3%83%95%E3%83%88%E3%82%B7%E3%82%B7%E3%83%A3%E3%83%A2

寿司メニューになった時期は不明

豆乳鍋

当店が1991年に開発したオリジナル

//irori.owst.jp/foods

ただし他にも元祖を名乗る店がある。

おにぎらず

【第22巻・第213話】いま話題おにぎらずクッキングパパ発祥

//cookpad.com/recipe/2831394

第22巻は1991年発売。

フルーツグラノーラ

91年にフルーツを加えた「フルグラ」(当時のブランド名は「フルーツグラノーラ」)を発売

//www.cross-m.co.jp/column/insight/insight82/

恵方巻 ×

1970年代半ばからマスメディアに取り上げられるようになり、以降は再び定着するようになった。

//ja.wikipedia.org/wiki/%E6%81%B5%E6%96%B9%E5%B7%BB

ご存知のとおり発祥には諸説ある。

魚のカルパッチョ ×

落合「僕が帰って来たのが1981年で、前のお店を開けさせていただいたのが1982年ですから

(中略)

干場「実は、魚のカルパッチョを作ったのは落合さんなんですか!?

落合「実はそうですよ(笑)

//www.tfm.co.jp/cruise/index.php?itemid=91890

1982年に魚のカルパッチョを作ったとは語られていないが、近い時期であることが示唆されている。

塩麹 ×

古くは本朝食鑑の鱗部の巻「鰯」の箇所に「或有甘塩者有糟漬者有塩麹漬者号曰黒漬」という下りがあり、「塩麹漬」という文字列が見られる。

//ja.wikipedia.org/wiki/%E5%A1%A9%E9%BA%B9

本朝食鑑は1697年刊行

レバ刺し ×

日本人はいから牛の生肉生レバーを食べるようになったのか。

焼き肉などの食文化に詳しい滋賀県立大鄭大聲(チョン・デ・ソン)名誉教授は「戦後在日韓国朝鮮人が家庭で食べていたもの焼き肉店で出すようになり広まったのではないか」という。

//sankei.jp.msn.com/life/news/120428/trd12042822020023-n1.htm

万葉集内臓生食示唆する歌があるとの話もあり。

魚介つけ麺

つけめん」が定着するきっかけとなったのは2000年頃からのことです。つけめんの考案者である東池袋大勝軒の店主 山岸 一雄氏のお弟子さん達が独立し始め、大勝軒系列の店が増えたこと、大勝軒常連から人気店になった「べんてん(高田)」、「道頓堀(成増)」といったお店が繁盛したこと、そして川越にある「頑者」が「自家製極太麺×魚粉×濃厚つけだれ」という新しいジャンルつけめんを生み出したことが影響し大きなエポックとなりました。

//web.archive.org/web/20130622095039///www.asahi.com/business/pressrelease/ATP201005190013.html

サーモン寿司 ×

プロジェクトが始まったのは86年。当初の計画では、輸出の要はカペリン(カラフトシシャモ)だった。しかし、その前年、時の漁業相らが日本を視察して方針が変わった。日本には生のサーモンを食べる文化がない。江戸前寿司にもない生サーモン握り寿司を考案し、試食会を重ねた。

//trendy.nikkeibp.co.jp/atcl/pickup/15/1008498/061500791/

ティラミス ×

日本イタリア料理史の中で、最大のブームとなったのは「ティラミス」と言って間違いありません。80年代半ばから評判を呼び、90年に雑誌Hanako」で特集が組まれるや、人気は最高潮に達します。

//www.metromin.net/feature/15133.html

アボカド ×

日本の輸入量は1970年代までは微々たるものだったが、1970年代後半から増え、1980年には479トン、1990年2163トン、2000年14070トン、2005年は28150トンと急増している。

//ja.wikipedia.org/wiki/%E3%82%A2%E3%83%9C%E3%82%AB%E3%83%89

オリーブオイル ×

1908年明治41年)、魚の油漬け加工に必要オリーブオイルの自給をはかるため、農商務省アメリカ合衆国から導入した苗木を三重県鹿児島県香川県試験的に植えた。香川県小豆島に植えたオリーブけが順調に育ち、大正時代の初めには搾油が出来るほどの実が収穫された。

//ja.wikipedia.org/wiki/%E3%82%AA%E3%83%AA%E3%83%BC%E3%83%96%E3%83%BB%E3%82%AA%E3%82%A4%E3%83%AB

バターコーヒー

「朝はヨーグルトより、バターを食べる」

//www.amazon.co.jp/dp/4478039674

チキンタツタ

1991年4月期間限定商品として初登場

//ja.wikipedia.org/wiki/%E3%83%81%E3%82%AD%E3%83%B3%E3%82%BF%E3%83%84%E3%82%BF

単なる竜田揚げとして見れば×。

油そば ×

1952年昭和28年)に創業した国立市一橋大学そばの「三幸」が、のびたラーメンをヒントに昭和30年代前半頃から酒の肴として提供を開始したとする説や、同じく昭和30年代武蔵野市境の亜細亜大学そばの「珍々亭」が中国拌麺をヒントに油そばを発売したという2説が存在している。

//ja.wikipedia.org/wiki/%E6%B2%B9%E3%81%9D%E3%81%B0

火鍋 ×

火鍋唐代に普及

//ja.wikipedia.org/wiki/%E7%81%AB%E9%8D%8B

日本のしゃぶしゃぶは火鍋をもとにして作られたとの説も。

発泡酒 ×

新規企業の太洋醸造が当時自由販売化していたイモとホップ使用したイモ・ビール試験醸造申請して認可され、1950年昭和25年)から新発売され、日本市販発泡酒第1号となった

//ja.wikipedia.org/wiki/%E7%99%BA%E6%B3%A1%E9%85%92

食べるラー油

垣島在住の夫婦(夫は中国陝西省西安出身の辺銀暁峰、妻は東京都出身愛理)が、具材を食べるタイプラー油を開発し、2000年(平成12年)、石垣島にて開催されたイベント販売したのが始まりである(ただし、具の入ったラー油のもの中国にて古くから存在している)。

//ja.wikipedia.org/wiki/%E7%9F%B3%E5%9E%A3%E5%B3%B6%E3%83%A9%E3%83%BC%E6%B2%B9

2018-04-14

ロボティクスノーツDaSHでやってほしいこと

・昴の活躍シーン。

昴好きなんだよ!

できれば、外伝キャラ達もちょっとだけ出てきて絡んだりしてくれたらもう言うことなし。

・みさ姉無双

いや、原作ってようするにみさ姉無双だろ? と言われれば、そんあ味わいもあったような気がしなくもないんだけど

洗脳から解放されることでより一層スペック向上しそうだから、ロボ部全員と正々堂々戦った上で、全員を得意分野でボコるぐらいしてほしい。

・フラウと愛理百合

二人とも性欲強そうだからすぐヌチョヌチョしそう

ラボメンに真帆とかがりがいることを匂わせる記述

真帆はまあ大丈夫だろうけど、かがりはシュタゲ世界線でどうなってるかが一切明かされてないのが大問題だけど

からこそ、かがりもラボメンとして一緒にいることを、ダル一言でも言えば、シュタインズゲート世界線も所詮ゆりと紅莉栖以外の誰かに犠牲押し付けてる感が薄まってとても良いと思う。

・久野里乱入

科学ADVシリーズジョーカーポジションになれそうだから、こういう方向性活躍してほしい。

2017-01-18

彼(女)の名は。

http://anond.hatelabo.jp/20170117225147

関ジャニ∞2002年デビューNEWS2003年から違う。(途中からヲタになった可能性もあるが、それを含めたらきりがなくなるので考えないことにする)

perfume(2000~)は大きな仕事が多いので「あまり来ないけど、極たまに大きな仕事」が当てはまらない。

Negicco(2003~)は後輩に当たる人がいない。

モーニング娘。2005年デビュー7期メンバー久住小春きらりんレボリューション中の人)ただ一人だけど後輩のフォローはしないし、今は事務所を離れているので違う。

Berryz工房(2004~2015)はどうか。熊井ちゃんこと熊井友理奈可能性もある。「トークいまいち」は完璧に当てはまる(しかしそれは最高のトークでもある)し、桂由美ファッションショーの新作モデルに起用されたのは「極たまに大きな仕事」だろう。しかし一昨年から無期限活動休止なので現在形の文章とは齟齬が出てくる。

となると℃-ute(2005~)の可能性が高い。今年の解散が決まっているがまだ現在形。

さて

矢島舞美

鈴木愛理

中島早貴

岡井千聖

萩原舞

の中の誰か?

「昔はああいうこと言ってたのに丸くなってきたな」から舞美は除外される。舞美は昔からものすごく性格がいい。メンバー10年間で3回しか怒った姿を見たことがないそうだ。

「極たまに大きな仕事」という点で、バラエティー番組の出演の多い岡井ちゃんソロ仕事がないマイマイも違う。

ということは愛理nksk中島早貴)。

二人ともトークが下手で、熱愛スキャンダルらしきものもある。

 

「歌うまくなったなー」は上手かったのがさらに上手くなった愛理を指すのか、下手なりに上手くなったnkskを指すのか。

悩むところだが、ヲタの多さから愛理と予想。

当たってますか?

ちなみに私の℃-ute一推し曲は「世界一HAPPYな女の子

https://youtube.com/watch?v=WhVW7RLuCkE

冴えない女の子欲求不満さらっと歌にできるつんく♂天才です。

2014-06-04

水無月・MYK事件カミングアウト」に関する私見

増田記事

水無月・MYK事件カミングアウト

続・水無月・MYK事件カミングアウト

関連記事

MYKのホームページ(2004年閉鎖)

考察記事

理解できない人向けの解説

ぷよ通151万点動画販売にまつわる怪文書の追跡まとめ

確定している事実

MYK氏による水無月愛理氏の記録抹消

 影響力のあるMYK氏の問題提起が原因で、ぷよスコア界ではこの記録が無効であることが共通認識

 よってぷよ通の全国一スコアラーはMYK氏であるというのが共通認識

 水無月愛理氏の記録が抹消されただけでなく、名前存在自体が抹消されているほど。

 しかし誌面上で記録が公式に抹消されたわけではないため、あくまで内輪での解釈だけとも言える。

ERI氏≠水無月愛理

 今回の増田告白で、ERI氏と水無月愛理氏は本当に別人であるという点が最も強調されている。

 この真偽について、ネット上でも「真」と考えるものが大多数であり、「偽」と唱える人は少ない。

MYK氏が実際に会った人≠水無月愛理

 MYK氏は2004年12月に発送元を訪ね、ある人物に会うことに成功している。

 しかしその人物は、面識のある水無月愛理氏とは全く違う人物であったことが明らかになっている。

 その人物はぷよら~だったらしいが、なぜ断定できたのかは不明。

真偽が不明な事項

水無月愛理氏のスコアアタックに関する不正行為

 公もしくはWeb上に姿を全く現さず、また数少ない彼のプレイを見たことがあるという人からも、プレイが上手いという評判が少ない。

 プレイレベルはそこそこだが、圧倒的なプレイ数でそれを補っていたという話はある。

 不正行為をしたという事実が噂だけにとどまっており、明確な証拠や根拠が現状では存在していない。推測が多い。

代理人=出品者

 出品者と思われる人物の、複数存在するホームページIDから代理人を含め同一人物の可能性が高いと推測される。 

 しかし、大きく1973年生まれの人物と1991年生まれの人物が登場。

 2つの人物のホームページ内容にも共通点があり、同一人物の可能性もあるが、親子もしくは兄弟の可能性もある。内容を流用している等。

 1991年生まれの人物のホームページは、ダミー宣伝目的とは違い、かなりブログとしては充実している。こちらがメインの可能性がある。

 しかし、これだけわかりやす証拠を多々残していると、全て首謀者が工作している可能性も否定出来ない。わざと誕生日を記載するなど。

 ただ、増田の主張にもある、振込口座による実名が明らかになるのを防ぐために、代理人は別に存在していた可能性はある。

 実名が明らかになれば、ERI水無月愛理氏ではなく関係ないぷよら~であることが、販売時点で簡単に明らかになってしまうからと思われる。

出品者=動画作成者ERI氏)

 出品者がかなりぷよぷよに造詣が深いようであることから増田告白通り、動画編集を駆使すれば151万点動画自力作成できた可能性は高い。

動画作成者ERI氏)≠水無月愛理

 ERI氏が自力動画作成可能であったことを考えると、水無月愛理氏が介入している可能性は考えにくい。

 水無月愛理氏が介入するメリットが全くない。デメリットだけである

MYK氏が実際に会った人=出品者

 情報が少ないが、会った人物が本件に関わっている可能性はありそう。

 ただそうなると、増田自分自分の住所を暴露していることになってしまう。

私見

ゲーメスト誌のハイスコアランキングは、指定された集計店でのプレイによる申請、もしくは指定されていない店でのプレイによる個人申請により成り立っていた。ゲームの設定変更はスコアに大きな影響を及ぼすため、デフォルトの設定をそのまま用いることがルールとなっている。しかしながら、設定変更されたものであったかどうかをゲーメスト誌が確認する手段はなく、申請店、申請者のモラルに委ねられていた。厳密に言えば、アーケードぷよぷよ通は、左のボタンぷよ右回転、右のボタンぷよ左回転なのがデフォルト設定であるルールに従うならばこの設定を変更してはいけない。ノーマル設定であれば他は何でもありではないのだ。しかしこれではプレイしにくいと考える人の方が多数派で、設定を変更してハイスコアに興じていたのが実際である。それを問題と考える人はおそらくおらず、結局人は物事を自分の都合の良いように考えるものなのである10年前の事件などまさにそうだった。

10年前に起こった事件は、客観的には「MYK事件」であった。MYK氏が1人でネット上で大騒ぎ。MYK氏と水無月愛理氏だけの問題だったはず。代理人を通しての連絡がとれなくなった?MYK氏には水無月愛理氏と直接連絡がとれる手段もあった、自らの行動を直接連絡をとることで謝罪したと、自身が言っていたでしょうに。おかしいよね。2人の間で整理しきればよい話を大々的にネット上で行った。水無月愛理氏と連絡がとれるにも関わらずとれないとした上での、かなり一方的な内容だ。水無月愛理氏が降臨してくることはただの1回もなかった。MYK氏は、水無月愛理氏とは無関係動画を元にして、水無月愛理氏を闇に葬り、自らが全国一の座についた。この点を批判する意見は多い。とばっちり水無月愛理氏だが、当時からグレーな噂はどうもあったようであるが、他のスコアラーからの妬みにより生み出された噂とも言える。明確な証拠は無かった。しかしそんな根拠の無い噂のせいで、MYK氏が「ERI氏=水無月愛理氏」と断定したことに対し、疑わなかった人も多かったようだ。今回の増田告白により、「ERI氏≠水無月愛理氏」という事実だけは「真」であると明らかになったようだ。水無月愛理氏が気の毒すぎるというのは確かにある。

151万点動画に「マージンタイム調整」がもし行われていなかったら、このような事態にならなかった可能性が高い。よって「わざとマージンタイム調整を入れた」という可能性が大いにあるのではないか。わかりやすく問題を発覚させ、水無月愛理氏を陥れるためだ。案の定、動画発売からMYK氏の問題提起までの期間が驚くほど短い。問題の動画複数人で鑑賞するなど手が込んでいる。発送元を訪ねるなど不自然と思うくらいの行動力だ。水無月愛理氏の存在が抹消されて得をする人物など1人しかいない。連鎖界は意外と狭い。犯人は全てMYKサイドの人物であり、増田もその1人。首謀者は本人自身なのかもしれない。増田10年たったこのタイミングでの告白意図はわからないが、感じ続けていた罪悪感がMYK氏に反旗を翻す行動につながったのかと感じずにはいられない。

2014-06-03

感想

http://anond.hatelabo.jp/20140601012957

ぷよぷよ通 登場20年 事件から10年 水無月・MYK事件カミングアウト

http://anond.hatelabo.jp/20140601012957

(MYK氏の声明文)

めっちゃんこおもしろかった!あたしがたどり着いた真実

「MYK氏は増田水無月愛理氏が同一人物ではないということを理解しつつ、自身のホームページで事のあらましと意見を公表するに至った」

だね。

MYK氏には増田水無月愛理氏が同一人物であろうとなかろうと、水無月愛理氏をぷよ業界から追放する動機があるからね。

(ペロッ…これは…ばよえ〜〜ん…!?!?

2014-06-02

http://anond.hatelabo.jp/20140601152121

不正動画を売って、人様に迷惑をかけて、MYKは見抜けなかったとかバカにして

結局匿名であれは違うこれも違うと勝手告白を続け謝罪もなし。

頭沸いてるだろこのゴミ

ヤフオクの「to_the_stars_jack」(削除済)

2004年に問題のぷよぷよ動画オークションへ出品した人物

・「ERI」とは別人であり取引代行をしただけと主張

はてなダイアリの「to_the_stars」(閉鎖済)

・問題の取引において商品発送元とされる住所に住んでいた人物

・「大のぷよぷよファンでありぷよぷよ関連の取引は何度もした、その相手の誰かが自分を騙っただけでこの取引とは全く無関係」と主張

・「1992年時点で浪人生」=1973年前後生まれ

TOEICを「25回くらい」(2005年時点)受験しているTOEICマニア

fc2ブログの「tm1973」=「Takehiko Mills」=ニコニコの「Takehiko_Mills」=youtubeの「Takehikomi」=ゲーム動画サイトmve.jp管理人(閉鎖済)

2007年に問題のぷよぷよ動画等を複数動画サイトへ上げていた人物

ブログデザインが後述「tothestars」と酷似

・「1973年生まれ」

ぷよぷよは「ほとんどプレイ経験がない」

・一連のトラブルの経緯をブログで詳細に解説

・他に2007年からセカンドライフ関連のブログ運営していたが短期間で止めている(めぼしい情報なし)

fc2ブログの「tothestars」

2007年から2010年まで「Z会数学を頑張る高校生」としてZ会添削内容を画像つきで上げていた人物

ブログデザインが前述「tm1973」と酷似

・「Takehiko_Mills」の動画ブログで紹介している(複数回しか動画が上がった直後(数分~数十分以内)に

・「1991年6月6日生まれ」

・「ぷよぷよ大好き」

TOEIC28回(2005年時点)受験しているTOEICマニア

はい。もうバレてるから無駄なことはやめようね?

そもそもとして水無月愛理はその騒動以前から不正疑惑があったからこういうことになってる訳で

あんたが水無月愛理じゃないからといって水無月愛理不正してないという証明には何一つならない。

抹消になっても本人自身が何も言わない時点でお察し。

告白といってる癖に内容は嘘だらけでMYKを陥れる方向にミスリード

残念ながら誰も信じませんから

ちゃんと謝罪しましょうね?ガキじゃないんだから

2014-06-01

続・ぷよ通 登場20事件から10水無月・MYK事件カミングアウト

少し補足する。

  

まり執拗に書くと、

水無月愛理本人が必死になっている」

と思われるかもしれないため、最小限に留めたい。

  

繰り返すが、私は水無月愛理氏とは無関係であるため、水無月愛理氏がぷよスコアから抹消されていることや、不正スコアラー扱いされていることに関して、心は傷んでいるがどうにかして欲しいとかそういう思いは無い。ただ、水無月愛理氏ご本人やMYK氏には迷惑をかけてしまったなという思いが、10年間残っていただけのことである

  

あのメガドラぷよ通151万点動画作成し、販売したのは私である。私と水無月愛理氏に接点は全くないし、面識もない。

  

10年前の当時、この動画を販売した最大の理由は「小遣い稼ぎ」だった。今ではYouTubeニコ動があり簡単に上級者のプレイが見られるようになったが、当時はそうでもなく、上級プレイヤープレイ動画は希少だった。ましてスコアアタック動画など皆無だったと思う。そんな時、

「すごいスコアアタック動画を販売すれば売れる」

と思いついた。そして、

「すごいスコアアタック動画は簡単に作れる」

と気がついていた。

  

ゲーメストハイスコアはよくチェックしていたし、ぷよ通もそれなりにやり込んでプレイした経験があったので、動画は簡単に作成することができた。容易に想像が着くと思うが、メガドラ版では「乱入可能」という表示を出すことで、死にそうになったら乱入してやり直すというやり方ができる。例えば2面のうろこさかなびとに16連鎖入れたいけど失敗しそう、もしくは死にそうになったら、乱入してやり直せばいいのであるコンティニューではスコアが0点に戻ってしまうが、乱入では戻らない。これを利用するのだ。動画ではこの乱入シーンをすべてカットし、上手くいったシーンだけを編集してつなげる。そうすると、1プレイで上手くいったような動画が完成する。

  

ちなみにマージンの設定をいじっていたのは事実で、これは練習で設定変更したのを忘れており、そのままプレイしてしまったというのが正直なところであった。動画作成の際に気づいており、ノーマルという設定にそぐわないとは思ったが、売れれば何でもいいという安易な考えもあり気にしなかった。

  

こんな誰でも容易に考えつくような方法作成したのに、MYK氏は全く見破ることができていなかった。完全に冷静さを失っていたこともあろうが、以下のような理由もあったのではと想像する。

  

一緒に閲覧した、ひげぷよマン氏が「これは水無月氏のプレイに間違いない」と言ったのではないか。つまり、ひげぷよマン氏も見破れていなかったのだ。そしてもう1つ。販売に付属としてつけた紙媒体マニュアルの内容が、いかにも水無月氏のスコアアタックの苦労話のように読めたのではないか。

  

実は販売にあたり、この動画水無月愛理氏のプレイ動画だと思わせてやろうという狙いは少しあった。無名の私の名前では売れないに決まっているからだ。しかし、「水無月愛理」という名をダイレクトに使うことはできない。そこで「ERI」と名乗ることを思いついた。これならば、スコアラーなら「ERI水無月愛理」と考えなくもない。すなわち、売れるかもというもくろみだった。マニュアルの記載にも「水無月愛理」という名は一切使わず、「ERI」を多用した。

  

販売の宣伝にはGoogle広告を利用した。販売手段ヤフオクである。足がつかないように、ヤフオクには新規IDを取得。そして販売を私自身がやるのではなく、ある代理人を仲介した。自分自身がヤフオクでやりとりをしてしまっては、振込を依頼する口座名で実名がわかってしまうからである代理人はぷよぷよとは全く関係ない人物である必要があったのだ。

  

1万円で販売した。いきなり1個売れた。この購入者横浜市のN.I氏である

  

代理人によると、このN.I氏とメールでやりとりが行われたのは2004年10月14日21時50分、23時50分、及び1712時32分の計3回である。その後、MYK氏が動画を視聴し、MYK氏から代理人の元にメールが届いたのが2004年10月23日20時41分、及び10月25日20時35分の計2回である

  

販売は代理人より定形外郵便実施してもらった。送付元を記載しないことも考えたが、ある全く関係ないぷよらーの住所を記載するように依頼した。あとから知ったが、MYK氏はこの送付元を訪ねたようである。そうであるならば、住所(消印)は千葉県船橋市、最寄り駅は北習志野駅であったはずである代理人の得意先があった付近である

  

今でも、編集前のプレイ動画、そして紙媒体しか販売していないマニュアル電子版が、私の手元に存在している。

  

水無月愛理氏は当時、特定店舗ではなく様々な店舗で、初代ぷよぷよぷよ通、ぷよSUNハイスコアを記録し、ゲーメストに掲載されている。それらが全て、店員の協力が不可欠な設定の変更や、初代ぷよぷよには存在しない乱入の繰り返しにより出されたものであるとは到底考えにくいし、疑う要因がそもそも無い気がしている。疑わしきは水無月愛理氏とは無関係ERI氏のメガドラ版151万点動画だけだったはずだ。それなのに水無月愛理氏の全てが不正と結論付けられていることが本当に気の毒でならない。

  

全ては私が「ERI」という名前を使ったことが騒動の始まりのような気がする。この結果、水無月愛理氏、MYK氏、その他のぷよら~の方々に迷惑をかけることになった。何より、

水無月愛理氏のスコアが、ぷよスコア歴史から抹消される」

という事態に陥ってしまったことが、心が傷んでならなかった。私は水無月愛理氏にもMYK氏にも会ったことはなく、何か恨みがあったわけでももちろんない。ゲーメストでお二人の名前を何度もお見かけして、尊敬の念を抱いていた1人にすぎない。こんな事態になるとは本当に想像できなかったのだ。

  

10年前の過ちだが、そっとここに告白しておきたい。匿名であることをお許し願いたい。

ぷよぷよ通 登場20年 事件から10年 水無月・MYK事件カミングアウト

登場から20年、事件から10年がたったためカミングアウトしたい。

  

ぷよぷよ通という落ゲーがある。1994年アーケード版で登場し、特に家庭用ゲーム機で普及し、特に対戦が面白くハマった人も多いと思う。そんな中、スコアアタックという少しマイナーである楽しみ方があった。

  

かつて「ゲーメスト」という雑誌があった。既に廃刊したが、アーケードゲーム対象にしたハイスコアランキングが熱かった。1994年初回時にぷよぷよ通の全国一スコアは67万点だったが、10年後の2004年には142万点となった。私の記憶によればこれが最終のスコアであり、さら10年たった2014年、未だに誰も公式にこのスコアを超えてはいないと思う。

  

このスコアを記録したのが水無月愛理である。彼は、ぷよぷよ通だけでなく、初代ぷよぷよも280万点で全国一、ぷよぷよSUNも170万点オーバーで全国一と、確か3冠だったと思う。驚異的だった。

  

ぷよぷよ通で全国2位とされていたのが、MYK氏だった。135万点。そんな状況下でこんな事件が起こる。

  

2004年にある動画Web上で発売された。ぷよぷよ通で151万点の動画だ。スコアラー名前ERI。この動画きっかけで、

水無月愛理氏の全国一スコアが、事実上淘汰され、ぷよスコア歴史から抹消される』

という事態となった。今でもその状況はおそらく変わっておらず、MYK氏の135万点が全国一ということになってしまっているようである

  

物議をかもしたこの151万点の動画は、アーケード版ではなくメガドライブであるしかし設定が「マージン無し」という、ノーマルではなく設定調整がされたものであった。これがMYK氏の逆鱗に触れた。全国一プレイヤーが設定調整をしてプレイするとは何事だ、アーケード版の142万点自体不正によるものではないかと。

  

しかし、結論から言う。

『この151万点動画ERI氏と、水無月愛理氏は別人』

である水無月愛理氏は全く関係ないのである。この動画プレイし、発売したのはこの私だからである

  

私がプレイし、発売もしたので、私しか知り得ない情報を書く。

  

この動画を購入したのはたった1人である。MYK氏ではなく、イニシャルで言うとN.I氏(横浜市である。彼はスコアラーではないそうだが、後に購入した動画をMYK氏、ひげぷよマン氏と鑑賞し、今回の事件が勃発することになる。

  

この動画を見た全国2位のMYK氏は冷静さを完全に失っていた。ERI氏と水無月愛理氏が別人であることを見抜けなかった。そもそもこの動画が「動画編集による加工が入ったものである」ことすら見抜けなかった。動画を見ていない服部崇氏ですら、ERI氏と水無月愛理氏が別人であり、動画編集によるものだと、早々に断定できていたのに。

  

MYK氏は以下2通のメールを、販売した私に送ってきている。

  

■1通め

水無月愛理 様  

 お久しぶりです。MYKです。2年ほど前に池袋田中さん宅で集まった時以来でしょうか。さっそくですが、メガドライブにおける151万点プレイを見させていただきました。私自身長ぷよ通のスコアを追い求め続けただけに151万点という点数の高さは圧巻で、その話を聞いたとき、そしてそのプレイを拝見させていただいた時は非常に感動いたしました。

 しかし拝見した動画にはあってはならない事が映し出されていました。それは「マージンタイム設定」を変更しているという事実です。もちろん私も長年ぷよぷよ通をプレイし続けて来ました。設定の違いは設定画面を見ずとも明らかにわかます。この事実を知ったときは信じられないと同時に非常にショックで残念でした。(以下略

  

■2通め

ERI様  

 MYKです。お忙しい中、迅速なメールの返答をいただき大変ありがとうございました。また丁寧な対応をしていただきとても感謝しております。まず、私の「ERI」様と「水無月愛理」様が同一人物であるという思い込みからあのような文章勝手に送りつけてしまったこと、そしてその文章で気分を害されてしまったであろうこと、大変失礼致しました。深くお詫び申し上げます。 またこのような形ではありますが「ERI」様という一流のスコアラー出会えて私も同じゲームプレイする一人のスコアラーとして大変光栄です。(以下略

  

  

  

  

一見、自らの誤りを認めたかのように見えるが、どうも10年たった今どのような状況になっているかというと、

水無月愛理氏は不正スコアラーで、アーケード版142万点は無効。全国一はMYK氏。』

のようだ。

  

MYK氏の影響力は大きかった。ぷよ界でも彼の名はかなり知れ渡っている。それに対し水無月愛理氏はスコアアタックだけの人であり、影の人であった。影響力は無いに等しい。今のこの状況は、この時の事件きっかけになっていると思う。

  

私がこのメガドラ版151万点動画作成するにあたり、

・あわよくば水無月愛理氏の動画と見せかけ、売上をあげたいからERIと名乗った

動画編集を用いているので、151万点は容易

という当時の思惑があった。しかしこれが結果的水無月愛理氏が歴史から抹消されるような結果となった。当時このような状況になるとは想像もできなかった。

  

今更ながらだが、この事実は誰にもしゃべったことが無かったため、「真実」が誰にもわからなかったのだと思う。誰かがこの書き込みに気づいて、「真実」に気づいてくれれば幸いと思う。

  

追記 http://anond.hatelabo.jp/20140601152121

2008-12-12

http://anond.hatelabo.jp/20081212153414

ぜんぜん増田に対する答えにはなってないけど、自分を見ているようなので嬉しい。

私も女だけど、女アイドルが、というかハロプロが大好き。

2000年初頭のハロプロ全盛期だった頃は一般人の会話に混じるくらいだったけど、彼氏ハロヲタだったのをきっかけに完全にハロプロに舞い戻ってハマッた。ドアップやyoutube映像を漁るし、何度も再生してニヤニヤしながら眺めるし、iPodには娘フォルダを作るし、彼と一緒に娘コンとか行ってしまうくらい。

ちなみに私の好きなハロっ子は

松浦亜弥

吉澤ひとみ

久住小春

藤本美貴

です。ちょっと増田と共通点があるよね。面白い。

Berryzなら桃子熊井ちゃんが好き。

℃-uteはこの子!っていうのはいないけど、愛理は歌うまい舞美は超美人だと感心する。「桜チラリ」の頃の萩原舞ちゃんはかなり抱きしめたい

AKB48では中西里菜ちゃんが好きだった。やめてしまったけど……。

ちなみにグラビアアイドルも好きですよ。

きわどいのとかエグイのじゃなくて、Sabraに乗ってる程度の、そこそこ上品グラビアとか大好き。一時期は毎号Sabraを見てた。

仲根かすみがすごい好きだったから、結婚してやめた時はへこんだなあ。

ほしのあきも好き。

彼女たちのPV映像を何度もリピートしてしまう理由は、ちょっと増田に近いです。

自分がそんな風になりたいわけじゃないし、なれるとも思わないし、バイやレズでもないと思うけど、彼女たちの映像を見ていると幸せになる。夢という言葉はかなり的確。

男がスポーツ選手バンドマンに憧れるのと同じ心理だというのはなるほどですね。

ちなみに私も周囲にはハロヲタだって隠してます。

実は隠れ女アイドルヲタの人って多いんじゃないかと思った。どうなんでしょうね。

2007-09-07

ようこそ、℃-uteLisp の世界へ

発祥: http://ex23.2ch.net/test/read.cgi/morningcoffee/1188654905/

はじめに

Scheme という Lisp 語族言語を用いて ℃-ute相関関係プログラムし、様々な角度から関係性を分析する手法を紹介していきます(ソースコードは最後に張ります)。

まずは、メンバー間の関係を「リスト」というデータ型で表現します。例えば「栞菜->愛理」という関係

(kanna . airi)

という形で表すことができます。これに、「大好き」という情報を付加し、ついでにその関係の性質を数値化したものを加えると

((kanna . airi) (desc "大好き") (score . 1))

のようになり、関係図における一つの矢印の情報データ化できたことになります(暫定的に、好意は 1、良好・中立は 0、険悪は -1 の3段階で表すことにします)。

メンバー間の全ての関係性をこのデータ単位で定義し、データベース化しておくことで、色んな条件に基づいた検索やスコア計算などが可能となります。

例 1: リンク状況の調査

ここで相関関係図における矢印を「リンク」と呼ぶことにして、あるメンバーから他のメンバーへどのようにリンクし、またリンクされているかを調べることができます。

関係の中からリンクの起点を抽出してソートしてみると

(sort-nodes (number-list (from-links)))

結果:

((kanna . 6) (saki . 5) (maimi . 4) (erika . 3) (mai . 3) (chisato . 3) (airi . 2))

栞菜ちゃんがメンバー全員にリンクを張っていることが分かり、℃-ute ラブっぷりが伺えます。なっきーにも同様の事が言えます。例の「女の子が好き」発言を数値的に裏付ける結果と言えるかもしれません。

ただ、データ不足でリンク件数がまだ少ないのと、リンクの性質(好意/反感など)までは分からない点を考慮する必要があるでしょう。

例 2: 被リンク状況の調査

同様に、リンクの終点の件数を調べてみます。

(sort-nodes (number-list (to-links)))
((chisato . 5) (erika . 5) (kanna . 4) (maimi . 4) (airi . 4) (mai . 3) (saki . 1))

えりかちゃんと千聖ちゃんが高ポイントです。メンバーからの人気や注目度の高さを示すデータですが、千聖ちゃんの場合敵対的なリンクが2件含まれている点に注意してください。

なっきーの被リンク数が極端に少ないですが、単純にデータ不足のためだと思われます。はぶら(ryとか言わないようにお願いします。

例 3: 愛情度の評価

リンクに付随するスコアを計算することで、愛情の度合いを測ることができるのではないか、という考えに基づく研究です。

まず、全ての関係性を対象として、スコアマイナス関係を抽出してみます。

(filter-nodes (lambda (n)
		(< (score-relation n) 0)))

結果:

(((kanna . chisato) (desc "愛理に手出すんじゃねぇよ") (score . -1))
 ((saki . chisato) (desc "愛理に手出すんじゃねぇよ") (score . -1)))

件数だけを得ると

(length (filter-nodes (lambda (n)
			(< (score-relation n) 0))))
2

僅か2件です。

良好・中立的な関係

(length (filter-nodes (lambda (n)
			(= (score-relation n) 0))))
8

愛に満ちた関係

(length (filter-nodes (lambda (n)
			(> (score-relation n) 0))))
16

非常に多いです。舞美ちゃんの「℃-ute同士でラブラブなんですよ」発言(例のラジオ)を数値的に裏付ける結果と言えるんじゃないでしょうか。

次に、メンバーごとのスコアを算出してみます。Lisp 的には以下のようにフィルタリングと畳み込み (fold) で計算することができます。例えば

(foldr (lambda (n acc)
	 (+ (get-score n) acc))
       0
       (filter-nodes (cut to? <> 'kanna)))

栞菜ちゃんに対するリンクスコアが得られます。結果:

3

上式を一般化して一挙にメンバー全員に適用してみると

(sort-nodes (map (lambda (x)
		   (cons x (score-loved x)))
		 (all-members)))

結果:

((airi . 4) (kanna . 3) (mai . 2) (erika . 2) (maimi . 2) (saki . 1) (chisato . 0))

愛理ちゃんが好意を寄せられやすい傾向が伺えます。

今度は逆方向のスコアを計算してみると

(sort-nodes (map (lambda (x)
		   (cons x (score-loving x)))
		 (all-members)))
((kanna . 3) (maimi . 3) (chisato . 2) (airi . 2) (saki . 2) (mai . 1) (erika . 1))

まいまいえりかちゃんが特に堅い・一途だという傾向を読み取ることができます。

例 4: 相性の調査

今度は組み合わせ(カップリング)の評価です。

2点間相互のリンクスコアを加算したものを「相性」と考えられるものとします。最大値 (互いに好意を寄せている場合の数値) は現在スコアリング方式では 2 です。例えば

(score-between 'kanna 'airi)

の値は

2

となります。1 であれば一方通行と考えます。

関係性が未定義の場合もあるので 0 のものを除外して算出すると

(sort-nodes (filter (lambda (n)
		      (not (= (cdr n) 0)))
		    (map (lambda (n)
			   (cons n (apply score-between n)))
			 (all-combinations))))
(((chisato mai) . 2)
 ((chisato airi) . 2)
 ((airi kanna) . 2)
 ((saki kanna) . 2)
 ((kanna maimi) . 2)
 ((erika maimi) . 2)
 ((saki airi) . 1)
 ((saki erika) . 1)
 ((kanna mai) . 1)
 ((maimi airi) . 1)
 ((saki chisato) . -1)
 ((kanna chisato) . -1))

となります。若干ピンとこない部分もあるかも知れませんが、計算上は矛盾無くデータの内容を表しています。

参考までに、スコア 1 の相互関係の中身を見てみると

(map (lambda (p)
       (find-relation (cons (caar p) (cadar p))
		      identity))
     (filter (lambda (n)
	       (= (cdr n) 1))
	     (map (lambda (n)
		    (cons n (apply score-between n)))
		  (all-combinations))))
(((kanna . mai) (desc "喰ってやるよ") (score . 1))
 ((saki . airi) (desc "好き") (score . 1))
 ((maimi . airi) (desc "良き妹") (score . 1))
 ((saki . erika) (desc "彼氏にしたい") (score . 1)))

のようになります。

まとめ

以上の調査を経て気になった問題点を列挙してみます。

特に最初の点に関して、「百合的」なるものの質的評価がなかなか難しいと感じました。例えば「大好き」も「良き妹」も同じ 1 と評価してしまっているのが妥当かどうか、といったことです。

また、スレにて与えられた情報を評価・分析する方法としては有効だとしても、逆方向のフィードバックの手段がなかなか見つからないというのが三つ目の問題です(技術力不足とも言います)。(注:画像化の方法が分かりました。追記参照)

最後に、プログラムソースを示します。実行には PLT Scheme が必要です。文字コードUTF-8 で保存した上で、(load "c-ute.ss") としてください。文字化けする場合はターミナルUTF-8 を表示できるよう設定する必要があります。がんばってください。

プログラム

c-ute.ss:

(require (lib "etc.ss")
         (lib "list.ss")
         (lib "26.ss" "srfi")
         (lib "delete.ss" "srfi" "1"))

;;; Utilities

(define true? (compose not not))

(define (ignore _) #f)

(define fif
  (case-lambda
    ((predicate consequent)
     (fif predicate consequent ignore))
    ((predicate consequent alternative)
     (lambda (x)
       (if (predicate x)
           (consequent x)
           (alternative x))))))

(define (concat! xs) (apply append! xs))

(define (mapconcat f lst sep)
  (let lp ((str (f (car lst)))
           (lst (cdr lst)))
    (if (null? lst)
        str
        (lp (string-append str sep (f (car lst)))
            (cdr lst)))))

(define (slice-string str len)
  (let lp ((res '())
           (str str))
    (if (<= (string-length str) len)
        (reverse! (cons str res))
        (lp (cons (substring str 0 len) res)
            (substring str len)))))

(define (break-string str len)
  (mapconcat identity (slice-string str len) "\\n"))

;; NOTE: input and output ports have to be either file-stream or #f
;; (i.e., cannot be a string port)
(define (run exe opt in out)
  (let-values (((p p-i p-o p-e)
                (subprocess out in #f exe opt)))
    (subprocess-wait p)
    (close-input-port p-e)))

;;; Database

;; http://ja.wikipedia.org/wiki/%E2%84%83-ute

(define names
  '((erika . "えりか") (maimi . "舞美") (saki . "早貴") (airi . "愛理")
    (chisato . "千聖") (mai . "舞") (kanna . "栞菜")))

(define (symbol->name sym)
  ((fif true?
        cdr)
   (assq sym names)))

(define nodes '())
(define edges '())

(define (relate from to desc score)
  (let ((n (cons from to)))
    (or (find-relation n
                       (lambda (r)
                         (let ((d (assq 'desc r))
                               (s (assq 'score r)))
                           (set-cdr! d (cons desc (cdr d)))
                           (set-cdr! s (+ score (cdr s))))))
        (begin
          (set! nodes (cons n nodes))
          (set! edges (cons (cons n `((desc ,desc)
                                      (score . ,score)))
                            edges))))))

(define (find-relation n k)
  ((fif true? k)
   (assoc n edges)))

(define (related? x y)
  (find-relation (cons x y) (lambda (_) #t)))

(define (from? n x)
  (eq? (car n) x))

(define (to? n x)
  (eq? (cdr n) x))

(define flip-relation
  (case-lambda
    ((n)
     (and (related? (cdr n) (car n))
          (cons (cdr n) (car n))))
    ((n k)
     ((fif true? k)
      (flip-relation n)))))

(define (get-score n)
  (cdr (assq 'score n)))

(define (get-description n)
  (cdr (assq 'desc n)))

(define (describe-relation n)
  (find-relation n get-description))

(define (score-relation n)
  (or (find-relation n get-score) 0))

(define (print-node . ns)
  (for-each (cute find-relation <>
                  (lambda (r)
                    (display
                     (format "| ~a => ~a  (~a)~%"
                             (caar r) (cdar r)
                             (mapconcat (lambda (s)
                                          (string-append "\"" s "\""))
                                        (cdr (assq 'desc r))
                                        ", ")))))
            ns))

(define (iter-nodes k)
  (let lp ((nodes nodes))
    (unless (null? nodes)
      (k (car nodes))
      (lp (cdr nodes)))))

(define (filter-nodes p)
  (let ((ns '()))
    (iter-nodes (fif p
                     (cut find-relation <> (lambda (n)
                                             (set! ns (cons n ns))))))
    ns))

(define (from-links)
  (map car nodes))

(define (to-links)
  (map cdr nodes))

(define (all-members)
  (delete-duplicates! (from-links)))

(define (all-pairs) nodes)

(define (ordered-pairs)
  (concat! (map (lambda (x)
                  (map car
                       (sort (filter-nodes (cute to? <> (car x)))
                             (lambda (x y)
                               (> (get-score x) (get-score y))))))
                (sort-nodes (map (lambda (x)
                                   (cons x (score-loved x)))
                                 (all-members))))))

(define (all-combinations)
  (let lp ((cs '()) (ns nodes))
    (if (null? ns)
        cs
        (let ((n (car ns)))
          (lp (if (member (list (cdr n) (car n))
                          cs)
                  cs
                  (cons (list (car n) (cdr n)) cs))
              (cdr ns))))))

;; number-list :: [a] -> [(a . Int)]
(define (number-list ls)
  (let lp ((ns '()) (ls ls))
    (if (null? ls)
        ns
        (let ((x (car ls)))
          (lp ((fif not
                    (lambda (_) (cons (cons x 1) ns))
                    (lambda (n)
                      (set-cdr! n (add1 (cdr n)))
                      ns))
               (assq x ns))
              (cdr ls))))))

;; sort-nodes :: [(a . Int)] -> [(a . Int)]
(define (sort-nodes ns)
  (sort ns (lambda (x y)
             (> (cdr x) (cdr y)))))

(define (diff-nodes ms ns)
  (let lp ((ds '()) (ns ns))
    (if (null? ns)
        (sort-nodes ds)
        (lp (let* ((n (car ns))
                   (m (assq (car n) ms)))
              (cons (cons (car n)
                          (- (cdr m) (cdr n)))
                    ds))
            (cdr ns)))))

(define (get-total-score x p)
  (foldr (lambda (n acc)
           (+ (get-score n) acc))
         0
         (filter-nodes (cut p <> x))))

(define (score-loved x)
  (get-total-score x to?))

(define (score-loving x)
  (get-total-score x from?))

(define (score-between x y)
  (+ (score-relation (cons x y))
     (score-relation (cons y x))))

(define (-> x)
  (display (format "~%Links from [~a]~%" x))
  (iter-nodes (fif (cut from? <> x)
                   print-node)))

(define (<- x)
  (display (format "~%Links towards [~a]~%" x))
  (iter-nodes (fif (cut to? <> x)
                   print-node)))

(define (<-> x)
  (display (format "~%Reciprocal links for [~a]~%" x))
  (iter-nodes (fif (cut to? <> x)
                   (lambda (n)
                     (flip-relation n
                                    (lambda (m)
                                      (print-node m n)))))))

(define (<=> x)
  (display (format "~%Reciprocal matches for [~a]~%" x))
  (iter-nodes
   (fif (cut to? <> x)
        (lambda (n)
          (flip-relation n
                         (lambda (m)
                           (if (ormap (lambda (x)
                                        (ormap (lambda (y)
                                                 (equal? x y))
                                               (describe-relation m)))
                                      (describe-relation n))
                               (print-node m n))))))))

(define (<?> x)
  (let ((to (assq x (number-list (from-links))))
        (from (assq x (number-list (to-links)))))
    (display (string-append
              (format "~%Link statistics for [~a]~%"
                      x)
              (format "| ~a => ~a (love ~a)~%"
                      x
                      (cdr to)
                      (score-loving x))
              (format "| ~a => ~a (love ~a)~%"
                      (cdr from)
                      x
                      (score-loved x))))))

(define (info x)
  (for-each (cut <> x)
            (list <- <-> <=> -> <?>)))

;;; GraphViz (http://www.graphviz.org/) support

(define graphviz "C:/Program Files/ATT/Graphviz/bin/dot.exe")

(define (nodes->dot ns)
  (string-append "digraph cute {\n"
                 ;;"\tordering=out;\n"
                 ;;"\trankdir=LR;\n"
                 "\toverlap=true;\n"
                 "\tnode[fontname=\"msgothic.ttc\"];\n"
                 "\tedge[fontname=\"msgothic.ttc\",fontsize=9];\n"
                 (let lp ((str "") (ns ns))
                   (if (null? ns)
                       str
                       (let* ((n (car ns))
                              (s (score-relation n)))
                         (lp (string-append
                              str
                              (format "\t\"~a\" -> \"~a\""
                                      (symbol->name (car n))
                                      (symbol->name (cdr n)))
                              (format "[label=\"~a\",color=\"~a\","
                                      (break-string
                                       (car (describe-relation n))
                                       7)
                                      (cond ((> s 0) "red")
                                            ((= s 0) "green")
                                            (else "blue")))
                              (format "style=\"bold~a\"];\n"
                                      (if (and (not (= s 0)) (< s 1) (> s -1))
                                          ",dashed"
                                          "")))
                             (cdr ns)))))
                 "}"))

(define (write-dotfile dot file)
  (and (file-exists? file) (delete-file file))
  (with-output-to-file file
    (lambda ()
      (display dot)))
  file)

(define (dot->png dot png)
  (call-with-input-file (write-dotfile dot "c-ute.dot")
    (lambda (in)
      (and (file-exists? png) (delete-file png))
      (call-with-output-file png
        (lambda (out)
          (run graphviz "-Tpng" in out)))))
  'done)

;;; Setup database

;; Based on:
;; http://ex23.2ch.net/test/read.cgi/morningcoffee/1188654905/116-142
(begin
  (relate 'maimi 'erika "大好き" 1)
  (relate 'maimi 'kanna "良き妹" 1)
  (relate 'maimi 'airi "良き妹" 1)
  (relate 'maimi 'mai "姉妹" 0)
  (relate 'erika 'maimi "一番可愛いよ" 1)
  (relate 'erika 'kanna "仲間" 0)
  (relate 'erika 'chisato "おソロパジャマ" 0)
  (relate 'kanna 'erika "仲間" 0)
  (relate 'kanna 'maimi "好き" 1)
  (relate 'kanna 'saki "喰ってやるよ" 1)
  (relate 'kanna 'mai "喰ってやるよ" 1)
  (relate 'kanna 'airi "大好き" 1)
  (relate 'kanna 'chisato "愛理に手出すんじゃねぇよ" -1)
  (relate 'saki 'maimi "荷物整理" 0)
  (relate 'saki 'erika "彼氏にしたい" 1)
  (relate 'saki 'kanna "興味がある" 0.5)
  (relate 'saki 'chisato "愛理に手出すんじゃねぇよ" -1)
  (relate 'saki 'airi "好き" 1)
  (relate 'airi 'kanna "受け入れる" 1)
  (relate 'airi 'chisato "最近親密" 1)
  (relate 'mai 'erika "保護者" 0)
  (relate 'mai 'maimi "姉妹" 0)
  (relate 'mai 'chisato "恋人" 1)
  (relate 'chisato 'erika "おソロパジャマ" 0)
  (relate 'chisato 'mai "恋人" 1)
  (relate 'chisato 'airi "最近親密" 1))

;; query relations / draw graphs

(if (file-exists? graphviz)
    (dot->png (nodes->dot (ordered-pairs))
              "c-ute.png")
    (for-each info (all-members)))

追記(グラフ描画について)

Graphviz というソフトによって関係図を可視化できる、ということを教えていただきました(既に上プログラムを実行すると自動的に関係画像を作成するようにしてあります)。ここでは技術的な観点から幾つか注意点を挙げておきます。

まず、Scheme プログラムから Graphviz を動かす方法について。コマンドラインからの起動のように、プログラムへのオプション文字列で入出力ファイルを指定する方法ではどうも上手く行きませんでした。調査の結果、入出力ファイルポートScheme 側で用意しておく必要があるようです。処理系によって異なりますが、PLT Scheme の場合 subprocess という関数を次のように呼び出します。

(subprocess output-port input-port #f "/path/to/dot.exe" "-Tpng")

ここで output-port は png画像ファイルへの出力ポート。input-port は dot ファイルグラフの定義ファイル)の入力ポートです。エラーポートは必要無いでしょう (#f)。

dot という名前の実行ファイルが、関係図のような有向グラフを描画するプログラムです。最後にオプション文字列として出力形式を指定します(png, jpeg, gif, etc.)。

次に dot ファイルScheme で書く方法ですが、以下の基本的な有向グラフの書式

digraph g {
  A -> B;
  B -> C;
  C -> A;
}

を理解すれば、後は実直に Schemeデータを当てはめて format 関数等で変換するだけです。

(string-append
 "digraph g {"
 (format "~a -> ~a;" (car node) (cdr node))
 "}")

問題は、ノードを配置する順番によって出来上がる画像が変わってくる、ということです。

より見た目に分かりやすくするための工夫としては、相互にリンクするノード同士が dot ファイル上でも近接して出力されるようにすると良いでしょう。関連の強いものが画像の上でも近くに表示されるようになります。

また上述(特に例3)のスコア概念を応用し、スコアの低いものが後に出力されるようにすることで、重力感覚に一致するような関係図を得ることができるでしょう。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん