3

私は大学生 (1 年生) で、ACM ライブラリを使用して Tic Tac Toe コンソール ゲームを作成する課題があります。Player VS Playerを動作させることができました。この課題の別の部分では、プレイヤー VS コンピュータのように機能させる必要があります。先生は私たちに、AI を作るのではなく、コンピューターに常に勝敗を分けさせるようにと言いました。どうすればこれを実装できますか? 多くの if と else を使用してそれを実装することはできないと思います。よりスマートな方法はありますか?

ゲーム ボードの作成、表示、更新、X または O の勝利 (または引き分け) のチェック、およびユーザーが入力した文字列のチェック (プレイするためにユーザーは (row_space_column ---> 例: "3 1")) のように入力する必要があります。また、ゲーム自体である別のファイル (「TicTacToe.java」) も作成しました。

それで、あなたの意見は何ですか?(私が使用する言語は JAVA です) (私の英語で申し訳ありません、私はギリシャ語です) ありがとう!

4

2 に答える 2

1

前提: 成功の可能性を最大化するために、その動作を問題の特定のインスタンスに適応させることによって一般的な問題を解決する各アルゴリズムは、1 つの if ステートメントで構成されている場合でも、インテリジェント エージェントと見なされます。

これを考えると、あなたの割り当ては明確に定義されていません。とにかく、いくつかのヒントを提供しようとします。

于 2014-02-04T12:35:54.937 に答える
1

Tic-Tac-Toe は可能な動きの数が比較的少ないため、AI プログラミングの良い例です。

また、完璧にプレーすれば (AI が期待すること)、常に勝つか引き分けます。

誰かが勝つまで、考えられるすべての動きを簡単にテストできます。その後、最適な動きをとります。

おそらく、 MinMax アルゴリズムを確認する必要があります。

Tic-Tac-Toe アルゴリズムの実装例も多数あります。(もしあなたが望むなら、私はあなたにパスカルでそれをあげることができます:D)

編集: Tic-Tac-Toe AI の作成に関する非常に優れたチュートリアルを見つけました。

于 2014-02-04T11:49:52.687 に答える