Public Member Functions | Private Member Functions | Private Attributes
MatrixCell Class Reference

全細胞(全セル)を管理するクラス. More...

#include <MatrixCell.h>

Inheritance diagram for MatrixCell:
Subject

List of all members.

Public Member Functions

 MatrixCell (long i_lColMax, long i_lRowMax)
 コンストラクタ.
virtual ~MatrixCell ()
 デストラクタ.
void init (long i_lColMax, long i_lRowMax)
 初期化.
long getColMax () const
 セルの横最大幅を取得.
long getRowMax () const
 セルの縦最大幅を取得.
CellgetCell (long i_lCol, long i_lRow)
 セルを取得する.
void setCellState (long i_lCol, long i_lRow, CellAttribute::CELL_STATE i_eState)
 セルの状態を設定する.
CellAttribute::CELL_STATE getCellState (long i_lCol, long i_lRow)
 セルの状態を取得する.
bool refreshCell ()
 全セルの更新を行う.
std::string dispAllCellState ()
 全セルの状態を表示.
std::string dispNeighborAliveCell ()
 隣接セルの生存数を表示.

Private Member Functions

bool makeCell ()
 セルを生成する.
bool linkCell ()
 隣接セルをリンクさせる.
bool setNeighborCell (Cell *i_pcTargetCell, long i_lCol, long i_lRow)
 隣接セルを設定する.
long check_region (long i_lValue, long i_lMax)
 境界値をチェックする.
bool sendStateToNeighborCell ()
 隣接セルに自分自身の状態を通知する.
bool decideNextGeneration ()
 次世代のセルを決定する.
void setColMax (long i_lColMax)
 セル横最大幅を設定.
bool sendState (long i_lCol, long i_lRow, CellAttribute::CELL_STATE a_eState)
 MatrixCellの状態を通知する.
void setRowMax (long i_lRowMax)
 セルの縦最大幅を設定.

Private Attributes

long m_lColMax
 セルの横最大幅.
long m_lRowMax
 セルの縦最大幅.
std::vector< std::vector< Cell * > > m_vecCellArray
 セルの集合体.

Detailed Description

全細胞(全セル)を管理するクラス.

Note:
Cellを管理する.

Constructor & Destructor Documentation

MatrixCell::MatrixCell ( long  i_lColMax,
long  i_lRowMax 
) [inline]

コンストラクタ.

virtual MatrixCell::~MatrixCell ( ) [inline, virtual]

デストラクタ.


Member Function Documentation

long MatrixCell::check_region ( long  i_lValue,
long  i_lMax 
) [private]

境界値をチェックする.

Parameters:
longi_lValue チェックしたい値.
longi_lMax チェックしたい値の最大値.
Note:
引数i_lValueが境界値だった場合, 以下とする. ・最大値 = 最小値(0). つまり, 境界値は存在せず(2次元の場合)球面となる.
bool MatrixCell::decideNextGeneration ( ) [private]

次世代のセルを決定する.

Parameters:
なし.
Returns:
通知結果.
Return values:
true成功.
false失敗.
string MatrixCell::dispAllCellState ( )

全セルの状態を表示.

Note:
デバッグ用.
string MatrixCell::dispNeighborAliveCell ( )

隣接セルの生存数を表示.

Note:
デバッグ用.
Cell* MatrixCell::getCell ( long  i_lCol,
long  i_lRow 
) [inline]

セルを取得する.

Parameters:
longi_lCol 取得したいセルの横位置.
longi_lRow 取得したいセルの縦位置.
Returns:
セル
CellAttribute::CELL_STATE MatrixCell::getCellState ( long  i_lCol,
long  i_lRow 
) [inline]

セルの状態を取得する.

Parameters:
longi_lCol セルの座標位置(横方向)
longi_lRow セルの座標位置(縦方向)
Returns:
セルの状態. 0:死 1:生
Return values:
true
false
long MatrixCell::getColMax ( ) const [inline]

セルの横最大幅を取得.

Parameters:
なし.
Returns:
セルの横最大幅.
long MatrixCell::getRowMax ( ) const [inline]

セルの縦最大幅を取得.

Parameters:
なし.
Returns:
セルの縦最大幅.
void MatrixCell::init ( long  i_lColMax,
long  i_lRowMax 
)

初期化.

Parameters:
なし.
Returns:
なし.
bool MatrixCell::linkCell ( ) [private]

隣接セルをリンクさせる.

Parameters:
なし.
Returns:
なし.
bool MatrixCell::makeCell ( ) [private]

セルを生成する.

Parameters:
なし.
Returns:
処理結果を返す.
Return values:
true全セルの生成に成功.
falseセルの生成に失敗.
bool MatrixCell::refreshCell ( )

全セルの更新を行う.

Parameters:
なし.
Returns:
更新の結果.
Return values:
true成功.
false失敗.
bool MatrixCell::sendState ( long  i_lCol,
long  i_lRow,
CellAttribute::CELL_STATE  a_eState 
) [private]

MatrixCellの状態を通知する.

Parameters:
なし.
Returns:
通知に成功/失敗を返す.
Return values:
true成功.
false失敗.
bool MatrixCell::sendStateToNeighborCell ( ) [private]

隣接セルに自分自身の状態を通知する.

Parameters:
なし.
Returns:
通知結果.
Return values:
true成功.
false失敗.
void MatrixCell::setCellState ( long  i_lCol,
long  i_lRow,
CellAttribute::CELL_STATE  i_eState 
) [inline]

セルの状態を設定する.

Parameters:
longi_lCol セルの座標位置(横方向)
longi_lRow セルの座標位置(縦方向)
CellAttribute::CELL_STATEi_eState 設定したいセルの状態
Returns:
なし.
void MatrixCell::setColMax ( long  i_lColMax) [inline, private]

セル横最大幅を設定.

Parameters:
セル横最大幅.
Returns:
なし.
Note:
将来的には, セル横最大幅を可変にしたい. privateにしておくことで, プログラム実行中に変更不可としている.
bool MatrixCell::setNeighborCell ( Cell i_pcTargetCell,
long  i_lCol,
long  i_lRow 
) [private]

隣接セルを設定する.

Parameters:
Cell*i_pcTargetCell 隣接セルを設定するセル.
longi_lCol 設定するセルの横位置.
longi_lRow 設定するセルの縦位置.
Returns:
成功/失敗.
void MatrixCell::setRowMax ( long  i_lRowMax) [inline, private]

セルの縦最大幅を設定.

Parameters:
セル横最大幅.
Returns:
なし.
Note:
将来的には, セル縦最大幅を可変にしたい. privateにしておくことで, プログラム実行中に変更不可としている.

Member Data Documentation

long MatrixCell::m_lColMax [private]

セルの横最大幅.

long MatrixCell::m_lRowMax [private]

セルの縦最大幅.

std::vector< std::vector <Cell*> > MatrixCell::m_vecCellArray [private]

セルの集合体.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Enumerations Enumerator Defines