> For the complete documentation index, see [llms.txt](https://kashiwara.gitbook.io/rubydesurufurusukuratchibe/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kashiwara.gitbook.io/rubydesurufurusukuratchibe/zui-zhong-zhang-ji-neng-zhui-jia/orijinarucomno.md).

# オリジナルCOMの追加

### オリジナルCOMを考える

最後にオリジナルCOMを考えて今まで作ってきたRandomComPlayerやOrderlyComPlayerに勝利してみましょう。

COMの挙動は色々考えられますね。

* 真ん中を優先的に打ちにいく
* リーチがかかっていたら揃えにいく
* 可能性がないマスに置きに行かない

どのようなCOMが強そうでしょうか。

{% hint style="info" %}
**課題コーナー**

RandomComPlayerとOrderlyComPlayerに２連勝できるオリジナルCOMを考える

必要があれば他クラスを拡張しても良い
{% endhint %}

### 絶対に負けないCOM

少し実装が難しくなってしまいますがminimaxというゲーム木を使ったアルゴリズムを適用すれば

負けることは無くなります。

チャレンジしてみたい人は是非やってみてください！

参考にminimaxアルゴリズムを適用させたコードを以下に記載しておきます。

{% embed url="<https://github.com/Kashiwara0205/ruby-tic-tac-toe/tree/master/ch-minimax/code>" %}

以上でRubyで実装するフルスクラッチ三目並べは完了です。

お疲れ様でした！
