Моделирование Виртуальной Вычислительной Системы.
 
Выпуск N23
home URL
автор рассылки: noonv (noonv[AT]narod[.]ru)
"Когда же мы переходим в царство живой природы, мы видим такую изощренность и сложность во взаимодействии "соучастников", что только привычка и спасительная нелюбознательность позволяет нам жить и заниматься своими делами. Иначе бы мы только созерцали и размышляли. Даже знакомство с самым элементарным актом записи, хранения и считывания генетической информации пробуждает религиозное чувство. Как могло это чудо возникнуть из каких-то случайных скоплений азотистых веществ, какой-то слизи, методом проб и перебора? Разве могло для создания этого механизма через простую эволюцию хватить времени у Вселенной?"
С. Кара-Мурза Манипуляция сознанием

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

Перечитайте эпиграф к выпуску ещё раз. Может с последним вопросом я не вполне уверен, а вот с остальной частью согласен целиком и полностью. Ей-богу это действительно интересно!
Помолимся и продолжим...

Посмотрите, что содержимое файла definitions.h, который будет включаться во все файлы проекта. Всё непонятные коэффициенты пока пропускайте, а обратите внимание на абстракции, объявляемые с помощью ключевого слова typedef.
К числу таких абстракций относятся: температура, энергия, и т.д.
Между прочим "энергия" уже сама по себе достаточно абстрактное понятие, а в нашем случае тем более :(
Обратите внимание так же на такую конструкцию комментария: //## - таким образом будут помечаться участки кода, которые в будущем требуют пересмотра и исправления.



//////////////////////////////////////////////////////////////////////
//
// definitions.h
//
// for define global variables
//
//
//                                                    XIII
//////////////////////////////////////////////////////////////////////

#ifndef _DEFINITIONS_H_
#define _DEFINITIONS_H_


//#define LINUX 1
#define GETOPT__ 1
#define OGL__ 1
//#define DEBUG__
//#define TEST__ 1

#include <assert.h>

#include "config.h"
#include "types.h"
#include "util/utils.h"

//---------- STL -------------------
#define STL__

#ifdef STL__
#include <list>
using namespace std;
#endif //STL__
//----------------------------------

// default size of the world
#define DEFAULT_X_SIZE 80
#define DEFAULT_Y_SIZE 20
#define DEFAULT_Z_SIZE 1


// Energy Quantum
#define EQ						1//6.64E-34
// Boltzmann constant
#define BK						1//1.38E-23

// default cell energy
#define DEFAULT_CELL_ENERGY		EQ*1000
// energy for motion
#define MOTION_ENERGY			EQ*10
// max cell energy
#define MAX_CELL_ENERGY			EQ*1000000
// max energy
#define MAX_ENERGY				EQ*1431655765//3342387
// skeleton energy
#define SKELETON_ENERGY			EQ*200

// default temperature
#define DEFAULT_TEMPERATURE		20
// default illuminance
#define DEFAULT_ILLUMINANCE		8

// for cell evolution
#define BIRTH			2
#define DEATH			6
#define MUTATION		8
#define MOTION			10
#define NUTRITION		12 //food

// neighbourhood
#define NEIGHBOUR_1D		3
#define NEIGHBOURHOOD		9
#define NEIGHBOURHOOD_3D	27

// coefficients for generation of configurations 
// (use in generate_configuration() function)
// FOOD_COEF must be larger than CELL_COEF !
#define CELL_COEF			2
#define NUTRIENT_COEF		10
// coefficients for cell
#define COVER_COEF			0.2
#define MUSCLE_COEF			0.5
#define SENSOR_COEF			1
#define ABSORB_COEF			0.1
#define REPROD_COEF			4
#define MOBILITY_COEF		5		// ! integer !

// coefficients for inorganic
#define FRICTION_COEF		0.1

#ifdef _WIN32
typedef unsigned long int uint; //## redefinition in Linux :(
#endif //#ifdef _WIN32
typedef unsigned char uchar;

typedef FILE* CFG_FILE;

// temperature Celsius //##(Kelvin ??)
typedef float Temperature;

// energy
typedef float Energy;

// chromosome
typedef uint Chromosome;

// field size
typedef uint FSize;

// cell size
typedef uchar CSize;

// cell's propertys
typedef uchar CCover;
typedef uchar CMuscle;
typedef uchar CSensor;
typedef uchar CAbsorb;

// cell's connecting points
typedef uchar ConnPoint;

typedef uint CMessage;

// object's identifier
typedef uchar ID;


#endif //#ifndef _DEFINITIONS_H_




Опять же напоминаю, что проект развивается и ничего вечного нет :) ,поэтому впоследствии содержимое может меняться и иногда координально =)

Если у вас есть замечания или предложения по проекту смело скидывайте на ящик проекта: cellix[AT]mail[.]ru

Удачи!

[noonv@volodia noonv]$ logout

XIII

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