Edited at

プリキュアの各言語での実装まとめ

More than 1 year has passed since last update.


前置き

空前のズンドコブームによりズンドコキヨシが各言語で実装されています。

ズンドコキヨシまとめ - Qiita

きよしのズンドコ節のリリースは2002年 1 です。歴史があります。

しかしそれと同じくらいプリキュアにも歴史があります。プリキュアシリーズ第1作目である ふたりはプリキュア の放映開始は2004年です。ズンドコと近い!

キュアエンジニア 2 としては妙な親近感と対抗意識がわいたので、各プログラミング言語で実装されたプリキュアの紹介をしたいと思います


各言語での実装紹介


Acme::PrettyCure (Perl実装)

@kan氏作

全てはここから始まったと言っても過言ではない

執筆時点では第10作目の ドキドキ!プリキュア まで対応しています


pycure(Python実装)

@drillbits 氏作

執筆時点では第11作目の ハピネスチャージプリキュア! まで対応しています


rubicure(Ruby実装)

sue445作

前述の Acme::PrettyCure と pycure にインスパイアされて作りました

執筆時点では最新作の 魔法つかいプリキュア! まで対応しています :triumph:

詳しくは下記エントリをご覧ください

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実装)

@igrep 氏作。

第4作目の Yes!プリキュア5 と 第5作目の Yes!プリキュア5GoGo! のみに対応


FCure(F#実装)

@pocketberserker 氏作

後述のRubicureAPIのjsonをそのまま利用してるらしい


typesafe-precure (Haskell実装)

@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を使い続けてるような心配もあるかもしれないですが、


  1. rubicureをリリース


  2. Tachikoma.io が週に1回 bundle update してPullRequestを作成



  3. PullRequestをマージしたらHerokuに自動デプロイ

のような半自動運用にしてるのでだいたい最新に追随しています


最後に

僕が把握してるのはこれだけですが他にありましたらコメントや編集リクエストで教えてください :wink:





  1. ズンドコ節 - Wikipedia より 



  2. プリキュアが好きなエンジニア 



  3. Goだけに