私は17歳の高校生で、1週間前にCプログラミングを学び始めました。私はまた、Webデザイン(+ javascriptとPHPを使った少しのWebプログラミング+私は一度連絡フォームを使ってウェブサイトを作った)で非常に基本的な経験をしてきました。 とにかく、私はAIに非常に興味があり、学校のプロジェクトとして、私はチェスエンジンと物理的に動くロボットアームを作るつもりだと思っていました。 エンジンを仕上げるための締め切りは7ヶ月です(腕は1年で完成しなければなりません)。 初心者がチェスエンジンを7ヶ月でプログラムできることは実現可能だと思いますか?(そして最終的にはそのエンジンを使用してロボットアームを構築しますか?) ありがとうございました!Chess engine in C
答えて
笑、偉大な野心ですが、それを完了するためにあなたの誇張した努力が必要です。あなたの暇な時間にエンジンを構築するにはかなりの時間がかかります。チェスゲームのAIはかなり複雑なので、プログラムの中に最終目標を念頭に置いて少なくとも7つの動きを考えるように言わなければなりません。ロボットアームと相互作用する部分をプログラムする必要があります。あなたは理論的には、オープンソースのチェスゲームを利用して車輪を再構築せずに、再開発しないで、数ヶ月のプログラミングだけでその部分を保存することができます。
あなたは私が7ヶ月で自分自身でエンジンをプログラムすることは不可能だと言っていますか? (私がエンジンを自分でプログラムしたいのは、私が学校プロジェクトを完了するだけでなく、プログラミングで経験を積みたいということです)。 – geekkid
いいえ、不可能ではなく、ただ多くの仕事と学習。あなたが同時に学び、同時にプログラムすると、あなたは約10倍遅くなります。私はちょうどあなたの手に大きなプロジェクトの準備をしていると言っています。プログラミングについて知っていないことが見つかるたびに、それを理解するまで読んで、学習し、トラブルシューティングする必要があります。本を打つことを開始してください:) – Ryan
適切なプログラミングの実践の良い感覚を得るためにも、何の意味もないエラーを得るために準備するためには数年かかることがあります。コードを読んで助けてくれるでしょう。幸運、私はあなたの努力が好きです:) – Ryan
私は、実践のためにいくつかの実際のタスクを選択することをお勧めします。もちろん、タスクを段階的に分割することもできます。しかし、チェスでは、最初のステップ - GUI - あなたのために本当です。しかし、2番目の - 最も原始的なAI - は非常に難しいです。それはゲームの特有のものです。
あなたが本ゲームとしてreversi/othelloを使用した場合、非常に基本的なAIを作成することは可能です。私はあなたが再帰的な思考を管理することはできないと信じていますが、ポジションの評価ともちろん、ゲームのGUIが可能なワンステップの考え方が可能です。しかし、あなたは本当に懸命に働かなければならないでしょう。あなたが興味を持っているなら、私はこのゲームの実現のためにあなたに一対のアドバイスを与えることができます - 私はそれを別々のマシンで2回自分で行いました。しかし、ロボットの手は疑問ではありません。
もちろん、あなたが天才であれば、すべてを管理することができます。 (私は冗談ではありません。あなたは決して言わないことができます...)
そしてCはAIにとって最高の言語ではありません。それはより良いもののさえありません。
こんにちは、感謝Hanz(そして誰もが余裕を持って:d)。私はあなたの記事を読む前に、本当に自分自身のためにごめんなさいと感じ始めました:d。しかし、ええ、私はそれをやらなければならない、または私は卒業しません:d – geekkid
- 1. XBoardとのやり取り(Chess Engine)(C++/C)
- 2. Old Borland Chess WebServiceヘルプ
- 3. httplib.HTTPConnection in Google App Engine
- 4. オープンソースのJava Chessエンジン?
- 5. matlab in C C++とC C++ in matlab
- 6. UheeledVehicle movement in C++
- 7. Windows API "Chess Timer" Sepmaphoreイベント
- 8. C++、私のC IN
- 9. for_each()in C++
- 10. classwork - shellsort in C#?
- 11. gridview in C#
- 12. datagridview in c#
- 13. CryptExportKey in C#
- 14. Nhibernate in c#
- 15. Javascript in C#
- 16. Search in ListView c#
- 17. OutOfMemoryException in C#
- 18. Regex in Objective-c
- 19. SpellCheck in c#
- 20. C Bubblesort in LinkedList
- 21. ファームウェア_nop()in c#
- 22. QuickSort in C++
- 23. HH:MM in C#
- 24. com.android.camera.action.CROP in objective-c?
- 25. ソケットプログラミングaccept()in C
- 26. LuaInterface in C#
- 27. MessageBox in c#
- 28. modem call in C++
- 29. IWin32Window in C#?
- 30. Variant Type in C#
私はそれがかなり正直であると意欲的だと思います。どちらか一方、なぜ両方ですか? –
これには3番目の部分があります。入力をどのように扱いますか?言い換えれば、あなたのプログラムは、(おそらく人間の)対戦相手がどのような動きをしたのかをどのように知っていますか? – Thomas
移動をテキスト入力として設定すると、簡単なゲームで時間を節約できます。しかし、チェスでは、UIの価格は、最も原始的なAIでさえ同等ではありません。 – Gangnus