プリキュアをプログラミングで再現してみる(準備編)

nabefutaです。

今回は、プリキュアをプログラミングを使って再現するのに、準備として、変身部分と簡単な攻撃の部分をJavaを使って書いてみました。

注意:コードは https://github.com/nabefuta220/precure_reproductからでも見ることができます。

 私が考えるプリキュアの定義について

まずは、「プリキュア」という定義について私なりの解釈を書いておきます。*1

  • 変身時の挙動がある
  • 1つ以上の技が使える
  • 変身ができるかどうかは高々個人の状態、妖精、変身アイテム(必要に応じて他のプリキュアに変身する人物、そして、同時に変身する)のみに左右される

ひとまずは、このように認識しています。

逆に言うと、この条件さえ満たせば、性別を問わず、だれでもプリキュアであると、考えています。

今回作ったコードの説明

今回は、ひとまず、cure.Nabefutaとしてつくり、次のような技を実装しました。

  • precure.action (特に意味も無ければ、効果もありません...)

今回は、使う時に、cure.(名前)のようにしたり、技を使う時にprecure.(技名)のようにして、アニメ上で言うときと同じようにするのを心がけました。

例:

public class Main {
    public static void main(String[] args) {
        cure.Nabefuta nabefuta = new cure.Nabefuta(5);
        new precure.action(nabefuta);
        new precure.action();
    }
}

今回作ったコード

src/cure/Nabefuta.java (cureNabefutaを実装したもの)

package cure;

public class Nabefuta {
    private int flag;

    public Nabefuta(int num) {
        this.flag = num;
    }

    public int getFlag() {
        return this.flag;
    }
}

src/precure/action.java (precure actionを実装したもの)

package precure;

public class action {

    public action() {
        System.out.println("NA");
    }

    public action(cure.Nabefuta a) {
        System.out.println("action :" + a.getFlag());
    }
}

この調子で今週のプリキュアは放送後には、キュアサマー(cure Summer)を実装しようと思います。

*1:この分野については、論争が激しいため、あくまで、一個人の意見として読んでください。

一人のプリキュア視聴者としての自己紹介

nabefutaです。ここでは、一人のプリキュア視聴者としての詳しい自己紹介をしていきます。

(このツイートの詳細部分を話していきたいと思います)

プリキュアにはまり、離脱するまで

私が初めてプリキュアを知ったのは、2007年のYes!プリキュア5の時でした。

当時は妹*1につられて見ていました。

そのため、当時は流し読みならぬ流し見のような感じで、大切なことも心に残っていない状態でした。

唯一覚えているのは、シリーズが変わって、フレッシュプリキュア!になったときに、「あれ?キュアドリームはどうしたの?」となったことです。

このような視聴スタイルはハピネスチャージプリキュア!までは続いていましたが、

新シリーズとして、プリンセスをモチーフにした、Go!プリンセスプリキュアから、プリキュアを見ることに恥ずかしさが芽生え、プリキュアから離れました。

しかし、新シリーズについては、ニュースでも出ていたため、題名だけは知っている状態は維持していました。

プリキュアを再び知るまで

おジャ魔女どれみとの出会い

時は流れて、2019年の2月頃、YouTubeで偶然、おジャ魔女どれみ全シリーズお着替え・変身まとめ*2たるものを見つけました。

そこから、おジャ魔女どれみを知りました。

それに、当時プログラミングを勉強していたこともあり、この作品のテーマである魔法がプログラミングによって書き表せるという思いを持ち、おジャ魔女どれみにはまりました。

プリキュアとの出会い再び

プリキュアを再び知るきっかけになったのも、またYouTubeでした*3

それ以来、プリキュアシリーズのうち、気に入った物の感想記事を読むことに明け暮れていました。

プリキュアを再びリアル視聴するようになるまで

2019年の12月にTVerでアニメの見逃し配信を見るときに、たまたまスター☆トゥインクルプリキュアの42話があることに気づきました。

実際にリアルタイム視聴を始めたのは、45話でしたが、その回でデネブ*4を取り巻く星が長い年月を経て変化するという台詞が私が知っていた、北斗七星の形が長い年月を経て変化するという知識と結びつき、プリキュアという存在がアニメから、学校では教えてくれないことを教えてくれる課外授業に変わりました。

私が考えるプリキュアの魅力

私が考えるプリキュアの魅力は作中での情報がこれまでに学んだ知識と結びついたり、思いもしないことに興味をもつことができる点です。

プリキュアを再びリアル視聴するまでで上げた例だと、「星座は時を経て変わる」という星座の知識とスター☆トゥインクルプリキュア45話の「デネブを取り巻く星が長い年月を経て変化する」という知識が結びつくきました。

逆に、HUGっと!プリキュア35話では、帝王切開による出産による安全性による話題がでて、詳しく調べるきっかけができました。

しかし詳しく学ぼうとすると、話の内容はあくまでも「子供向け」に作れている関係ですこし簡単になっていることがあるため、

作中で描かれていない情報は、自分で調べたりするのが大事だと考えています。*5

プリキュアシリーズの視聴状況

プリキュアシリーズのうち、気に入った物の感想記事を読むことに明け暮れていた関係もあって、基本的は、気になった回をDVDをレンタルして見る、というのが中心で、これで、HUGっと!プリキュアは見ていました。

いまは、Amazon prime videoでプリキュアシリーズが配信されたことに伴い、Amazon prime videoで見ることが中心となっていて、現在はハートチャッチプリキュア!は全話視聴済み、Yes!プリキュア5を視聴です。

それとは別に、スター☆トゥインクルプリキュアの終盤以降は、リアルタイムで見ています。

好きなプリキュアソング

自己紹介シートにはメモワール・ミルフィーユ、イマージュの翼、ZUTTO 在る ココにの3つを挙げましたが、実際はもっとたくさんあって、Aileやもう一度、あの空の先へなども好きです。

全部と書くことも考えましたが、まだすべてのすべてのプリキュアソングを聴いているわけでもないので、特に好きな3曲を上げておきました。

フォローNGについて

頭ごなしにプリキュアを否定する人

私としては、プリキュアは一つの学習教材として捉えていることもあって、プリキュアを見ている大人の男性はキモいなどの視聴者に対する誹謗・中傷のコメントはNGです...

それと同じように、プリキュア内の登場人物が取った行動などに理由を入れずに批判をするのもNGです...

ただし、「自分(自分が(人名))だったらこうする」と言う内容はOKです。

いわゆる個人を尊重して欲しい、といった内容です。

公式の発表前にプリキュアストーリーに関するネタバレをする人

いわゆる早バレです。

私としては追加戦士や新たな浄化技、フォームなどは考察のし甲斐があるため、公式の発表前では、内容の考察程度にとどめて欲しいです*6。(考察なら大歓迎です!!)

例えば、

ハピネスチャージの新フォーム、羽が生えたりするのかな?

程度なら許容範囲ですが、

ハピネスチャージの新フォーム、イノセントフォームらしいよ

や画像の公開はNGです...*7

つまり、想像力を膨らませる時間が欲しい、ということです。

好きなプリキュアエピソード

ハートチャッチプリキュア第28話

夏休みの宿題回です。

この回は、題材として、夏休みの宿題なんてやりたくない!という、小学生によくある事例を取り合げて、

同じく宿題をやっていない主人公:来海えりかが怪物:デザトリアンの主張に一瞬は納得しようとするが、戦闘をへて改心し、

同時に夏休みの宿題の意義や助け船もあるよと示すところが良い意味で教育的で良いと思いました。

おまけに、アバンでの「やることやらないで遊んでばかりいるとデザトリアンになっちゃうわよ」と言う台詞がプリキュアの世界だからこそできる脅し文句だと思いました。

HUGっとプリキュア第49話

HUGっとプリキュアの最終回です。ですが、私はあえて総まとめ回と呼んでいます。

と言うのも、この回は過去と未来が現在を経てつながる回だと思っているからです。

ここで言う、過去、現在、未来とは、2030年(Bパート)からみたもので、

それぞれ、次のようなイメージを持っています。

  • 過去:生まれ育った懐かしい町。過去の体験したこと、経験したもののすべて

  • 現在:長い長いトンネル。暗く、ただ、自分の足音が響くなかで自分や仲間を信じ、自分で決めた先へ進む

  • 未来:トンネルを抜けた先にある輝く世界。一見、(過去寄りの)現在と変わらなく見えるが、過去の経験を生かすことで、ずっと進んだ世界に見える

劇伴音楽上では、

というイメージを持っています。

また、このシリーズについて、最終回==終わりと言うイメージがあまりなく、むしろ始まりというイメージがあると言う点でも好きです。

*1:年齢は伏せておきます...

*2:ここでのお着替えとは、プリキュアでいうところの変身です。

リンク:https://www.youtube.com/watch?v=SWUcxz0EUD0

*3:きっかけになった動画のタイトルは【公式】ふたりはプリキュア 第1話「私たちが変身!? ありえない!」です。

リンク:https://www.youtube.com/watch?v=EtXI6Ta5dVE

*4:はくちょう座にある恒星、夏の大三角形の一つ

*5:いわゆる大学の授業言うところの自習です

*6:そもそも早バレを拡散する時点でアウトですが...

*7:もちろん、公式の発表後はOKです!

競プロerとしての自己紹介

ここでは、競技プログラマーとしての自己紹介をしていきます。

ユーザーネーム・競プロ歴

nabefutaです。

競技プログラミングは2018年の11月にpaiza*1で知り、2019年の6月にAtCoderのBeginner Contest に参加して以来、2021年の3月で1年と9ヶ月、途中休止をはさみながら、主に週末にAtCoderのBeginner Contest に参加して現在、コーダーです。

AtCoderに出会うまで

ここでは、AtCoderに出会うまでを時系列にまとめていきます。

プログラミングとの出会い

プログラミングとの出会いは、私が小学4年生だったときの夏休みにある学校のオープンスクールです。

そのときに、ドリトル*2でMYUロボを動かしたのが初めてのプログラミングでした。

その後、中学3年の頃にiOSのアプリ:Swift Playground‪sをきっかけにSwift*3を知り、その翌年には部活でC言語を知りました。

競技プログラミングとの出会い

paizaとの出会い

部活でC言語について学んだあと、自習の手段として、paizaのコードガールこれくしょんを紹介されました。

そのときに「もっと難しい問題も解きたい!」となってHAEDモードを選んだのですが、その当時はPython3版しか実装されていませんでした。しかし、やっていくうちに、Python3でも簡単なプログラムならば書けるようになりました。

それとほぼ同時にスキルチェック*4にも挑戦するようになりました。

最初は、「標準入力って何?」といった感じで、Dランクすら獲れなかったのですが、標準入力の代わりに入力値となっている問題でDランクを獲ってからは、暇なときにはスキルチェックに取り組み、2019年の2月には、Aランクを獲ることができました。

AtCoderとの出会い

2019年の3月に関東での交流会でAtCoderを知りました。

そのときから、C言語でもAtCoderに参加できることは知っていましたが、当時は実力が余りついていなかったと思い、paizaランクSランクを獲ってから参加しようと思っていましたが、獲れる気配がなかったため、2019年の6月に初参加しました。*5

AtCoderで主に使っている言語

AtCoderに参加して以来しばらくは、主にC言語、処理の内容によって、Python3を使っていました。しかし、ある問題*6をきっかけにC++一本に切り替えました。

印象に残っているアルゴリズム・データ構造

動的計画法(DP)*7です。

私にとって、動的計画法は宿敵ともいえる関係で、最初に参加したコンテストでも、これに引っかかり、それ以来、節目節目で出くわしていて、印象に残っています。

*1:ITやWebエンジニアに特化した転職・就職・学習サイトです。 その中でも、paizaラーニングでは、C、Java、Python3など、7言語のプログラムの基礎をWeb上のエディタを使いながら学ぶことができ、また、スキルチェックで腕試しができるので、私はAtCoderを始める前に使い、基礎的な知識を習得しました。 リンク:https://paiza.jp/

*2:日本語を使って書くことができるプログラミング言語です。 ドリトルの情報ページ: https://dolittle.eplang.jp/

*3:主にiOSのアプリの開発で使われているプログラミング言語です。2014年と比較的最近登場したのに伴い、他の言語に似たところがあります。

*4:問題が出題されるので、その問題に答えるプログラムを規定時間内に提出して、プログラミングの提出までの時間と解答の正確さによってpaizaランクが与える仕組みです。

下から2番目のDランクは標準入出力、基本的な構文を知っていれば突破できますが、一番上のSランクになると、普通にプログラグを組むと実行時間制限を越えてしまうため、工夫なしには突破できません。

公式ページの解説: https://paiza.jp/guide/career#outline

*5:ちなみにpaizaランクSランクを獲ったのは、2020年の4月のことでした。

*6:その話については後日上げる予定です

*7:ある大きな問題を解くのに、いくつかの小さな問題に分け、その結果をまとめて大きな問題を解く手法です。

自己紹介 + このブログについて

nabefutaです。

2019年の6月にAtCoderに初参加し、その道中にプリキュアにはまった、変わった人です。

このブログにはAtCoderの問題の考察と、プリキュアの考察(主に変身シーンとパワーアップ関係)を投稿する予定です。