daisukeuchida.com
2010/03  01 
技術的な話 reversiAPIの公開
日想
風船手紙のような思想を好む私なので、時間に縛られずにゆったりとした雰囲気のもとで、ゆるく繋がっていたいものです。
そこで今、風船手紙の思想を汲んだリバーシアプリを開発中です。

まだ途中ですが、その中枢であるリバーシロジックが完成しました。
で、仕組み上API公開が可能なので公開することにします。
例のごとくXMLですw

APIのURLは、http://www.daisukeuchida.com/reversi/reversiXml.phpです。
パラメータを付加しないでリクエストすると以下のようなXMLを返します。(実際は改行無しです)

<result>
  <nowPlay>2</nowPlay>
  <select>0</select>
  <black>2</black>
  <write>2</write>
  <stage>0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,9,0,0,0,0,
0,0,9,1,2,0,0,0,
0,0,0,2,1,9,0,0,
0,0,0,0,9,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0</stage>
</result>


result結果
nowPlay石を置く側[1:白 | 2:黒]
select直前に置かれた石の位置[0 - 63]
black黒い石の数
write白い石の数
stage盤の状態(カンマ区切り)[1:白 | 2:黒 | 0:未設置 | 9:設置可能]

スタートは、「黒の番」ということになります。
図にするとこんな感じです。


stageの値をカンマ区切りで配列にして8つずつ折り返すと、リバーシの盤になります。

で、今度は石を置くリクエストをします。パラメータは以下の通りです。

play石を置いた側[1:白 | 2:黒]
sel石を置いた位置[0 - 63]
presel直前に石を置かれた位置(任意)
stage現時点の盤の状態(カンマ区切り)[1:白 | 2:黒 | 0:未設置 | 9:設置可能(0でも可)]

例えば上記のスタート時点から「黒が、上から3行目の4列目に石を置く」場合のリクエストはこんな感じです。(実際は改行無しです)




play2
sel19
presel0
stage0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,9,0,0,0,0,
0,0,9,1,2,0,0,0,
0,0,0,2,1,9,0,0,
0,0,0,0,9,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0


成功すると以下のようなXMLを返します。(実際は改行無しです)

<result>
  <nowPlay>1</nowPlay>
  <select>19</select>
  <black>4</black>
  <write>1</write>
  <stage>0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,9,2,9,0,0,0,
0,0,0,2,2,0,0,0,
0,0,9,2,1,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0</stage>
</result>


図にするとこんな感じです。


これを最後まで繰り返して行くことによってゲームが進行します。

因みに、相手が石を置く事ができない場合、相手の番はパスされて再び石を置ける状態として返されます。
また、リクエストが処理できない状態であった場合は、元の情報を返します。

reversiAPIを使ったサンプルも公開しておきますので、参考になればっ《←ソースきったない》
しかしこのAPI化によって画面表示部分が174行で済みました。しかも任意の表現を自在に加える事ができます。
つまり余計な事に悩む必要が無いという。

ちなみにサンプルはAjaxの形式をとっています。何故ならiPhoneでもAndroidでも動くからです。
さ、こちらはゆるいリバーシアプリの続きをつくることにします。

ここからコメント
 
 
 
Daisuke Uchidaに話しかける[?]
 
Google カスタム検索
 
今日のごはんは何にしよう
 
ベルーの写真
 
風船手紙
Adobe AIR版

iGoogle版
Add to Google
 
中吊り.jp
 
Daisuke Uchida のつぶやき

follow daisuke_uchida at http://twitter.com

 
cook Bad のレシピ

follow cook_Bad at http://twitter.com

 
aya mariki のごめんなさい

follow aya_mariki at http://twitter.com

 
wordChain
キーワード:
2010
03  02  01
2009
12  11  10  09
08  07  06  05
04  03  02  01
2008
12  11  10  09
08  07  06  05
04  03  02  01
題目
ML0100:携帯
ML0101:アスクル
ML0102:風船手紙
ML0103:cookpad
不思議な夢
ひとこと読書感想文
技術的な話
外接
WEB@PUNI
ASKUL DESKTOP
Fun Booth
i-PAINT
Power Garden
金子エンタープライズ
電車女
Horizon
takaの書庫~読んで候~
接触
info
follow daisuke_uchida at http://twitter.com
Copyright (C) 2008-2010 daisukeuchida.com All rights reserved.