見出し画像

The Complete Python Pro Bootcamp 2023: Day 20/100

  1. PythonでNokia 3310のスネークゲームを作成する20日目のプロジェクトは、ゲームの基礎を築くことに焦点を当てており、スネークの体と制御を実装する。

  2. プロジェクトはPyCharmで設定し、スネークの体を作成した後、それが画面上で動くようにする。その後、コードをリファクタリングしてオブジェクト指向プログラミングに移行する。

  3. ユーザーがスネークを制御できるようにするため、矢印キーを使ってスネークの方向を変える機能を実装する。この一日目の終わりには、基本的な機能が正しく動作することが目標となる。

A Walk Down Memory Lane: Nokia 3310とスネークゲーム

今日は、ゲームの世界に足を踏み入れ、エキサイティングなコーディングの旅に出ます!私たちの多くは、シンプルでありながら中毒性のあるスネークを携帯電話の画面上で操作し、衝突を避けながら食べ物を貪った楽しい思い出を持っています。この演習の目的は、Pythonを使ってこのノスタルジーを誘うゲームを再現し、オブジェクト指向プログラミングの複雑さを深く理解することです。

プロジェクトの計画は2日間にわたります。20日目は、ヘビのボディを作り、コントロールを実装することで、基礎を固めることに集中します。21日目には、食べ物を追加し、衝突を検出し、スコアを追跡し、ゲームの終わりを決定することによって、ゲームを強化します。では、腕まくりをして、始めましょう!

プロジェクトのセットアップ: 画面のセットアップとヘビの体の作成

まず、'snake_game' という名前のプロジェクトを、'main.py' ファイルとともに PyCharm でセットアップしましょう。ゲームのステージは、600x600ピクセルの画面、黒い背景、"My Snake Game "というタイトルです。

ゲームを作るための最初のステップは、ヘビの体を作ることです。最初のヘビは、3つの正方形のセグメントからなるシンプルな水平線です。ここで一時停止して、タートルオブジェクトを使ってこのレイアウトを実現する方法を考えてください。Pythonのturtleモジュールのドキュメントを参考にしてください。重要なのは、セグメントごとに別々のタートルオブジェクトを作り、それに合わせて配置することです。

蛇のアニメーション 蛇を動かす

ヘビを作成したら、今度はヘビに命を吹き込み、画面上を動くようにする必要があります。これは、whileループとforループを使用して、各蛇のセグメントを20ピクセル前進させることで達成されます。Pythonでのアニメーション処理は、画面上のすべてを消去し、オブジェクトの位置を更新し、そしてすべてを再描画することを忘れないでください。

ここでの重要な課題は、末尾の線の問題を処理することと、セグメントの独立した動きを管理することです。これらの問題を処理するには、`pen-up`関数を使用し、適切なタイミングで画面を更新することが重要です。

コードのリファクタリング OOP への移行

次のステップは、コードをリファクタリングしてオブジェクト指向プログラミングに移行することです。スネーククラスを定義し、スネークに関連するすべての機能をそこに移します。目的は、スネーク、食べ物、スコアボードといった別々のクラスでゲームの別々の側面を管理することです。きれいなコードとカプセル化がすべてです。

main.pyファイルでSnakeクラスのインスタンスを作成したら、蛇が画面に現れて前進し続けるはずです。ゲームが止まらなくても大丈夫です。基本的な機能を正しく理解することに集中しています。

コントロールする キーを押してヘビを動かす

さて、ユーザがヘビを操作することで、ゲームをインタラクティブにしてみましょう。矢印キー(上下左右)でヘビを操作します。screen.listen()`メソッドを使ってキーバインディングを設定することで、各キーが押されるたびにSnakeクラスの特定の関数に関連付けられます。タスクはこれらの関数を実装して、押された矢印キーに基づいてヘビの向きを変えることです。

20日目のまとめ: コーディングの旅を受け入れる

おめでとうございます!100日間コードチャレンジの重要なマイルストーンである20日目を乗り切りました。もし、以前のレッスンで習った構文や関数名を忘れてしまうのではないかと心配になったら、プログラミングは丸暗記ではないことを思い出してください。ビデオゲームで複雑なボタンの組み合わせをマスターするように、コーディングは物事の仕組みを理解することです。必要な情報はすべて、Googleなどのリソースですぐに入手できることを知って、旅を受け入れましょう。大切なのは、コードとその根底にある概念を理解することであって、暗記することではありません。

21日目もスネークゲームに磨きをかけ、機能を追加し、オブジェクト指向プログラミングの世界を深く掘り下げていきます。それでは、よいコーディングを!

参考文献

「超勇敢なウサギ」へ


この記事が気に入ったらサポートをしてみませんか?