このシリーズでは、私が自ら課したプログラミングの課題、つまりできるだけ多くの異なるプログラミング言語で Battlesnake を構築するという課題の進捗状況を共有します。
このシリーズの短い紹介については、最初の投稿を確認してください。
GitHub で私の進捗状況をフォローすることもできます。
Java は企業向けの言語であり、多くの大規模なバックオフィス システムのビジネス ロジックは Java で書かれています。
私はこれまでに多くの Java コードを書いてきましたが、現在のプログラミング活動では Python と JavaScript がその役割を果たしています。
Java は非常に読みやすく堅牢なソフトウェアを作成するために使用できるため (Java IDE は優れたリファクタリング サポートを備えている傾向があります)、一部のシステムには Java が適切な言語であると今でも感じています。
Java は、以前のバージョンと比較して、自動メモリ管理、組み込みのコレクション型、広範な標準ライブラリなど、開発者に多くの改善をもたらしました (もちろん好みにもよりますが)。ただし、この言語は現在 30 年以上前のものであり、標準ライブラリで JSON がサポートされていない (ただし、XML はサポートされている ?) など、明らかな時代の兆候がいくつかあります。
Java は、現在すぐに使える状態でも、クリーンで簡潔な Battlesnake 実装を構築するために使用できますか?ぜひ読んでみてください。
Snake.java は次のようになります:
Dockerfile は次のようになります:
そして、これが実際の開発セットアップです:
正直に言うと、Java 標準ライブラリの基本的な Web サーバーが利用できるかどうかを Google で調べる必要がありました。 (パッケージ名に基づくと) おそらく標準ライブラリの最も古い部分の 1 つである com.sun.net.httpserver.HttpServer.
に HTTP サーバーがあることがわかりました。サーバー実装の使用は実際には非常に簡単です。Battlesnake メタデータ リクエストを処理するための私の最初のコードは次のとおりです:
ゲーム ロジック コードの重要な部分は、受信した JSON データを解析するためにあります。標準の Java ライブラリには JSON パーサーは含まれておらず、一般的なパーサー ライブラリには数千行のコードが含まれています。
多くのハッキングにより、Battlesnake の JSON を解析することができました。、その JSON のみを解析することができました。
リーリー
ゲーム ロジックの残りの部分は非常に簡単です。読みやすさと簡潔性を高めるために、基本的な Cocord クラスを使用しました:
リーリー
ゲームロジックは改善できると思いますので、試してみてはいかがでしょうか? ?
そしてこれが動作中の完全なコードです:
C Battlesnake の完全なコードは、GitHub にあります。
フィードバックをお待ちしております。
上記のコードについてのご意見、またはこのシリーズで楽しみにしているプログラミング言語を下のコメント欄でお知らせください。
次の言語まで!以上がバトルスネークチャレンジ # Javaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。