UdemyのPythonコースとして ロジックPython – リバーシブルゲーム | Python中級者を目指すプログラミング練習コース を近日公開予定です無事公開できました。
与えられた機能要件(今回はリバーシブルゲーム)をどう組んでいくのか、それを考えるところから一緒に進めていき、実際に純粋なPythonでコーディングしていく、そんなコースです。
(まったくのPython初心者には難しい内容です。Pythonの関数までの基礎学習を終えた方向けのコースです。)
今回、このコースの紹介の意味も込めて、コース制作の経緯を書いてみたいと思います。
- オセロは株式会社メガハウスの商標なので、以下ではリバーシブルゲームと表現します。
- リバーシブルゲームは一般にオセロと呼ばれるような、色反転のボードゲームのことです。
モバイルゲーム開発のサンプルがきっかけ
僕はモバイルゲーム開発に乗り出していて、Unityに慣れるためにサンプルとしてリバーシブルゲームを公開してみることにしました。
ゲームサンプルはゲーム風の要素(勝敗を決する)があれば初めはなんでもよかったので軽い気持ちでリバーシブルゲームにすることにしました。
軽く考えていましたが、やってみると意外と奥が深かったです。
Udemyのコースはこの中でアイデアとして生まれました。
意外と奥が深くロジック構築が必要なことに気づく
Unityに限らず、リバーシブルゲームの例は検索すれば多く見つかると思います。
でもせっかくなので、自分で考えてロジックを組んでみました。
盤面があって、ある石をおいた時、はさめた場合は反転することになりますが、その判定を行うためには位置関係が認識できなければいけません。
この辺りが面白いポイントです。技術的内容に関してはまた別の機会に書いてみたいです。
Unity開発ではプログラミング言語はC#を使います。
一方UdemyコースではPythonで実装することにしました。言語は違いますが、ロジカルな部分は共通にできるので、この部分に特化したコースを制作しようと思い経ちました。
ロジカルPythonシリーズとして公開を模索
僕は同じような目的のコースを既に出しています。
→ロジカルPython – ババ抜き | Python中級者を目指すプログラミング練習コース
なので新しいコースはロジカルPythonのシリーズとしての魅力も出せるかな、とかも考えました。
出してみようと思った後は、本当にさせそうか、プロトタイプを作成してみることにしました。
プロトタイプではコースとして簡単すぎず、難しすぎずに進めることができるかも確認しました。
結果的には簡単ではない仕上がりにできたと思います。コース冒頭でもお伝えしていますが、Python初心者の方には難しい内容です。
基礎学習を終えた後にさらにロジカルに自分自身で要件を満たすプログラムをどう作っていくのかを学ぶ、いい練習になるようなコースです。
ババ抜きコースと比較すると、ババ抜きよりは少し難易度は高いかもしれません。
プロトタイプを終えて、コースとして出せる(僕の中で納得できる)ことがわかったら、セクションやレクチャー構成を決めていき、コードもリファクタを重ね、どんどん撮影していきます。
ゲーム盤面表示の工夫
UnityではGUIも同時に考えていくわけですが、
今回のコースの目的はGUIではなくロジカルにプログラミングを行うところにあります。
前回のババ抜きにおいてもその点を重視して、ゲームの進行中の表示はprint文などでテキスト形式で表示していました。
リバーシブルゲームにおいて同じようにするつもりでしたが、オセロは白黒という色が特徴です。数字などを使うよりも色で表現できた方がわかりやすいので、いい方法がないか模索しました。
基本はColab上にpythonとして表示するだけなのですが、数字の代わりに絵文字を使うことにしました。🟡 🔵 のような感じです。
さらに盤面の表示です。
綺麗にテーブル形式で表示できないと、次どこに置けるのかがわかりにくくなります。
この辺りもコースではPandasを使うことで工夫しました。
純粋なPython標準機能だけ、というところは外れてしまいますが、表示のところはロジックのコアな部分ではないので採用しました。
Colabではpandasがimportだけで使えるのもpandasを採用する上ではいい点でした。
審査通過
以上の他にもベクトル演算の考えで周囲のセルを求めてみたりといった、僕自身の試行錯誤によってできたコースです。
残すところ、Udemy審査を終えて完成となります。僕自身、公開がとても楽しみです。
Udemy審査を無事終えて完成できました。
良いコースに仕上がってますので、興味があればぜひ受講してみてください。
プログラミングが大好きな僕と、一緒にプログラミングを楽しみましょう。
コースはこちら