ホームページ バックエンド開発 Python チュートリアル 2048 ゲームを自動的にハングアップする方法

2048 ゲームを自動的にハングアップする方法

Jun 20, 2017 pm 03:25 PM
python 勉強 ゲーム 自動

はじめに

2048 ゲームをプレイしたことがありますか? https://gabrielecirulli.github.io/2048/ オンラインでプレイできます

人間のエネルギーは常に限られており、昼夜を問わずプレイすることは不可能ですが、機械は 2048 年のゲームを自動的にプレイする小さな機能を作成できます。セレンの使い方に慣れる

分析

2048 ゲームの本質は、4 方向キーを使用して数字を合成することです。実際、プロセスは単純で退屈です (人間の思考の問題に注意を払っていません)。 )、機械はこれを行うのが得意です。

Selenium を使用してブラウザを開き、キーボード コマンドと一連の操作を送信します。

ゲームオーバーになると、Selenium が 4 方向キー コマンドを送信するのが通常であるため、ゲーム オーバーの問題を解決するには特別な処理が必要です

タグ

1) スコア: <div class="score-container">0div>

2) ゲーム以上: < div class= "game-message"><p>Game over!p>

注: 通常のゲーム状態では、

の値は空です。ゲームが終了すると、この機能を使用してゲームが終了したかどうかを判断します

3) もう一度試してください: < -ボタン"a>

注: ゲームが終了したら、ボタンをクリックして、ゲームを再開します

環境

1) windows 7 2) これはPythonで直接書かれた単純な関数です IDLEの下に書かれています

3) Firefox ブラウザを使用しており、ここからドライバーをインストールする必要があります ()。system32 の下に直接配置しています


ソースコード

def play2048():
	from selenium import webdriver
	from selenium.webdriver.common.keys import Keys
	import time
    # 打开firefox,并访问2048游戏界面
	bs = webdriver.Firefox()
	bs.get(&#39;https://gabrielecirulli.github.io/2048/&#39;)
	html = bs.find_element_by_tag_name(&#39;html&#39;)
	while True:
		print(&#39;send up,right,down,left&#39;)
		html.send_keys(Keys.UP)
		time.sleep(0.3)
		html.send_keys(Keys.RIGHT)
		time.sleep(0.3)
		html.send_keys(Keys.DOWN)
		time.sleep(0.3)
		html.send_keys(Keys.LEFT)
		time.sleep(0.3)
                
        # 每四个方向操作后判断游戏是否结束
		game_over = bs.find_element_by_css_selector(&#39;.game-message>p&#39;)
		if game_over.text == &#39;Game over!&#39;:
			score = bs.find_element_by_class_name(&#39;score-container&#39;)    #当前得分
			print(&#39;game over, score is %s&#39; % score.text)
			print(&#39;wait 3 seconds, try again&#39;)
			time.sleep(3)
            # 游戏结束后,等待3秒,自动点击try again重新开始
			try_again = bs.find_element_by_class_name(&#39;retry-button&#39;)
			try_again.click()
ログイン後にコピー

Run

Python IDLE で、play2048() を呼び出すだけです。プログラムによって自動的に実行される手順は次のとおりです:

1) firefox を開きます

2) 現在開いている Firefox ウィンドウで、https:/ にアクセスします。 /gabrielecirulli.github.io/2048/

3) ページがロードされるのを待ち、4 方向への矢印の送信を開始します

4) ゲームが終了したら、自動的に再試行します

5) 無限ループのステップ 3 と 4

興味があれば、ぜひ試してみてください、とても興味深いです~~

以上が2048 ゲームを自動的にハングアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PythonインタープリターはLinuxシステムで削除できますか? PythonインタープリターはLinuxシステムで削除できますか? Apr 02, 2025 am 07:00 AM

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

Pythonでのカスタムデコレータのパイランスタイプ検出の問題を解決する方法は? Pythonでのカスタムデコレータのパイランスタイプ検出の問題を解決する方法は? Apr 02, 2025 am 06:42 AM

Pythonプログラミングでカスタムデコレーターを使用する場合、Pylance Type検出問題解決策デコレーターは、行を追加するために使用できる強力なツールです...

Python 3.6のロードピクルスファイルエラーmodulenotfounderror:ピクルスファイル「__builtin__」をロードした場合はどうすればよいですか? Python 3.6のロードピクルスファイルエラーmodulenotfounderror:ピクルスファイル「__builtin__」をロードした場合はどうすればよいですか? Apr 02, 2025 am 06:27 AM

Python 3.6のピクルスファイルの読み込みエラー:modulenotfounderror:nomodulenamed ...

FastapiとAIOHTTPは同じグローバルイベントループを共有していますか? FastapiとAIOHTTPは同じグローバルイベントループを共有していますか? Apr 02, 2025 am 06:12 AM

Pythonの非同期ライブラリ間の互換性の問題Python、非同期プログラミングは、高い並行性とI/Oのプロセスになりました...

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか? Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか? Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

Pythonの信号を介して親プロセスを殺した後に子プロセスも終了することを確認する方法は? Pythonの信号を介して親プロセスを殺した後に子プロセスも終了することを確認する方法は? Apr 02, 2025 am 06:39 AM

子どものプロセスを使用して親プロセスを殺すときに実行され続ける子プロセスの問題と解決策。 Pythonプログラミングでは、信号を通じて親のプロセスを殺した後、子のプロセスはまだ...

See all articles