今回は、がっつりソフトウエア、Pythonのプログラミングをやってみました。最初は取っ掛かりやすく、簡単なゲームからやってみました。Pythonをとりあえずはじめてみたい人、一回やってみたけど、うまく行かんかった人、のぞいてみて下さい。プログラミングは、つまづいてしまうと時間ばかり過ぎて前に進めないんですよね。なので、わたしがつまづいたところと解決策も紹介していきますのでご安心を。(できるかなぁ?笑)
●こんなゲーム作っちゃいました。知らんけど・・
今回作った、スロットゲームです。
日経ソフトウエア 5月号 独学Python入門
日経ソフトウエア 2021年5月号 [雑誌] | 日経ソフトウエア | コンピュータ・テクノロジー | Kindleストア | Amazon
参考書として、この隔月刊の雑誌を使ってやってみました。独学で始めるなら、私は、がっつり下のような技術本を買って始めるより始めやすいと思います。例えばダウンロードする内容が、最初に参考にした本とあまりに違っていると混乱してしまうので、最新の情報が載っている雑誌で始める方が分かりやすいと思います。この本は、pythonのインストール要領から載っており、(pythonのバージョンは3.9.1)また、登場人物が先生・レイ・タツヤの3人の会話で話が進み、分かりやすいです。(こんなの難しいよう!どうすればいい?できた!簡単!というパターンです。)少しずつ区切ってプログラムを作成し、確認していくので、どこがうまく行かなかったのかが、分かりやすいです。
●最初の設定がちょっと面倒なのが㋧~
プログラムを作るとき、使うための環境づくり、最初の設定が面倒で、やってもうまく行かず挫折しちゃうこと多いのですが、この本は、丁寧に分かりやすくやり方を紹介されています。
大まかな流れをつかんで途中で分からなくなったら、戻って確認して下さい。まずは、Pythonのインストールから。
Pythonのインストール
①Python公式サイトからインストーラーをダウンロードしてプログラムを環境を作る。(バージョンは3.9.1)
②Pythonをインストールする。
③「IDLE(Python 3.9 64-bit)」をエディターとして使用する。(起動する)
④直接、コード(プログラム)を書き込んだり、メニューの「File」からプログラムを読み込む。
⑤また、実際にコードを走らせたい時は、メニューの「RUN」→「Run Module」をクリック若しくは、ファンクションキーの「F5」を押す。
Pygame Zeroのインストール
①次に、Pygameのwhlファイルをダウンロード。
②今度は、インストールの前に「Windows PowerShell」を開いてpipのバージョンをアップグレードする。
(pipは「Windows PowerShell」でPythonのパッケージをインストール、アップグレード、バージョン確認したりするコマンド)
※「Windows PowerShell」はエクスプローラーを開いてどこかのフォルダでファイルを選択した状態でメニューの「ファイル」をクリックすると、「Windows PowerShellを開く」がハイライトされて選択できる。
③先ほどダウンロードしたwhlファイルをインストール。
④最後にnumpyという計算ライブラリを1.19.3へダウングレード。(うーん、ややこしい!)
ゲームで使うかわいい画像をダウンロード
①「ケニー」のサイトからゲームで使う動物の画像などをダウンロードすれば、準備は完了。
(分かりやすくするため、本とは順番を入れ替えてます)
●最初は画面の表示から
「ケニー」のサイトからダウンロードしたかわいいキャラクターを使って、まずは、スロットの画面を作ってみます。こんな感じです。
まあまあ、ええ感じ。(俺が作ってないけど)
プログラムは、ダウンロードしたキャラクターに番号を付けてdraw関数で順番に表示します。
<プログラム作成時のあるある!>
全角スペースde入力していた!
●まず、ドラムを回してみます。(止まりませしぇ~ん)
次に、ここから、ドラムを回してみます。というか、パラパラといろんなキャラクターを変えて表示させます。
プログラムを打ち込むときのポイントは、完成されたプログラムが、雑誌を購入するとダウンロードできるので、まずそれをダウンロード。そして、必要な部分を残して削除。あとは、このプログラム用に合わせて必要部分を打ち込めば間違いも少なく、効率的です。
プログラム作成のメモ・メモ
ドラムの回転をupdate関数で記載するとき、キャラクターを順番に送るプログラムの部分で
slot_count [ i ] +=1 のところ、slot_count +=1 と書いてしまい
TypeError: 'int' object is not iterable のエラーの意味が分からず、時間が掛かってしまいました。
よく見ると、エラー表示で
slot_count += 1
TypeError: 'int' object is not iterable
と記載があったので、iterable は反復可能な ですから 'int' object is not iterable で何か反復する整数がない!ということが感じ取れ、カウントする何かがないことが想像できそうです。(なんちゅう、感覚的なデバッグ・・)
●自分で回して、1ドラムずつ止めてみます。
さらに、本格的に、ドラムが回っているようにキャラクターが上から下へ流れるように表示させます。また、ボタンを押すと3個それぞれのドラムが別々に止まる仕組みです。
配列を作ってキャラクターを並べます。それを座標をつかって下へ動かします。
●完成です。3つのドラムが揃ったかも判定。
さて、最終段階。めちゃ本格的にボタンを押すとへこんだように見せたり、レバーハンドルも動かすと上下アニメーションで、バウンドするように見せます。オモロー!
●最後に。
日経ソフトウエア 5月号 独学Python入門のPythonプログラムを使ってゲームを作ってみました。
Pythonは今回2回目ですが、ボタンをクリックしたら、動作が変わるなどゲームならではの面白いコマンドを初めて知りました。
コマンドの詳細が分からない場合も、①状況をprintコマンドで表示させたり、②複数の表示があれば、1個に減らして単純化してみると、意味が見えてきます。簡単なのは、この数値を変えたらどうなるやろ?と、③数値を変えてみることでしょうか。おそらく、何かが変わるので、その変わったことがコマンドの意味なので、プログラムの意味を把握しやすいです。
- 状況をprintコマンドで表示
- 複数の表示があれば、1個に減らして単純化
- プログラムの数値を変えてみる
●おまけ
おまけで、プログラムを編集して、下のような動作にしてみました。
最後まで見て頂き、アザス!