Edited at
MilkcocoaDay 19

milkcocoaで作るリアルタイムオセロ

More than 1 year has passed since last update.


リアルタイムなオセロ、題してオセロ2

初めまして。Lucky Brothers & co.という会社で代表をやっております田島と申します。

今年は、milkcocoaを使ってリアルタイムなオセロを作ってみたのでご紹介させていただきます。

リアルタイムなオセロと言ってもまだピンと来ないと思うので具体的に説明すると、

ターン制を排除したオセロ

ということです。

通常のオセロだと、プレイヤー同士が交互に石を打っていくのが基本ですが、今回のリアルタイムオセロ(※以降:オセロ2)だと、 相手のターンを待たずにどんどん石を置いていくことができる というルールなんです。

つまり、頭の回転を早くして早い者勝ちでどんどん石を置いていったほうが有利ということですね。

なんとなくわかってきましたでしょうか。

しかし、ただ石を早い者勝ちで置けるだけだと、適当なマスにどんどん置くだけになってしまってつまらないので、 ルール上、石を置けないマス(=相手を挟めないマス)に間違って置こうとすると、数秒間のペナルティタイムが課せられる というルールを設けました。


早速お試しプレイ

…と、ここまで細かく話してもさすがについてこれないですよね。

それでは、百聞は一見にしかずということで早速やっていただきましょう。

https://gonshi.github.io/othello_2/

^ こちらがURLです。まずはコンピュータ相手に1人プレイで楽しむことができます。あなたの石は白ですね。Let's Fight!

いかがでしたでしょうか?

なんとなく、オセロ2のルールをわかってきましたか?

ところが、今のところまだmilkcocoaの恩恵を受けられていないので、ここからが本題です。


対戦版をプレイ

なんとこのオセロ2、2人対戦で楽しむこともできるのです。

こちらのURLにアクセスしてみてください。

上記のような画面が表示されるので、対戦相手の方のスマートフォンでQRコードを読み込んで下さい。

読み込みが完了すると、対戦スタートです!

これ、結構盛り上がるので是非周りの人を誘って遊んでみて下さい。

周りの人が忙しそうな場合は、プレイの様子の動画を観て楽しんで下さい。


技術的に気をつけたところ

ソースコードはコチラから見ることができます。

言わずもがな、通信対戦のところにmilkcocoaを使っていますね。

気をつけた点としては、2人同時に同じマスをタップしたときにも競合が置きないように実装したところです。

具体的には、 自分の置いた石も即座には盤面上に反映せず、一度milkcocoaに送信してレスポンスが返ってきた時点で反映させる ようにしました。

つまり、milkcocoaに対して置いたマスの情報を早く届けた方が、マスの獲得権を得られるような実装になっています。


アプリ化しました!

そしてそして、このオセロ2、リバーシ2という表記にてiOS/Androidともにアプリ化しました!

http://reversi2.lucky-brothers.co.jp/

上記のURLからダウンロードページへ飛ぶことができます。

残念ながらまだ2人プレイは未実装で、1人プレイ専用なのですが(milkcocoaをcocos-2dに適用するのは難しかった‥)、1人プレイでも楽しめるように更なるルールチューニングを加えたので是非遊んでみて下さい!

ランキング機能もあるので、上位目指してください!


おまけ

でかい盤面ver. もあります。従来のオセロとは遠くかけ離れた、カオスな楽しみ方ができます。