こんにちは。

先日、JavaScriptでシンプルな3目並べを作った記事を書きました。今回はそこに1つルールを加えて引き分けの起こらないゲームにしてみようと思います。

加えたルールはシンプル。マス目に数字が書いてあるので、普通の3目並べのルールで全部のマスが埋まっても決着がつかなかった場合には自分のマークのあるマスに書かれた数字の合計が大きい方が勝ちです。
COM戦の難易度は4段階。バグがなければ最強モードは常に最善手を打ってくるので一度でもミスると絶対に負けます。

もう少し丁寧なゲーム説明(クリックで展開) 基本は前回の3目並べと同じです。oとxを交互に空いているマスに書いていき、縦横斜めいずれかに自分のマークを3つ並べたほうが勝ちです。
ただしこれだけだと決着がつかないことがあるので、最後まで決着がつかなかった場合のみoの書かれたマスとxの書かれたマスの数字の合計を計算し、大きい方の勝ちとなります。ゲーム画面上では点数の合計がリアルタイムで表示されますが、これが勝ち負けにかかわるのはすべてのマスが埋まっても3つのマークが並ばなかった場合のみです。
また、書かれた数字の合計は必ず奇数になるようにしているので、引き分けは発生しません。
rule
例えばこの状態の場合、普通の3目並べでは引き分けになりますが、追加ルールの計算を行うとoの書かれたマスの数字の合計は20、xは23となるため、xの勝ちとなります。


対戦タイプ
難易度

得点 o: 0 x: 0


ちなみにこのゲームは私のオリジナルではなく、AtCoderというサイトで出題された問題をほぼそのままゲームの形にしたものです。