前置き
空前のズンドコブームによりズンドコキヨシが各言語で実装されています。
きよしのズンドコ節のリリースは2002年 1 です。歴史があります。
しかしそれと同じくらいプリキュアにも歴史があります。プリキュアシリーズ第1作目である ふたりはプリキュア の放映開始は2004年です。ズンドコと近い!
キュアエンジニア 2 としては妙な親近感と対抗意識がわいたので、各プログラミング言語で実装されたプリキュアの紹介をしたいと思います
各言語での実装紹介
Acme::PrettyCure (Perl実装)
- https://github.com/kan/p5-acme-prettycure
- Acme::PrettyCure - JPerl Advent Calendar 2010 Acme Track
- Acme::PrettyCure - プリキュアは永遠に不滅です - Perl Advent Calendar Japan 2011 Acme Track
@kan氏作
全てはここから始まったと言っても過言ではない
執筆時点では第10作目の ドキドキ!プリキュア まで対応しています
pycure(Python実装)
- https://github.com/drillbits/pycure
- https://pypi.python.org/pypi/pycure
- プリキュアハッカソンで pycure 作った - 祢占堂
@drillbits 氏作
執筆時点では第11作目の ハピネスチャージプリキュア! まで対応しています
rubicure(Ruby実装)
sue445作
前述の Acme::PrettyCure と pycure にインスパイアされて作りました
執筆時点では最新作の 魔法つかいプリキュア! まで対応しています
詳しくは下記エントリをご覧ください
rubicureの活用事例です
Precure(Common Lisp実装)
@stibear 氏作。
執筆時点では第10作目の ドキドキ!プリキュア まで対応しています
groovycure(Groovy実装)
@ligun 氏作
執筆時点では第12作目の Go!プリンセスプリキュア まで対応しています
clocure(clojure実装)
@ka_ 氏作。
執筆時点では最新作の 魔法つかいプリキュア! まで対応しています
precure.js(JavaScript実装)
@daishi_hmr 氏作。
執筆時点では第11作目の ハピネスチャージプリキュア! まで対応しています
goprecure(golang実装)
sue445作
Go!プリンセスプリキュア のみに対応しています 3
yes-precure5-command (haskell実装)
- https://github.com/igrep/yes-precure5-command
- https://hackage.haskell.org/package/yes-precure5-command
@igrep 氏作。
第4作目の Yes!プリキュア5 と 第5作目の Yes!プリキュア5GoGo! のみに対応
FCure(F#実装)
後述のRubicureAPIのjsonをそのまま利用してるらしい
typesafe-precure (Haskell実装)
- https://github.com/igrep/typesafe-precure
- http://hackage.haskell.org/package/typesafe-precure
- igreque : Info -> Haskellでプリキュアを作ってみた #cure_advent
- 「タイプセーフプリキュア!」を支える技術 - Qiita
@igrep 氏作
執筆時点では最新作の 魔法つかいプリキュア! まで対応しています
【おまけ】その他ツール群
Cureutils
@greymd 氏作。
rubicureを利用した 次世代高度キュアIT人材育成用コマンド集
詳しくは 入門Cureutils // Speaker Deck 参照
RubicureAPI
sue445作
rubicureをwebアプリにマウントしてjsonで取得できるようにしています。Rubyがインストールされてない環境でも curl
があれば最新のプリキュア情報にアクセスできます
$ curl -s https://rubicure.herokuapp.com/series.json | jq .
[
{
"series_name": "unmarked",
"title": "ふたりはプリキュア",
"started_date": "2004-02-01",
"ended_date": "2005-01-30",
"girls": [
"cure_black",
"cure_white"
]
},
{
"series_name": "max_heart",
"title": "ふたりはプリキュア Max Heart",
"started_date": "2005-02-06",
"ended_date": "2006-01-29",
"girls": [
"cure_black",
"cure_white",
"shiny_luminous"
]
},
{
"series_name": "splash_star",
"title": "ふたりはプリキュア Splash☆Star",
"started_date": "2006-02-05",
"ended_date": "2007-01-28",
"girls": [
"cure_bloom",
"cure_egret"
]
},
{
"series_name": "yes",
"title": "Yes! プリキュア5",
"started_date": "2007-02-04",
"ended_date": "2008-01-27",
"girls": [
"cure_dream",
"cure_rouge",
"cure_lemonade",
"cure_mint",
"cure_aqua"
]
},
{
"series_name": "yes_gogo",
"title": "Yes! プリキュア5 Go Go!",
"started_date": "2008-02-03",
"ended_date": "2009-01-25",
"girls": [
"cure_dream",
"cure_rouge",
"cure_lemonade",
"cure_mint",
"cure_aqua",
"milky_rose"
]
},
{
"series_name": "fresh",
"title": "フレッシュプリキュア!",
"started_date": "2009-02-01",
"ended_date": "2010-01-31",
"girls": [
"cure_peach",
"cure_berry",
"cure_pine",
"cure_passion"
]
},
{
"series_name": "heart_catch",
"title": "ハートキャッチプリキュア!",
"started_date": "2010-02-07",
"ended_date": "2011-01-30",
"girls": [
"cure_blossom",
"cure_marine",
"cure_sunshine",
"cure_moonlight"
]
},
{
"series_name": "suite",
"title": "スイートプリキュア♪",
"started_date": "2011-02-06",
"ended_date": "2012-01-29",
"girls": [
"cure_melody",
"cure_rhythm",
"cure_beat",
"cure_muse"
]
},
{
"series_name": "smile",
"title": "スマイルプリキュア!",
"started_date": "2012-02-05",
"ended_date": "2013-01-27",
"girls": [
"cure_happy",
"cure_sunny",
"cure_peace",
"cure_march",
"cure_beauty"
]
},
{
"series_name": "dokidoki",
"title": "ドキドキ!プリキュア",
"started_date": "2013-02-03",
"ended_date": "2014-01-26",
"girls": [
"cure_heart",
"cure_diamond",
"cure_rosetta",
"cure_sword",
"cure_ace"
]
},
{
"series_name": "happiness_charge",
"title": "ハピネスチャージプリキュア!",
"started_date": "2014-02-02",
"ended_date": "2015-01-25",
"girls": [
"cure_lovely",
"cure_princess",
"cure_honey",
"cure_fortune"
]
},
{
"series_name": "go_princess",
"title": "Go!プリンセスプリキュア",
"started_date": "2015-02-01",
"ended_date": "2016-01-31",
"girls": [
"cure_flora",
"cure_mermaid",
"cure_twinkle",
"cure_scarlet"
]
},
{
"series_name": "maho_girls",
"title": "魔法つかいプリキュア!",
"started_date": "2016-02-07",
"girls": [
"cure_miracle",
"cure_magical"
]
}
]
$ curl -s https://rubicure.herokuapp.com/girls/cure_miracle.json | jq .
{
"girl_name": "cure_miracle",
"human_name": "朝日奈みらい",
"precure_name": "キュアミラクル",
"cast_name": "高橋李依",
"color": "pink",
"created_date": "2016-02-07",
"birthday": "6/12",
"extra_names": null,
"transform_calls": [
"cure_up_rapapa"
],
"transform_styles": {
"diamond": {
"girl_name": "cure_miracle_diamond",
"precure_name": "キュアミラクル(ダイヤスタイル)",
"color": "pink",
"created_date": "2016-02-07",
"transform_message": "キュアップ・ラパパ! ダイヤ!\nミラクル・マジカル・ジュエリーレ!\nふたりの奇跡!キュアミラクル!\n魔法つかいプリキュア!!",
"attack_messages": [
"リンクルステッキ!\nダイヤ!永遠の輝きを私達の手に!\nフルフルリンクル!\nプリキ ュア・ダイヤモンド・エターナル!\n"
]
},
"ruby": {
"girl_name": "cure_miracle_ruby",
"precure_name": "キュアミラクル(ルビースタイル)",
"color": "red",
"created_date": "2016-02-21",
"transform_message": "キュアップ・ラパパ! ルビー!\nミラクル・マジカル・ジュエリーレ!\nふたりの奇跡!キュアミラクル!\n魔法つかいプリキュア!!",
"attack_messages": [
"リンクルステッキ!\nルビー!紅の情熱よ私達の手に!\nフルフルリンクル!\nプリキュ ア・ルビー・パッショナーレ!\n"
]
}
}
}
APIの方が古いrubicureを使い続けてるような心配もあるかもしれないですが、
- rubicureをリリース
-
Tachikoma.io が週に1回
bundle update
してPullRequestを作成 - PullRequestをマージしたらHerokuに自動デプロイ
のような半自動運用にしてるのでだいたい最新に追随しています
最後に
僕が把握してるのはこれだけですが他にありましたらコメントや編集リクエストで教えてください