【ぷよプロ】ぷよぷよでプログラミングを学習する方法

みなさんこんにちは!

本日は、あの有名な「ぷよぷよ」でプログラミングを学習していきたいと思います。

実は、2020年6月にゲーム「ぷよぷよ」の発売元であるセガが、ぷよぷよを通じてプログラミング学習ができるプログラムをなんと無料で公開してくれたのです!

名付けて、ぷよプロと呼ばれる本プログラムの詳細についてはぜひとも次のサイトから確認してみてください!

プログラムには実装するソースコードの行数に応じて、基礎(入力量4行)、初級(入力量28行)、中級(入力量95行)、上級(入力量1,015行(全部))となっており、難易度別に挑戦ができる形式となっています。

ぜひみなさん、一度挑戦してみてください!

とは、いったものの、、、

問題はこれ、「写経」なんですよね、、、

正しいコードを見てそのまま書き写す、この学習方法自体には賛成です。そして、「ぷよプロ」の趣旨は「やりきったという達成感を得られる」なので、その意味では目的を達することができると思います。

ただ自分が思うようにプログラミングして、アイデアを実現させるためには、結局はそのコードが何を表しているのか、それがわからないことには応用が効かず、また、せっかく学習したのであれば次につながったほうがよりよいのではないかな、と思っています。

なので、この【ぷよプロ】シリーズでは、ソースコード1,015行全てに対して(重複する内容は割愛しますが)具体例もつけながら解説していきたいと思います。

そもそも「ぷよぷよ」とは?

ぷよぷよとは、テトリスのような落ちもの系のパズルゲームです。「ぷよ」と呼ばれるモンスター(?)を動かして積み上げていくことでゲームが進行します。

ぷよぷよを知らない人は実際にプレイしている動画を見てみてください。

ルールシステムについての詳細は以下です。(Wikipediaより引用)

・フィールドは基本的に縦か12マス×横6マスの格子で構成される。格子の1マスにつき1個のブロック(ぷよぷよ、略してぷよ)を置くことができる。ただし、上方向は、画面外に1マス分だけぷよを置くことができる。

・上からぷよが2つ1組で落下してくる(「組ぷよ」と呼ばれる)。ぷよは種類ごとに色が異なり、色は3-5色(通常は4色)ある。プレイヤーはぷよに対して回転、横移動、高速落下のいずれかの操作を行う。

・次に落下するぷよはフィールドの枠外に「NEXTぷよ(ネクストぷよ)」として予告される。配られる組ぷよの配分は麻雀ツモに例えられている[要出典]

・落下してきたぷよがフィールドの床やほかのぷよに衝突すると、その位置にぷよが固定される。ただし、組ぷよを横にして置いたりなどして、ぷよに1マス分でも下方向に空白がある場合は、強制的にそのぷよだけ落下する。

・固定されたぷよと同色のぷよが周囲4方向にいる場合、それらは互いにくっつく。

ぷよが4個以上くっつくと消滅し得点となる。

・ぷよの消滅により上にあったぷよが落下する。このとき再びぷよが4個以上くっつくと消滅し、連鎖が起きる[5]。なお、普通に4つ色を並べて消す行為だけでも1連鎖と考え、消滅した回数(○回)に応じて○連鎖と呼ばれる。複数色を同時に消した場合や同色を別箇所で消した場合でも、1連鎖扱いとなる。

・ぷよを消したときに入る得点は、消したぷよの数に、設定された「連鎖倍率」を掛けることで計算できる。

・左から3列目が一番上まで埋まると「窒息」してゲームオーバー

Wikipedia(ぷよぷよ)

とまあ、難しそうに書かれていますが、このようなルールを意識することは具体的なプログラミングをする際にかなり重要です。

要件定義と呼ばれる作業で、実現したい内容をシステム化できるレベルで整理することがシステム開発では重要です。

要件定義などIT業界で現場で実際に何をしているのかについては次の記事を参考にしてください。

[TBD: 執筆中]

本シリーズで学習できること

本シリーズを通じて学習できることは次の内容です。

  • 「ぷよプロ」(上級)をやりきること
  • JavaScriptの基本的な文法
  • Webアプリの開発方法
  • 次につながるアプリ開発の経験

今回はもちろん、ぷよぷろ(上級)を対象として解説を行います。

そしてJavaScriptは筆者が初心者におすすめするプログラミング言語の1つです。

Webアプリを開発する際には必須の知識であり、JavaScriptなしでの開発はあり得ません。

JavaScriptを学習したら、次はTypescriptやVue.js、React、JQueryなどのフレームワークへの学習へと進んでいくことができます。

本シリーズの記事について

本シリーズは次の順で進めていきます。

“ぷよぷよ”を作ってプログラミングを学習しよう(本記事)

あの有名なゲーム”ぷよぷよ”の開発を通じてアプリ開発の基礎を学習しましょう。

セガが用意してくれた「ぷよプロ」プログラムを通じてJavaScriptを学習しよう。

ぷよぷよプログラミングを始めよう(環境構築編)

ぷよぷよプラグラミングをするための準備をしましょう。

本記事では、Visual Studio Codeを利用してアプリ開発をしていきます。

Visual Studio Codeで本格開発!ぷよぷよプログラミングの始め方
次につながる筆者のおすすめ学習

ぷよプロの「次」に学ぶのに筆者がおすすめする内容を紹介します。

それでは次の記事でお会いしましょう!

22 COMMENTS

チロル

Thank you 🙂
I’ve just been busy recently.
But I can take more time than before and I begin to write again.

返信する
카지노사이트

After looking into a handful of the blog articles on your web page,
I honestly like your technique of blogging. I bookmarked it to my
bookmark webpage list and will be checking back in the near future.

Take a look at my web site too and tell me your opinion.

返信する
チロル

I’m sorry to reply late.
Is really busy because the project I took in was about to be released and I have to prepare it.

返信する
チロル

Ah, do you mean another topic for learning about programming?
Then, check it out following post. It’s about SikulliX which is a frame work of Python and you can use image recognition easily.
Because it’s very easy to learn, you can apply for what you want to automate.

https://tomotomo-coding.com/?p=360

返信する
카지노사이트

Good day! I know this is kinda off topic but I was wondering which
blog platform are you using for this website? I’m getting tired of WordPress because I’ve had problems
with hackers and I’m looking at options for another platform.
I would be great if you could point me in the direction of a good platform.

返信する
チロル

In fact, I also use word press for their blog.
And I’m wondering why your site is hacked. If it’s because of using word press, it’s good to change the platform, but it’s not, it might not be the right solution to avoid hackers.
So, please analyze the reason why your website is hacked first

返信する
카지노사이트

I am not sure where you’re getting your info, but great topic.

I needs to spend some time learning much more or understanding more.

Thanks for magnificent info I was looking for this info for my mission.

返信する
카지노사이트

You’re so awesome! I do not think I’ve read something like this before.
So wonderful to discover someone with a few original thoughts on this subject
matter. Seriously.. thank you for starting this up. This web site is one thing that is needed on the internet, someone
with a little originality!

返信する
카지노사이트

Appreciating the time and effort you put into your blog and detailed information you offer.
It’s nice to come across a blog every once in a while that isn’t the same unwanted rehashed material.
Fantastic read! I’ve saved your site and I’m including your RSS feeds to my Google account.

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です