Closed shinyaishida closed 3 years ago
まずは何巡目かを表示できるようにする。
TCPClientGame の 46 行目の action の中身を見てみる。
action = Action.from_json(action_json, self)
json のままの方がみやすい。<-
で始まる行がアクション。
mjai-tsumogiri の出力を調べる。
<- {"type":"hello","protocol":"mjsonp","protocol_version":3}
-> {"type":"join","name":"tsumogiri","room":"default"}
<- {"type":"start_game","id":1,"names":["shanten","tsumogiri","shanten","shanten"]}
-> {"type":"none"}
<- {"type":"start_kyoku","bakaze":"E","kyoku":1,"honba":0,"kyotaku":0,"oya":0,"dora_marker":"5p","tehais":[["?","?","?","?","?","?","?","?","?","?","?","?","?"],["4m","6m","6m","9m","2p","2p","4p","5p","3s","4s","7s","7s","8s"],["?","?","?","?","?","?","?","?","?","?","?","?","?"],["?","?","?","?","?","?","?","?","?","?","?","?","?"]]}
hello
をうけとる。join
を送って参加する。start_game
をうけとってゲームを開始する。id
が自分の場所。0~3 (配列のインデックス)。names
にプレーヤーの名前が入る。none
を返す。start_kyoku
をうけとると局が始まる。場風は bakaze
、局は kyoku
、本場は honba
。手牌は tehais
の配列に入っている。id
を使えば自分の手牌がとりだせる。やること
start_game
アクションのときに、自分の id
を覚える。start_kyoku
アクションのときに、tehais[id]
を取り出して、ターミナルに出力する。id
は @my_id に格納される。
配牌はこれで出力
if action_obj["type"] == "start_kyoku"
puts '== ' + action_obj["tehais"][@my_id].join(", ")
end
ターミナル上で自分の牌を表示する。
イメージ
???
は何巡目かを表す数字、|
の右がツモ牌。