人工知能海軍戦闘

screen.png - upload images with Picamatic そのような酒が(敬意を表して!)一度行ったら、私は自分の工芸品をオープンソース、つまり海戦のゲームに入れることにしました。 プロジェクトは googlecode ホストされています。 SVNがあります。 さらに、 ソースコードWindowsアセンブリは、自宅のコンピューターから直接取得できます(その理由-カットの下)。 主な機能: 実際、これが私が人類に与えるものすべてですが、... ...見返りに、私はいくつかのフィードバックを期待しています、-)



<upd> habr効果に注意してください! :-)

同僚! 現在、私の自宅のコンピューターからは、100を超えるダウンロードが同時に行われています(100を超える接続が提供されています)。 Windowsディストリビューションのダウンロードには10〜20分かかる場合がありますが、すべてのブラウザーで処理できるわけではありません:-)ダウンローダーを使用するか、habra効果が低下するのを待ちます。

もう一度おaび申し上げます。 私はそのようなカチャロフを期待することはできませんでした。 すでに1000以上のダウンロード:-)。 あなたのコメントを待っています。 よろしくお願いします! </ upd>



<upd2>

急いで捨てた:-)

あなたは家からすべてを取ることができます!

ソルチ

Windowsの下で

(3000を超えるコピーがすでに自宅からダウンロードされています:-)私は、まあ、最大100を期待していました:-))

</ upd2>



<upd3> pfactumは、LinuxでLinuxから収集しなかったと報告し、行「#include <stdlib.h>」をsrc / logic / arena.cppに追加することで問題を解決しました。 どうやら、問題には本当に場所があります。 他の誰かがそのような問題を抱えているなら、書いてください。 </ upd3>



まず第一に、コメントに感謝しますが、いくつかのコメントは他のコメントよりも私にとって高価です:-)



今私が発見する最も重要なこと 良い:「アプリケーションにはアイコンがありません。」 良い:「持っている」という言葉は間違った場合に書かれています。 そのような提案はすぐに考慮されます。 「船を強奪し、男女両方のレイプ船員を乗せるのは良いだろう」などの提案は、2012年以前に検討されます:-)



今、質問を予想するいくつかの言葉。



お気に入りのOS用のアセンブリはありますか?



私は3つのニュースがあります:悪い、良い、そしてもう一つの良い。



悪い点:私はすでにいくつかのオープンソースプロジェクトを作成しており、すべてのOSだけで現在のビルドをサポートすることはできないという結論に達しました。 このプロジェクトでは、基本的にアセンブリをレイアウトしません。



良い:お気に入りのOS向けにアセンブリ、パッケージ、ポート、ビルドをアップロードするのが難しくない人がいることがわかりました。



この小さなプログラムに、バイナリを収集してレイアウトするという謙虚な仕事をする鑑定家がいることを本当に願っています。 プロジェクトのWebサイトにこれらのアセンブリへのリンクを投稿できたことに感謝しています。



さらに、適切なOSとディストリビューションのユーザーは、これらのOSの精神とスタイルでバイナリを設計できると確信しています。 たとえば、Windowsユーザーのために何をしましたか? -exe-shnikと必要なdllを含む愚かなzipアーカイブ。 そして、おそらくmsiまたは何らかのインストーラーを作成する正しい方法。 バイナリが必要な場所に配置され、アイコンが表示されるように、OSが新しいソフトウェアを認識し、それを更新および/または削除できるようにします...これを行う方法がわかりません。 そして、誰にとってもすべてのもののためにそのような芸術を習得するために...いや-私はすることができません。 過度の負担をかけず、不器用な集会を作らなければ、誰もが恩恵を受けると思います。 専門家にやらせてください。



そしてもう1つの良いニュース:現在のバージョンでは、Windowsアセンブリをアセンブルし、自宅のマシンからピックアップできます:-)私はストリームに座っているので、(1)戻り速度はそれほど速くなく、(2)接続は1日に1回切断されます ご不便をおかけして申し訳ありません:-)



どのような倒錯!? バイナリとソースを同じgooglecodeに配置してみませんか?



さて、バイナリに関しては、私は原則的な立場にあり(上記参照)、最終バージョン1.0をリリースするときに、アーカイブの形でソースを確実に投稿します。 Google SVNから、または自宅のコンピューターからアーカイブとして取得できます 。 プレリリースバージョンのダウンロードセクションを詰まらせたくありません。 googlecodeでは、ダウンロードセクションから何も削除できません。 開発オプションが永久に保持されることは望ましくありません。



私はあなたのコードを見ました...それは奇妙です



そうそう。 コードを調べた人の驚きを少なくとも部分的に払拭するために、その話をします。



真珠の時代。 数年前、私はひそかにWebアプリケーション「Sea Battle」を書きました。 それは真珠の上で作成されました(まだ生きています)。 ロジックにはいくつかの重要な単純化が含まれていたため、不適切な結果になることがありましたが、これは無視できます。 書いて捨てた。



Pythonの時代。 1年以上前、2008年にGoogle Developersに行きました。この前に、GAEを試してみることにしました。 私は新しいものを思いつきませんでしたが、Pythonで真珠のコードをロールオーバーしました。 彼はそれをわずかにコーミングし、サーバーとの相互作用のプロトコルをわずかにクリアしました...しかし、根本的な変更は発生しませんでした-言語の変更のみ。



Pythonの時代:混乱。 コードを使用してpythonを操作するのが楽しくなり、私は何か面白いことをしようとすることにしました。 (はい、言い忘れました-GAEは私に刺激を与えなかったので、GAEプロジェクトを放棄しました。なぜ私は刺激しなかったのか、コメントであなたに伝えることができますが、今はそうではありません。)私は六角形の海戦をすることにしました。 正方形のセルではなく、六角形のハニカム。 ハニカムでの作業を便利にするために、いくつかのクラスを作成しましたが、作業は非常に簡単でした。 私はこのコードの基礎となるアイデアが本当に好きでした。彼らは私の期待をはるかに上回りました。 しかし、ゲームは面白くありませんでした、通常の海戦ははるかに興味深いです。 したがって、私もこのプロジェクトを放棄しました。



時代 昨年の夏、私は...要するに、仕事のためにQtに出会い、Qtのアイデアの多くが本当に好きになりました。 Pythonの六角形の奇跡を、古典的なQt / C ++海軍の戦いに書き換えることにしました。 クラス構造はPythonプロトタイプから取得されました-何も発明する必要はありませんでした。 コンピューターの狂気につながる論理的な「単純化」はすべて排除されました。 QtとGUIがねじ込まれていました。



screen-webb.png - image uploaded to Picamatic 今、私たちは持っているものを手に入れました。



すべてのロジックは、独立したライブラリとして記述されています。 QtもSTLも必要ありません。 しかし、ここでクラスは最も奇妙なことにファイルに詰め込まれています。 また、コードによっては「si-plus-plus-pizatization」が必要な場所もあります:-)これは、このコードのPythonの背景によるものです。



GUI全体はQtで書かれています。 ここでは、メモリ管理は完全にQtメカニズムに左右され、シグナルはすべてを支配します。 GUIを書き直したい場合、これは非常に簡単です! 少数の信号の処理をサポートするだけで十分です。



さらに、ゲームのコースを制御するQtクラスがあります。 ゲームの状態を保存し、ユーザーからの信号を受信して​​GUIに送信します。 厳密に言えば、このクラスを2つに分割すると、状況は少し簡素化されます...しかし、おそらく、ステートマシンを使用する方が正しいでしょう...一般的には、修正する必要があります:-)



以上です。 このデバイスのすべての詳細には、いくつかの歴史的な初歩および/または性急な痕跡が保存されますが、スペルはあまり正確ではありません。 しかし、すべてがまとまって調和して配置されており、勇気があれば、すべてをゆっくりと書き直します。 ただし、現在は完全に機能するバージョンのプログラムがあります。 出したい
  1. 今人々を喜ばせるために
  2. 他の何かをさらに開発する必要があるかどうかを理解するか、このプロジェクトとそのすべての前身を放棄します。
外洋での人工知能との戦いにおけるすべての成功! :-)



All Articles