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

細胞(セル)1個をあらわすクラス. More...

#include <Cell.h>

Inheritance diagram for Cell:
Subject Observer

List of all members.

Public Member Functions

 Cell ()
 コンストラクタ.
virtual ~Cell ()
 デストラクタ.
void init ()
 初期化.
CellAttribute::CELL_STATE getState () const
 自分自身のセルの状態を取得.
void setState (CellAttribute::CELL_STATE i_eState)
 自分自身のセルの状態を設定.
void setNeighbor (Cell *i_pCell)
 隣接セルを設定する.
bool sendState ()
 隣接セルに自分の状態を通知する.
bool decideState ()
 自分自身の状態を決定する.
bool update (Information *i_pcInformation)
 Subjectから通知を受信.
long getNeighborAliveNum () const
 隣接セルの生存数を取得.

Private Member Functions

bool receiveStateFromNeighborCell (CellAttribute *i_pcCellAttribute)
 隣接セルの状態を受け取る.
bool isBorn ()
 自分自身と隣接セルの状態から, 誕生か否かを判定する.
bool isSurvive ()
 自分自身と隣接セルの状態から, 生存か否かを判定する.
bool isUnderPopulation ()
 自分自身と隣接セルの状態から, 過疎か否かを判定する.
bool isOverPopulation ()
 自分自身と隣接セルの状態から, 過密か否かを判定する.

Private Attributes

CellAttribute m_cAttribute
 自分自身のセルの属性.
long m_lNeighborAliveNum
 隣接セルの生存数.

Detailed Description

細胞(セル)1個をあらわすクラス.


Constructor & Destructor Documentation

Cell::Cell ( ) [inline]

コンストラクタ.

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

デストラクタ.


Member Function Documentation

bool Cell::decideState ( )

自分自身の状態を決定する.

Parameters:
なし.
Returns:
前状態から変更があったかを返す.
Return values:
true変更有り.
false変更無し.
Note:
隣接セルの状態から自分自身の状態を決定する.
記憶していた隣接セルの状態をクリアする.
long Cell::getNeighborAliveNum ( ) const [inline]

隣接セルの生存数を取得.

Parameters:
なし.
Returns:
隣接セルの生存数.
Note:
デバッグ用.
CellAttribute::CELL_STATE Cell::getState ( ) const [inline]

自分自身のセルの状態を取得.

Parameters:
なし.
Returns:
セルの状態.(DEAD/ALIVE).
Return values:
DEAD死滅.
ALIVE生存.
void Cell::init ( ) [inline]

初期化.

Parameters:
なし.
Returns:
なし.
bool Cell::isBorn ( ) [private]

自分自身と隣接セルの状態から, 誕生か否かを判定する.

Parameters:
なし.
Returns:
セルの状態がALIVEとなるかを返す.
Return values:
trueセルの状態がALIVEとなる.
falseセルの状態は変更無し.
Note:
死んでいるセルに隣接する生きたセルがちょうど3つあれば,次の世代が誕生する.
bool Cell::isOverPopulation ( ) [private]

自分自身と隣接セルの状態から, 過密か否かを判定する.

Parameters:
なし.
Returns:
セルの状態がDEADとなるを返す.
Return values:
trueセルの状態がDEADとなる.
falseセルの状態は変更無し.
Note:
生きているセルに隣接する生きたセルが4つ以上ならば, 過密により死滅する.
bool Cell::isSurvive ( ) [private]

自分自身と隣接セルの状態から, 生存か否かを判定する.

Parameters:
なし.
Returns:
セルの状態がALIVEとなるかを返す.
Return values:
trueセルの状態がALIVEとなる.
falseセルの状態は変更無し.
Note:
生きているセルに隣接する生きたセルが2つか3つならば, 次の世代でも生存する.
bool Cell::isUnderPopulation ( ) [private]

自分自身と隣接セルの状態から, 過疎か否かを判定する.

Parameters:
なし.
Returns:
セルの状態がDEADとなるかを返す.
Return values:
trueセルの状態がDEADとなる.
falseセルの状態は変更無し.
Note:
生きているセルに隣接する生きたセルが1つ以下ならば, 過疎により死滅する.
bool Cell::receiveStateFromNeighborCell ( CellAttribute i_pcCellAttribute) [inline, private]

隣接セルの状態を受け取る.

Parameters:
CellAttribute::CELL_STATEi_eState 隣接セルの状態(DEAD/ALIVE)
Returns:
結果.
Return values:
true成功.
false失敗.
bool Cell::sendState ( ) [inline]

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

Parameters:
なし.
Returns:
通知に成功/失敗を返す.
Return values:
true成功.
false失敗.
void Cell::setNeighbor ( Cell i_pCell) [inline]

隣接セルを設定する.

Parameters:
Cell*i_pCell 隣接セル.
Returns:
なし.
void Cell::setState ( CellAttribute::CELL_STATE  i_eState) [inline]

自分自身のセルの状態を設定.

Parameters:
CellAttribute::CELL_STATEi_eState 設定したい状態.
Returns:
なし.
bool Cell::update ( Information i_pcInformation) [inline, virtual]

Subjectから通知を受信.

Parameters:
Information*i_pcInformation セルの属性.
Returns:
成功/失敗.
Note:
CellAttributeのインスタンスが渡されることを想定している.

Implements Observer.


Member Data Documentation

自分自身のセルの属性.

Note:
状態を保持する.
long Cell::m_lNeighborAliveNum [private]

隣接セルの生存数.


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