"Когда же мы переходим в царство живой природы, мы видим такую изощренность и
сложность во взаимодействии "соучастников", что только привычка и спасительная
нелюбознательность позволяет нам жить и заниматься своими делами. Иначе бы мы только
созерцали и размышляли. Даже знакомство с самым элементарным актом записи, хранения и
считывания генетической информации пробуждает религиозное чувство. Как могло это
чудо возникнуть из каких-то случайных скоплений азотистых веществ, какой-то слизи,
методом проб и перебора? Разве могло для создания этого механизма через простую
эволюцию хватить времени у Вселенной?"
С. Кара-Мурза Манипуляция сознанием
|
Приветствую вас, уважаемые читатели!
Перечитайте эпиграф к выпуску ещё раз. Может с последним вопросом я не вполне
уверен, а вот с остальной частью согласен целиком и полностью. Ей-богу это
действительно интересно!
Помолимся и продолжим...
Посмотрите, что содержимое файла 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
Удачи!
|