バトルスネークチャレンジ # Java

WBOY
リリース: 2024-08-06 20:36:20
オリジナル
163 人が閲覧しました

このシリーズでは、私が自ら課したプログラミングの課題、つまりできるだけ多くの異なるプログラミング言語で Battlesnake を構築するという課題の進捗状況を共有します。

このシリーズの短い紹介については、最初の投稿を確認してください。

GitHub で私の進捗状況をフォローすることもできます。

ジャワ

Java は企業向けの言語であり、多くの大規模なバックオフィス システムのビジネス ロジックは Java で書かれています。
私はこれまでに多くの Java コードを書いてきましたが、現在のプログラミング活動では Python と JavaScript がその役割を果たしています。
Java は非常に読みやすく堅牢なソフトウェアを作成するために使用できるため (Java IDE は優れたリファクタリング サポートを備えている傾向があります)、一部のシステムには Java が適切な言語であると今でも感じています。

Java は、以前のバージョンと比較して、自動メモリ管理、組み込みのコレクション型、広範な標準ライブラリなど、開発者に多くの改善をもたらしました (もちろん好みにもよりますが)。ただし、この言語は現在 30 年以上前のものであり、標準ライブラリで JSON がサポートされていない (ただし、XML はサポートされている ?) など、明らかな時代の兆候がいくつかあります。

Java は、現在すぐに使える状態でも、クリーンで簡潔な Battlesnake 実装を構築するために使用できますか?ぜひ読んでみてください。

こんにちは世界のセットアップ

Snake.java は次のようになります:

リーリー

Dockerfile は次のようになります:

リーリー

そして、これが実際の開発セットアップです:

基本的な Web サーバー

正直に言うと、Java 標準ライブラリの基本的な Web サーバーが利用できるかどうかを Google で調べる必要がありました。 (パッケージ名に基づくと) おそらく標準ライブラリの最も古い部分の 1 つである com.sun.net.httpserver.HttpServer.

に HTTP サーバーがあることがわかりました。

サーバー実装の使用は実際には非常に簡単です。Battlesnake メタデータ リクエストを処理するための私の最初のコードは次のとおりです:

リーリー

ゲームロジック

ゲーム ロジック コードの重要な部分は、受信した JSON データを解析するためにあります。標準の Java ライブラリには JSON パーサーは含まれておらず、一般的なパーサー ライブラリには数千行のコードが含まれています。
多くのハッキングにより、Battlesnake の JSON を解析することができました。、その JSON のみを解析することができました。

以下は、JSON 解析に関連するコード内の 4 つの関数です (これらの関数はフィールド、オブジェクト、配列を解析します)。

リーリー
ゲーム ロジックの残りの部分は非常に簡単です。読みやすさと簡潔性を高めるために、基本的な Cocord クラスを使用しました:

リーリー
ゲームロジックは改善できると思いますので、試してみてはいかがでしょうか? ?

そしてこれが動作中の完全なコードです:

Battlesnake Challenge # JavaC Battlesnake の完全なコードは、GitHub にあります。

フィードバックをお待ちしております。

私のコーディングの冒険と合わせて読んでいただければ幸いです。

上記のコードについてのご意見、またはこのシリーズで楽しみにしているプログラミング言語を下のコメント欄でお知らせください。

次の言語まで!

以上がバトルスネークチャレンジ # Javaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!