サーバ構築 目次
前回記事で設計フェーズの記事一覧を記載したので、サーバ構築についても目次を改めて作成
開発ツール
サーバ構築
リポジトリ/Subversion/TortoiseSvn
| 固定リンク | コメント (0) | トラックバック (0)
前回記事で設計フェーズの記事一覧を記載したので、サーバ構築についても目次を改めて作成
開発ツール
サーバ構築
リポジトリ/Subversion/TortoiseSvn
| 固定リンク | コメント (0) | トラックバック (0)
ほぼ設計が完了したので、目次の意味を兼ねてUPしたきた記事の一覧を下記に記載した。 設計書はSubversionリポジトリ に格納してるので、ワードの設計書を見れば全体像を見やすいように構成している。 ※つもり
全体
control
ui
model
command
| 固定リンク | コメント (0) | トラックバック (0)
牌画像の表示座標計算方法については、下記図のようにボード幅から位置計算の一要素サイズを算出し、一要素サイズから基準座標を算出し、基準座標から各牌の表示座標を計算する。
| 固定リンク | コメント (0) | トラックバック (1)
牌画像データはまつせんさんのサイトからDLしたものを使用する。
DLした画像は下記のサイズ。
ただし、後述するように縦横で画像の”内部分”を共有するため、横画像についてはDLしたものは使わず、縦画像の内部分から生成する。
牌は、縦/横、立ち状態/捨て状態 がある事を考えると、下記の4種類がある。画像については、内側部分を共有して4種類の画像を生成するようにする。 赤枠の部分が”共通表部分画像”となる。
| 固定リンク | コメント (0) | トラックバック (0)
国士無双、七対子の判定を行い、もし成立する場合は、④の出力結果と比較して、得点の高いほうを採用する。
| 固定リンク | コメント (0) | トラックバック (0)
成立した各パターンに対して、役の判定をしていく。 判定のためには、成立パターン以外に、下記の情報が必要となる。
ModelScoreHolder の一部のメンバを使用して、最大点数になる役を保持する。 上がり牌種別 のデータを複数個持っている場合、1つの成立パターンで2つ以上の点数計算結果を出す必要があるケースがある。
例えば、③.重複成立パターン削除 の結果、2つに絞られた成立パターンを
入力とした場合を考える。 この時、上がり牌種別が”4”であった場合、1つの成立パターンにつき、2つの計算結果を出す必要がある。 対子の一部が上がり牌だったら単騎待ちの2符が付くが、平和の役は付かない、等の違いが発生のが理由。
仮に上記4つのパターンでの得点計算結果が下記のように異なる場合、最も高い点数が採用され、このプロセスの出力としてはこの1パターンに絞られる。
| 固定リンク | コメント (0) | トラックバック (1)
| 固定リンク | コメント (0) | トラックバック (0)
ユーザ車検に行ってきました。 確かに、ディーラーとかにやってもらうより5万円くらい安く上がりました。 次回からも自分でやろうと思います。
| 固定リンク | コメント (0) | トラックバック (1)
流局判定は単純で、Com_Winの上がり種別が流局で、残り牌が14個であれば成立し、テンパイしているものへ点数が流れる。
| 固定リンク | コメント (0) | トラックバック (0)
上がり判定は、
の順で行う。 各処理詳細は後述する。
| 固定リンク | コメント (0) | トラックバック (1)
次は上がり判定について。
上がり判定メソッドはCom_Winに持たせる。 上がり種別には3種類ある。
これも上がりの一種として処理するようにする。 残り山牌が14枚であれば、即成立するので、まず流局かどうかを確認する。
1人のプレイヤーが14個の牌を持っている状態でCom_Winコマンドを送信する事になる。
捨て牌されたタイミングで、他家プレイヤーがCom_Winコマンドを送信する事になる。
2番目と3番目のケースで上がり判定メソッドを共有できるようにするため、14枚目の牌を内部的に”上がり牌”として認識しつつ、それ以外の組合せパターン判定ロジックにおいては14牌をソートした状態で判断処理を行う。
| 固定リンク | コメント (0) | トラックバック (1)
設計基本方針に1つ追加。 頭の中ではそういう事になっていたけど、明記していなかった点をNetJan設計書.doc (svnリポジトリ) へ追記。
基本的に、サーバとクライアントは常に同じデータを保持する方針とする。 こうする事により、設計とデバッグをシンプルにさせる。 伴い、Com送信も常にサーバが処理したら必ずクライアントに送信して同じ処理をクライアント側でも行うようにする。
例えば、得点計算画面表示中において、4つのクライアントから計算画面のClose要求を受信してから次の局に移る。 設計選択肢の1つとして、4つのクライアント全員からClose要求が集まってから、サーバ→クライアントへ計算画面Close通知コマンドを送信する事もできるが、そうではなく、1つのクライアントから要求が来る度に全員にその都度伝え、”どのクライアントからClose要求が来てるか”というフラグについてサーバ/クライアントで共有する。
| 固定リンク | コメント (0) | トラックバック (1)
最近のコメント