📄 efloy.java
字号:
//
// This code was written by Ariel Dolan
// Site http://www.aridolan.com
// Email aridolan@netvision.net.il
//
// You are welcome to do whatever you wish with this code, as long as you
// add appropriate credits.
//
import java.awt.*;
public class Efloy {
EfloyParam params[];//参数的编码数组
EfloyParam fixpars[];//固定参数的编码数组
EfloyParam envpars[];//环境参数的编码数组
String chrom;//染色体字符串
String fixed;//固定值编码形成的字符串
String environ;//环境变量编码形成的字符串
int width;//世界的宽度
int height;//世界的高度
int margin;//世界的边界
int v0;//初速度
int sleep;//CPU休息的时间
int id;//当前的ID
int father;//父亲的ID
int mother;//母亲的ID
int type;//类型0为一般性,1为异己
Color color;
int NumberOfNeighbors;//邻居数
float MutationFactor;//变异参数
float CrossoverFactor;//交叉参数
float MaxSpeed;//最大速度
float BounceSpeed;//反弹速度
float ApproachAcceleration;//互相靠近时候的加速度
float RetreatAcceleration;//互相远离时候的加速度
float CenterAcceleration;//对中心的加速度
float DistBrotherFactor;//朝向同类时候的加速率
float DistStrangerFactor;//朝向异类时候的加速率
float DistLocalFactor;//异类的加速率
int CollisionDistance;//碰撞的最小距离
float CollisionBrotherFactor;//碰到同类时候的加速率
float CollisionStrangerFactor;//碰到异类时候的加速率
float CollisionLocalFactor;//碰撞异类的时候的加速率
float MaxEnergyDose;//最大的能量增加值
float MaxSafetyDose;//最大的安全度增加值
float MaxCooperationDose;//最大的合作增加值
int fitness;//适应度
int energy;//能量值
int safety;//安全度
int cooperation;//合作度
float EnergyFactor;//能量的权重(计算适应度时候应用)
float SafetyFactor;//安全度的权重(计算适应度时候应用)
float CooperationFactor;//合作度的权重
float SurviversFactor;//进行遗传操作的时候的幸存比率
int PopulationSize;//一代的大小数值
float FreeWillFactor;//重新获得随机邻居的概率
int LifeSpan;//异己的最大能量值
//float SafetyNormalizer;
Efloy neighbors[];//邻居数组
float x;//当前的坐标
float y;
float xtail;//尾巴的坐标
float ytail;
float vx;//速度向量
float vy;
float xc;//中心点坐标
float yc;
public Efloy(EfloyParam pr[], String cr, EfloyParam fp[], String fx,
EfloyParam ep[], String ev) {
//构建一个Efloy,其中传入的参数pr数组为一个数据结构记录了每
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -