Pythonの道(ゲーム開発編)

Pythonでゲームを作ろう!



ゲーム開発はアルゴリズムの”かたまり”といわれる程、数学の知識が必要になります。Pythonには数学で使用するライブラリが豊富にあり、AIやデータサイエンスの分野で使われています。ゲームエンジンを利用せず、ゼロからコーディングしてゲーム開発にチャレンジしましょう。
※素材の画像ファイルとPythonのプログラムファイルは同じフォルダの中に入れてプログラムファイルを実行してください。


01_タートルグラフィックス①


タートルグラフィックスはカメを動かして絵をかくツールです。タートルグラフィックスを使って正三角形、正方形、正五角形を書いてみましょう。

02_タートルグラフィックス②


input()関数を使って入力を受け取れる機能を実装してみましょう。入力した数字に応じた正多角形を自由に作れるシステムを開発します。
また、線にカラフルな色をつけて鮮やかな幾何学模様を作ってみましょう。

03_簡単なプログラムを作ろう①(おみくじとBMI計算)


ランダム関数を使っておみくじを作ってみましょう。整数型、文字列型を学習し、BMI値を計算するプログラムを作成します。
理解度確認テスト
この課題が終了したらチャレンジしてください。


04_簡単なプログラムを作ろう②(クイズ)


if文とリストを使ってクイズゲームを作ります。リストとfor文を使って複数の問題を扱う方法をマスタしてください。
理解度確認テスト
この課題が終了したらチャレンジしてください。

07_簡単なプログラムを作ろう③(すごろく)


while文とrandom()、def()を使ってすごろくゲームを作成します。if文が深くなるのでインデントの位置に気を付けながら学習します。
理解度確認テスト
この課題が終了したらチャレンジしてください。

09_簡単なプログラムを作ろう④(虫食い)


for文と変数を使ってprint()で表示する文字を横に並べる方法を学習します。また、if文で虫食いを作り、datetime()で時間を計る方法をマスタしてください。



11_GUIの基礎を学ぶ①(おみくじ)

グラフィカル・ユーザ・インタフェースについて学習します。tkinterを使ってGUI開発を行います。

【素材ファイル】


理解度確認テスト
この課題が終了したらチャレンジしてください。

14_GUIの基礎を学ぶ②(ネコ診断)


テキスト入力欄とチェックボックスを使って診断ゲームを作ります。ブールという型についての理解を深めてください。

【素材ファイル】



15_本格的なゲーム開発①(床塗りゲーム_前半)


after()とbind()を使ってリアルタイム処理を学習します。また、def()で定義した関数に変数を引き渡すためにグローバル変数とローカル変数の違いについて理解を深めましょう。
【素材ファイル】





16_本格的なゲーム開発①(床塗りゲーム_後半)

二次元リストを使ったデータの管理方法を学習します。bind()をトリガーにして二次元リストの値を変更する方法をマスタしてください。
前半で学習したキャラクタ操作と組み合わせると色塗りゲームが完成します。

【素材ファイル】



19_本格的なゲーム開発①(練習)


床塗りゲームを発展させた課題に挑戦します。複数ステージを扱うためにindexという変数をうまく利用してください。
【素材ファイル】



20_本格的なゲーム開発②(前編)(パズルゲーム)


create_image()に使用する座標を計算し、マス目にそったカーソル移動を学習します。ゲーム用カーソール作りにチャレンジします。
【素材ファイル】






21_本格的なゲーム開発②(中編)(パズルゲーム)


二次元リストを使ってマス上のデータの管理方法を学習します。for文と二次元リスト更新、create_image()を組み合わせて描画した画像を落下させるアルゴリズムをマスタしてください。
【素材ファイル】



22_本格的なゲーム開発②(後編)(パズルゲーム)

ゲームの難易度とスコアを管理する変数を作って、パズルゲームを完成させます。indexという変数の値を変えて、呼び出す関数を制御するロジックを理解してください。

24_pygameの使い方①(図形、画像の描画)


Pythonにはtkinterモジュール以外にもGUIを作成することができるモジュールがあります。外部モジュールになりますが、pygameを使ったGUI開発にチャレンジします。2つのモジュールの仕様の違いを理解することに重きを置いて学習してください。
【素材ファイル】






25_pygameの使い方②(キー操作、ボタン)


pygameモジュールに用意されているキー操作とマウス操作を制御する関数を学習します。tkinterモジュールとの違いについて意識して進めてください。
【素材ファイル】

26_pygameの使い方③(紙芝居)

画面の切り替え方法を学んで紙芝居プログラムを作ります。このロジックを理解すればスーパーマリオのような簡単なアクションゲームを作ることができます。
【素材ファイル】



27_pygameの使い方④(前半)_(オバケのアクションゲーム)

colliderect()を使った衝突判定について学習します。tkinterモジュールでは実装が難しい効果音についてもpygame.mixer.Sound()を使って実現することができます。合わせてマスターしましょう。
【素材ファイル】






28_pygameの使い方④(後半)_(オバケのアクションゲーム)


キャラクタの移動量を管理する変数を作り、追跡するロジックを実装します。追跡、衝突の2つを理解して使いこなせるようになってください。

29_pygameの使い方⑤(ブロック崩し)

衝突判定ロジックを応用してブロック崩しゲームを作ります。また、for文を使ってブロックを規則正しく配置する方法についてもおさらいします。
【素材ファイル】



30_pygameの使い方⑥(シューティングゲーム)

ブロック崩しゲームで使用したアルゴリズムを使って、シューティングゲームに改造する方法を学習します。
【素材ファイル】