この記事では、SnakeゲームのPHPコマンドラインバージョンの構築について詳しく説明しています。 ブルガリアの会議ハッカソンがプロジェクトに影響を与え、リアルタイムゲーム開発におけるPHPの驚くべき能力を紹介しました。 元のリポジトリを使用するのではなく、ゲームをゼロから構築します。
重要な概念:
- PHP CLIキープレスの取り扱い:PHPは、通常、リアルタイムゲームに関連付けられていませんが、即時の入力検出のためにおよび
stty
を使用してCLIキープレスを効果的に管理します。readline
キーマッピング: - 柔軟なキーマッピングシステムは、キーコードをヘビの動きの方向にリンクし、制御のカスタマイズとマルチプレイヤーサポートを簡素化します。 ゲームループ: ゲームは連続ループを採用して、キー入力を監視し、ヘビの方向を含むゲーム状態を更新します。
- 入力方法:2つのメソッドが表示されます。直接の文字読み取りの場合は
-
stty cbreak
ゲームプレイ:コマンドライン用に設計された(ブラウザベースではない)、ゲームには、さまざまな障害物とスコアリングメカニズムを備えたシングルおよびマルチプレイヤーモードが含まれます。 Windowsユーザーは、互換性のためにVM(Homesteadの改善など)が必要です。readline_callback_handler_install
stream_select
セットアップとゲームルール: - このチュートリアルは、セットアップを容易にするためにHomesteadが改善されたことを利用しています。 環境がコマンドラインのPHP実行をサポートしていることを確認してください ゲーム機能:
1人のキャラクターとして始まるヘビは、各食品アイテムが消費されて成長しています。 ランダムに配置された食品 シングルプレイヤー矢印キーコントロール、矢印キーを使用したマルチプレイヤー。
シングルプレイヤーの壁の衝突ゲームはゲームを終了しますマルチプレイヤーウォールラップアラウンド;衝突はヘビの長さをリセットします。 100秒後の最長のヘビが勝ちました。
コマンドラインインターフェイスのみ。ブラウザ互換ではありません。 WindowsにはVMが必要です
- 初期構造(play.php and snakegame.php):
- ファイルは、コマンドライン引数を処理し、ゲームロジックを開始するフロントコントローラーとして機能します。 コアゲームクラスが含まれています。 基本的な構造から始めます:
- ゲームループとキープレスの取り扱い:
従来のゲームはフレームベースのループを使用します。 PHPには回避策が必要です。 コンソールへの入力をエコーせずに即時キープレスの読み取り値を有効にするためにを使用します。
play.php
ヘビのクラスとキーマッピング:
aSnake
クラスは、名前、方向、長さなど、個々のヘビインスタンスを管理します。 キーマッピングは、簡単なプレーヤーコントロール構成のためにSnakeGame
で定義されています。
(snake.phpとsnakegame.phpコードは、元のものと同様にここに追加されますが、明確さが向上し、潜在的に簡潔なコードがあります。
結論とさらなる開発:
これは、PHPコマンドラインスネークゲームの基礎を築きます。 パート2では、レンダリング、動き、および衝突検出について説明します。 メソッドは、そのシンプルさに適しています。
stty
(FAQSセクションは簡潔に省略されています。これは、大部分が繰り返され、ゲームのコアコードと構造に関連性が低いため)
以上がどのように彼らはそれをしますか? phpsnake:キープレスの検出の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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