読者です 読者をやめる 読者になる 読者になる

人工知能作っちゃう?

画像処理を中心に人工知能を作っていきます。

第一回 基本的なことを考える&絵

マッチを作る第一回は敵のAIアルゴリズムを考えます。絵の発表は最後に!

ルール

まずはじめにご存知の方も多いと思いますがまずマッチのルールを簡単に説明しましょう。

  • 相手に自分の指を叩かれたら相手の指の本数だけ自分の指の本数を増やします。
  • 自分の指が5本になったらその手を0にします。
  • 自分の手で自分のもう一方の手を叩いたら両方の指の合計を好きに振り分けられます。

(例: 左2 右4 のときタップしたら=> 左3 右3や、左4 右2に振り分けられます)

相手の手を両方0にしたほうの人の勝ちです。

敵の動作を考える

では具体的な敵の動作を考えていきます(これを作った人はいないので一から模索です)
コンピュータの対戦ゲームの場合何手も先読みできるのがコンピューターの強みだと思うんです。
何手も先読みした上で最善の一手を打つ。こんなアルゴリズムはないか考えたら、半年くらい前に作ったオセロ(is gone...)のアルゴリズムが使えそうだと思ったんです。
ではそれらを使った動作の目的を整理します。

敵が考えたいことは

  • 相手を5にするにはどうするか。
  • 相手(ユーザー)の指の本数から自分の指が5にされないか。5にならないようにしたほうがいいか? 5にしてしまいもう一方から分配するか?
  • 無限ループしないようにするにはどうするか。

上の二つはわかると思うんですが最後の一個が重要で、このゲーム割と無限ループするんですよね。
特に多いのが最初の1:1から2:0->1:1->2:0ループ...小学生の頃は意地を張り合っていました笑
それをコンピューター対戦でやってしまうとユーザー飽きると思うんです。
それを起こさせないためのアルゴリズムを考えていく必要があると思います。
これらを踏まえたアルゴリズムを第二回以降考えていきます。

期待させたのにこのクオリティ.... ソフトは良くても書いた人がこれだとソフトの良さが台無しになると感じた瞬間でした。

f:id:manato2cc:20161018212728p:plainf:id:manato2cc:20161018212729p:plainf:id:manato2cc:20161018212730p:plainf:id:manato2cc:20161018212731p:plain