![見出し画像](https://assets.st-note.com/production/uploads/images/125850697/rectangle_large_type_2_e0fe8759726f9b8cf4fcf06cf5b07a61.png?width=1200)
The Complete Python Pro Bootcamp 2023: Day 94/100
「100日間のコード」ブートキャンプの94日目では、Pythonを使用してGoogleの恐竜ゲームを自動化するプロジェクトに取り組んだ。
このプロジェクトでは、画面キャプチャとピクセル検出にPillowライブラリ、キーボード入力にPyAutoGUIライブラリを活用した。
ゲームの進行に合わせて障害物検出とジャンプタイミングを動的に調整することが、このプロジェクトの主な学びと挑戦であった。
Pythonで自動化に飛び込む
「100日間コード講座」も終わりに近づき、より挑戦的で楽しいプロジェクトに取り組んでいます。94日目は、Pythonを使ってGoogle恐竜ゲームを自動化するというユニークなタスクです。このプロジェクトはコーディングスキルが試されるだけでなく、GUI自動化と画像処理の世界にも深く踏み込みます。
課題: 恐竜ゲームをプレイするボットの作成
Google恐竜ゲームは、Chromeのインターネット禁止ページの隠れた逸品で、T-Rexを走らせ続け、障害物を避けるというシンプルな目的を持っています。私たちの目標は?このゲームを自律的にプレイするPythonスクリプトを書くことです。
ツール: PillowとPyAutoGUI
これを実現するために、2つの強力なPythonライブラリを活用します: PillowとPyAutoGUIです。PillowはPython Imaging Library(PIL)のフレンドリーなフォークで、画面キャプチャやピクセル検出などの画像処理タスクに不可欠です。一方、PyAutoGUIはキーボード入力をシミュレートすることができます。
アプローチ スクリーンキャプチャとピクセル検出
このプロジェクトの核心は、障害物の検出にあります。これは、画面のキャプチャとピクセルの色を分析してサボテンを識別し、PyAutoGUIを介してジャンプコマンドをトリガーすることで行います。この作業には、バウンディングボックス(bbox)とピクセルデータの操作をよく理解する必要があり、このプロジェクトで最もやりがいのある作業でした。
学習曲線: 試行錯誤と成功
このプロジェクトで最も興味深かったのは、ゲームのスピードが上がるにつれて、障害物の検出やジャンプのタイミングに適応した戦略が求められるようになったことです。これは、プログラミングにおいて、動的で応答性の高いシステムを構築することの重要性を強調するものでした。
キーポイントと今後の改善点
外部ライブラリの理解: このプロジェクトでは、MSS(画面キャプチャ用)やPyAutoGUIなどの外部ライブラリを深く掘り下げ、他のアプリケーションとのリアルタイムインタラクションにおけるPythonの力を紹介しました。
検出の洗練: 改善の可能性がある重要な分野の1つは、障害物検出メカニズムの洗練です。現在のところ、単一の色の閾値に依存しており、ゲームの背景が変化すると、その閾値が維持できなくなる可能性があります。高度な画像処理や機械学習によって、検出精度が向上する可能性があります。
動的適応: もう1つの取り組むべき側面は、ゲームの進行速度に基づいてbboxを動的に調整することです。
結論: GUI自動化におけるPythonの力
このプロジェクトはPythonの多機能性を証明するものでした。Webゲームを自動化しただけでなく、画像処理やGUI自動化についての知見も得ることができました。100日の旅の完了が近づくにつれ、このようなプロジェクトは、多様で創造的な方法でのPythonの理解と応用を強固なものにしてくれます。
ブートキャンプのグランドフィナーレに向けて、さらなるコーディングの冒険にご期待ください!🎉🐍🦖
この記事が気に入ったらサポートをしてみませんか?