Моделирование Виртуальной Вычислительной Системы.
 
Выпуск N 34
home URL
автор рассылки: noonv (noonv[AT]narod[.]ru)
"Как ни крути, у каждого человека есть в жизни своя вершина. И после того, как он на нее взобрался, остается только спускаться вниз. Ужасно, но с этим ничего не поделаешь. Никто ведь не знает заранее, где будет его вершина."
Харуки Мураками Дэнс, дэнс, дэнс

" Эти животные настолько медлительны, что очень часто застают человека врасплох. "

"Армия ума не прибавляет, но дурь вышибает."
Армейский фольклор

Приветствую вас, уважаемые читатели!

Пришло время немного объясниться :))) Дело в том, что этот затянувшийся перерыв в выпуске рассылки произошёл по банальной причине - я был в армии, если точнее - проходил службу по призыву в ВС РФ. Ну а если быть совсем точным, то я служил на дважды краснознамённом Балтийском Флоте ;-)
Я служил в береговой части, поэтому мы относились к морской пехоте %)
Что сказать - служить весело и интересно 8) Впрочем это конечно зависит от части и командиров. Конечно за время службы было всякое... но это была полезная школа жизни.


"Я не забуду эти годы
И цвет казарменной стены.
Кто в жизни не терял свободы,
Тот не поймёт её цены."
Армейский фольклор

Исходники файлов nutrient.h и nutrient.cpp.



//////////////////////////////////////////////////////////////////////
//
// nutrient.h
//
// nutrient class 
//
//
//                                                    XIII
//////////////////////////////////////////////////////////////////////

#ifndef _NUTRIENT_H_
#define _NUTRIENT_H_

#include "../definitions.h"
#include "organic.h"

class NUTRIENT : virtual public ORGANIC
{
public:
	NUTRIENT();
	NUTRIENT(Energy);
	virtual ~NUTRIENT();
	virtual bool read(CFG_FILE);
	virtual bool write(CFG_FILE);
	void init();
	virtual uchar Evolution();

	void reset();
	Energy get_energy() const;
	virtual Energy* get_CellEnergy();

	Energy CellEnergy; // energy of cell
};
#endif // #ifndef _NUTRIENT_H_



//////////////////////////////////////////////////////////////////////
//
// nutrient.cpp
//
// nutrient class 
//
//
//                                                    XIII
//////////////////////////////////////////////////////////////////////

#ifndef _NUTRIENT_CPP_
#define _NUTRIENT_CPP_

#include "nutrient.h"

NUTRIENT::NUTRIENT()
{
	init();
	CellEnergy=DEFAULT_CELL_ENERGY;
}

NUTRIENT::NUTRIENT(Energy _Energy)
{
	init();
	CellEnergy=_Energy;
}

NUTRIENT::~NUTRIENT()
{
}

bool NUTRIENT::read(CFG_FILE file)
{
	int bytes;
	bytes=fread(&CellEnergy,sizeof(Energy),1,file);
	if(bytes!=sizeof(Energy))
		return false;
	return true;
}

bool NUTRIENT::write(CFG_FILE file)
{
	int bytes;
	bytes=fwrite(&CellEnergy,sizeof(Energy),1,file);
	if(bytes!=sizeof(Energy))
		return false;
	return true;
}

void NUTRIENT::init()
{
	id=NUTRIENT_ID;
}

uchar NUTRIENT::Evolution()
{
	return 0;
}

void NUTRIENT::reset()
{
	CellEnergy=0;
}

Energy NUTRIENT::get_energy() const
{
	return CellEnergy;
}

Energy* NUTRIENT::get_CellEnergy()
{
	return &CellEnergy;
}

#endif //#ifndef _NUTRIENT_CPP_




Итак, после конструкторов идут две виртуальные функции для чтения и записи в конфигурационный файл определение CFG_FILE смотрим в 23-ем выпуске, где приводится definitions.h и там находим следующую строчку:
typedef FILE* CFG_FILE;
там же находим определение типа Energy :
typedef float Energy;
Остальные функции - инициализации, эволюции(пока пустая), сброса, возвращения значения CellEnergy достаточно просты ;)

Таким образом продолжаем знакомиться с построением нашего мира $)

Честь имею!

[noonv@volodia noonv]$ logout

XIII

Рейтинг@Mail.ru
Хостинг от uCoz