« 2009年1月 | トップページ | 2009年3月 »

2009年2月

サーバ構築 目次

前回記事で設計フェーズの記事一覧を記載したので、サーバ構築についても目次を改めて作成

開発ツール

  • Java開発環境 Jude
  • Java開発環境 eclipse
  • サーバ構築

  • 機材 壊れたPCの部品買い替え検討
  • 機材 結局ベアボーンとCPU買い替え
  • 機材 新ベアボーン組立て
  • サーバ構築 Linuxインストール
  • サーバ構築 Linux基本設定
  • サーバ構築 Linuxサービス等設定
  • サーバ構築 Linuxサービス等設定の続き
  • サーバ構築 不具合対応(Stopping irqbalance がFAILになる)
  • サーバ構築 Webサーバ
  • サーバ構築 Samba、SSH、NTP
  • サーバ構築 cgiが正しく動作しない問題
  • サーバ構築 CVS、xinetd インストール
  • サーバ構築 mydnsへの登録
  • サーバ構築 mydnsのアクセス確認
  • サーバ構築 LinuxサーバでのEmobileの利用
  • サーバ構築 Linuxをproxyサーバとして使う
  • サーバ構築 webalizerインストール
  • リポジトリ/Subversion/TortoiseSvn

  • サーバ構築 SubVersion導入
  • サーバ構築 subversionのインストール成功!
  • サーバ構築 subversionの設定
  • サーバ構築 TortoiseSvnのインストール
  • サーバ構築 Apacheとsubversionの連携設定
  • サーバ構築 subversionのリポジトリアクセス改善
  • サーバ構築 Subversionへの格納構成
  • サーバ構築 Subversionリポジトリへ格納
  • サーバ構築 EclipseとSubversionの連携
  • サーバ構築 Subclipse導入
  • サーバ構築 Subclipseでのtag作成
  • | | コメント (0) | トラックバック (0)

    NetJan設計 一旦完了

    ほぼ設計が完了したので、目次の意味を兼ねてUPしたきた記事の一覧を下記に記載した。 設計書はSubversionリポジトリ に格納してるので、ワードの設計書を見れば全体像を見やすいように構成している。 ※つもり

    全体

  • Java開発環境 Jude
  • NetJan設計 設計書構成変更
  • NetJan設計 クライアントとサーバ間の排他制御について
  • NetJan設計 MVC間の排他制御について
  • NetJan設計 設計方針 追加
  • control

  • NetJan設計 control - 内部構成
  • NetJan設計 control - コマンド自動生成
  • NetJan設計 Network - クラス
  • NetJan設計 Network - 詳細シーケンス
  • NetJan設計 Network - ソケットスレッド含有イメージ
  • ui

  • NetJan設計 ui の役割について
  • NetJan設計 表示パフォーマンス設計
  • NetJan設計 ui - GUIの表示 - 表示位置判断
  • model

  • NetJan設計 Model派生クラス
  • NetJan設計 Modelデータ構成
  • NetJan設計 Model-プレーヤー識別概念について
  • NetJan設計 Model-識別概念-gpos(ゲームポジション)
  • NetJan設計 Model-識別概念-役割
  • NetJan設計 Model_TileHolder
  • NetJan設計 model - ゲーム状態
  • NetJan設計 model - ゲームサブ状態
  • command

  • NetJan設計 Com派生クラス
  • NetJan設計 Com実行前確認と実行
  • NetJan設計 Com - 各Com処理内容 - 1
  • NetJan設計 Com - 各Com処理内容 - 2
  • NetJan設計 Com - 各Com処理内容 - 3
  • NetJan設計 Com - 各Com処理内容 - 4
  • NetJan設計 Com - 上がり判定
  • NetJan設計 Com - 上がり判定処理構成
  • NetJan設計 Com - 上がり判定 - 組合せパターン検索1
  • NetJan設計 Com - 上がり判定 - 組合せパターン検索2
  • NetJan設計 Com - 上がり判定 - 組合せパターン検索3
  • NetJan設計 Com - 上がり判定 - 組合せパターン検索4
  • | | コメント (0) | トラックバック (0)

    NetJan設計 ui - 牌表示座標計算6

    基準座標から、差分オフセットを足して表示座標を計算する。

    Each_disp_pos

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - 牌表示座標計算5

    表示posの0~3、holder種別3種あるので、4×3=12種類の基準座標を算出しておく。 下記図は表示pos=3の山牌、表示pos=0の手配、表示pos=1の捨牌の例。

    Kijun

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - 牌表示座標計算4

    下記は一要素サイズの算出 (山牌、手配)の図。

    Size1_pile

    下記は捨て牌の図

    Size1_discard

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - 牌表示座標計算3

    牌画像の表示座標計算方法については、下記図のようにボード幅から位置計算の一要素サイズを算出し、一要素サイズから基準座標を算出し、基準座標から各牌の表示座標を計算する。

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - 牌表示座標計算2

    表示座標計算における、”内枠”の考え方は、ui 牌画像立体表示 シートの”共通表部分画像” とは異なり、少し広い。 特に幅に関しては、内枠と外枠で同サイズとなる。

    Kousei

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - 牌表示座標計算1

    牌の表示位置については、ボードのサイズに応じて柔軟に調整できるようにする。

    牌は重なって表示された場合に、立体部分を表示しないほうが自然なので、その場合は立体の一部を除いて表示する。下記が立体部分を全て表示した例と、一部重ねた表示の例。
    Rittai_3   Kasane

    | | コメント (0) | トラックバック (0)

    NetJan設計 デバッグ用処理

    デバッグ用の処理として、Com送受信、Com実行判断時のデータ状態、をログに残す。 下記、デバッグ関係クラスのクラス図。

    Class_debug

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - GUI牌の立体表示、共通部分構成

    牌画像の共通表部分画像と、型枠部分の構成は下記のようにする。

    Hai_kousei

    | | コメント (0) | トラックバック (0)

    NetJan設計 ui - GUI牌の立体表示について

    牌画像データはまつせんさんのサイトからDLしたものを使用する。 

    DLした画像は下記のサイズ。

    • 縦version 24×34
    • 横version 32×24

    ただし、後述するように縦横で画像の”内部分”を共有するため、横画像についてはDLしたものは使わず、縦画像の内部分から生成する。

    牌は、縦/横、立ち状態/捨て状態 がある事を考えると、下記の4種類がある。画像については、内側部分を共有して4種類の画像を生成するようにする。 赤枠の部分が”共通表部分画像”となる。

    Hai_4kinds

    | | コメント (0) | トラックバック (0)

    NetJan設計 自動生成コマンド一覧

    コマンドの種別毎に、サーバで自動生成するもの、クライアントで自動生成するもの、を分ける。 下記が自動生成されるコマンドの一覧。

    Auto

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 特殊組合せ役判定

    国士無双、七対子の判定を行い、もし成立する場合は、④の出力結果と比較して、得点の高いほうを採用する。

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 役判定2

    役判定と得点計算は、役判定 → 符判定の順に行われる。 役判定は、各役の判定メソッドを用意し、順に判断していく。  1つの役が成立したらもう1つの役が消えるケースにおいては、下位の役から判定する。 (一盃口 ⇒ 二盃口) 

    各判定メソッドには、成立パターンとツモ牌位置、その他情報、その時点で成立している役の一覧を入力情報として渡し、出力情報は成立した役の一覧となる。

    Yaku2

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 役判定1

    成立した各パターンに対して、役の判定をしていく。 判定のためには、成立パターン以外に、下記の情報が必要となる。

    • ドラ
    • リーチ
    • 上がり牌種別
    • ツモ/ロン
    • 海底

    ModelScoreHolder の一部のメンバを使用して、最大点数になる役を保持する。 上がり牌種別 のデータを複数個持っている場合、1つの成立パターンで2つ以上の点数計算結果を出す必要があるケースがある。
    例えば、③.重複成立パターン削除 の結果、2つに絞られた成立パターンを
    入力とした場合を考える。 この時、上がり牌種別が”4”であった場合、1つの成立パターンにつき、2つの計算結果を出す必要がある。 対子の一部が上がり牌だったら単騎待ちの2符が付くが、平和の役は付かない、等の違いが発生のが理由。

    Yaku1

    仮に上記4つのパターンでの得点計算結果が下記のように異なる場合、最も高い点数が採用され、このプロセスの出力としてはこの1パターンに絞られる。

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索7

    • 1-2 1に戻り、右接続から開始して、同様にパターンが成立するか、確認していく。 確定面子を確定ボックスへ

    Seq12

    • 1-2の続き1 左下からパターン検索を続けていく。

    Seq121

    • 1-2の続き2 このルートで検索を進めていくと、最終的には下記のようにパターンが成立する。 ただ、このパターンは1-1-2で成立したパターンと同じになってしまうので、再起検索が完了した時点で重複パターンとして削除される。

    Seq122

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索6

    • 1-1-2 対子を確定させて確定ボックスへ移動し、処理を続けていく。

    Seq112

    • 1-1-2の続き1 選択肢は右接続のみ。 確定したら確定ボックスへ。

    Seq1121

    • 1-1-2の続き2 同様に処理を続けていく

    Seq1122

    • 1-1-2の続き3 同様に処理を続けていく。 ②の上接続を1回した時点で、対子確定の選択肢があるようにも見えるが、確定ボックス内に、確定した対子がある場合は選択肢として認めない。 よって上接続のみ。

    Seq1123

    • 1-1-2の続き4 同様に処理を続けていくと、最終的に下記の状態になり、4面子と1対子が確定した状態になる。 これで、1つの組合せパターンが"成立"した。 成立したパターンは確定ボックスとは別途記憶し、再起処理を続ける。

    Seq1124

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索5

    1-1-1の続き1
    一番左にある牌から処理を続けていく。

    Seq1111

    1-1-1の続き2
    選択肢はないので、右接続していき、確定ボックスへ。

    Seq1112

    1-1-1の続き3
    右下の牌に注目して処理を継続。 右接続しか選択肢がない。

    Seq1113

    1-1-1の続き4
    右接続するが、ここで選択肢が無くなってしまうので、この続きはできないので破棄となる。 再起処理で1-1へ戻る。

    Seq1114

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索4

    1-1
    左下の”一”からスタートして、上接続する。 この時点で、更に上接続する、対子確定させる、の2つの選択肢がある。

    Seq11

    1-1-1
    更に上接続する。 この時点で1面子確定し、確定ボックスへ移動。

    Seq111

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索3

    例えば、手配が下記だとする。

    Kensaku3

    検索配列に格納すると、下記のようになる。 左下から開始する。 この時点では、上接続、右接続、の選択肢がある。

    Seq1_2

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索2

    検索処理の具体的方法としては、34種×4個の配列に、手牌を並べて、左下の牌から順に上接続/右接続/対子確定 を再帰的に検索していき、成立するパターンを洗い出す。 配列イメージにおいては、順子にできない(右接続できない)は青線部で表す。 検索配列のイメージで、”九①②”という順子は作成できないので右接続しない事がわかる。

    Kensaku2_2

    | | コメント (0) | トラックバック (0)

    ユーザ車検は確かに5万円くらい得しました。

    ユーザ車検に行ってきました。 確かに、ディーラーとかにやってもらうより5万円くらい安く上がりました。 次回からも自分でやろうと思います。

    続きを読む "ユーザ車検は確かに5万円くらい得しました。"

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 組合せパターン検索1

    組合せパターン検索とは、14個の牌で4つの面子と1つの頭を構成するにあたり、構成の組合せのパターンを洗い出す処理を指す。 この時点では役の事は考えない。
    例えば下記の例なら、5つの組合せパターンが成立する。 

    Agari2_1

    2番目と3番目等は組合せパターン検索において2つ成立してしまうが、その後の重複成立パターン削除で、削除される。

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定 - 流局

    流局判定は単純で、Com_Winの上がり種別が流局で、残り牌が14個であれば成立し、テンパイしているものへ点数が流れる。

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定処理構成

    上がり判定は、

    • 流局判定
    • 組合せパターン検索
    • 重複成立パターン削除
    • 上がり役判定
    • 特殊組合せ役判定

    の順で行う。 各処理詳細は後述する。

    | | コメント (0) | トラックバック (0)

    NetJan設計 Com - 上がり判定

    次は上がり判定について。

    上がり判定メソッドはCom_Winに持たせる。 上がり種別には3種類ある。

    • 流局

    これも上がりの一種として処理するようにする。 残り山牌が14枚であれば、即成立するので、まず流局かどうかを確認する。

    • ツモ上がり

    1人のプレイヤーが14個の牌を持っている状態でCom_Winコマンドを送信する事になる。 

    Agari_tumo

    • ロン上がり

    捨て牌されたタイミングで、他家プレイヤーがCom_Winコマンドを送信する事になる。

    Agari_ron

    2番目と3番目のケースで上がり判定メソッドを共有できるようにするため、14枚目の牌を内部的に”上がり牌”として認識しつつ、それ以外の組合せパターン判定ロジックにおいては14牌をソートした状態で判断処理を行う。

    | | コメント (0) | トラックバック (0)

    NetJan設計 設計方針 追加

    設計基本方針に1つ追加。 頭の中ではそういう事になっていたけど、明記していなかった点をNetJan設計書.doc (svnリポジトリ) へ追記。 

    基本的に、サーバとクライアントは常に同じデータを保持する方針とする。 こうする事により、設計とデバッグをシンプルにさせる。 伴い、Com送信も常にサーバが処理したら必ずクライアントに送信して同じ処理をクライアント側でも行うようにする。 

    例えば、得点計算画面表示中において、4つのクライアントから計算画面のClose要求を受信してから次の局に移る。 設計選択肢の1つとして、4つのクライアント全員からClose要求が集まってから、サーバ→クライアントへ計算画面Close通知コマンドを送信する事もできるが、そうではなく、1つのクライアントから要求が来る度に全員にその都度伝え、”どのクライアントからClose要求が来てるか”というフラグについてサーバ/クライアントで共有する。

    | | コメント (0) | トラックバック (0)

    « 2009年1月 | トップページ | 2009年3月 »