亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cspecies.cpp

?? 《游戲編程中的人工智能技術》書中源代碼和可執行文件
?? CPP
字號:
#include "CSpecies.h"


//------------------------------------------------------------------------
//
//  this ctor creates an instance of a new species. A local copy of 
//  the initializing genome is kept in m_Leader and the first element
//  of m_vecMembers is a pointer to that genome.
//------------------------------------------------------------------------
CSpecies::CSpecies(CGenome  &FirstOrg,
                   int      SpeciesID):m_iSpeciesID(SpeciesID),
                                       m_dBestFitness(FirstOrg.Fitness()),
                                       m_iGensNoImprovement(0),
                                       m_iAge(0),
                                       m_Leader(FirstOrg),
                                       m_dSpawnsRqd(0)
                                     
{
  m_vecMembers.push_back(&FirstOrg);
  
  m_Leader = FirstOrg;
}

//------------------------ AddMember -------------------------------------
//
//  this function adds a new member to this species and updates the member
//  variables accordingly
//------------------------------------------------------------------------
void CSpecies::AddMember(CGenome &NewMember)
{
 
   //is the new member's fitness better than the best fitness?
  if (NewMember.Fitness() > m_dBestFitness)
  {
    m_dBestFitness = NewMember.Fitness();

    m_iGensNoImprovement = 0;

    m_Leader = NewMember;
  }


  m_vecMembers.push_back(&NewMember);

}

//-------------------------- Purge ---------------------------------------
//
//  this functions clears out all the members from the last generation,
//  updates the age and gens no improvement.
//------------------------------------------------------------------------
void CSpecies::Purge()
{
  m_vecMembers.clear();

  //update age etc
  ++m_iAge;

  ++m_iGensNoImprovement;

  m_dSpawnsRqd = 0;
}

//--------------------------- AdjustFitness ------------------------------
//
//  This function adjusts the fitness of each individual by first
//  examining the species age and penalising if old, boosting if young.
//  Then we perform fitness sharing by dividing the fitness by the number
//  of individuals in the species. This ensures a species does not grow 
//  too large
//------------------------------------------------------------------------
void CSpecies::AdjustFitnesses()
{
  double total = 0;

  for (int gen=0; gen<m_vecMembers.size(); ++gen)
  {
    double fitness = m_vecMembers[gen]->Fitness();

    //boost the fitness scores if the species is young
    if (m_iAge < CParams::iYoungBonusAgeThreshhold)
    {
      fitness *= CParams::dYoungFitnessBonus;
    }

    //punish older species
    if (m_iAge > CParams::iOldAgeThreshold)
    {
      fitness *= CParams::dOldAgePenalty;
    }

    total += fitness;

    //apply fitness sharing to adjusted fitnesses
    double AdjustedFitness = fitness/m_vecMembers.size();

    m_vecMembers[gen]->SetAdjFitness(AdjustedFitness);

  }
}

//------------------------ CalculateSpawnAmount --------------------------
//
//  Simply adds up the expected spawn amount for each individual in the 
//  species to calculate the amount of offspring this species should
//  spawn
//------------------------------------------------------------------------
void CSpecies::CalculateSpawnAmount()
{
  for (int gen=0; gen<m_vecMembers.size(); ++gen)
  {
    m_dSpawnsRqd += m_vecMembers[gen]->AmountToSpawn();

  }
}


//------------------------ Spawn -----------------------------------------
//
//  Returns a random genome selected from the best individuals
//------------------------------------------------------------------------
CGenome CSpecies::Spawn()
{
  CGenome baby;
  
  if (m_vecMembers.size() == 1)
  {
    baby = *m_vecMembers[0];    
  }
  
  else
  {
    int MaxIndexSize = (int) (CParams::dSurvivalRate * m_vecMembers.size())+1;

    int TheOne = RandInt(0, MaxIndexSize);

    baby = *m_vecMembers[TheOne];
  }

  return baby;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人自拍| av不卡在线播放| 欧美一级黄色片| 日韩精品一区第一页| 欧美电影在哪看比较好| 日本伊人午夜精品| 精品sm捆绑视频| 成人在线视频一区| 1000部国产精品成人观看| 92国产精品观看| 亚洲一卡二卡三卡四卡无卡久久| 欧美视频在线观看一区| 日韩精品91亚洲二区在线观看| 日韩一卡二卡三卡四卡| 国产精品夜夜爽| 国产精品亲子伦对白| 在线观看国产91| 三级欧美在线一区| 精品成a人在线观看| 波波电影院一区二区三区| 亚洲福利电影网| 欧美大肚乱孕交hd孕妇| a在线播放不卡| 午夜精品久久久久久久久| 久久一日本道色综合| a亚洲天堂av| 麻豆精品一区二区三区| 亚洲国产成人在线| 在线不卡的av| 成人免费不卡视频| 视频一区二区三区入口| 中文字幕第一区综合| 精品视频色一区| 国产成人综合亚洲91猫咪| 亚洲人成小说网站色在线 | 狠狠色狠狠色综合日日91app| 欧美国产一区在线| 精品视频一区三区九区| 国产成人精品免费一区二区| 亚洲福利一二三区| 国产精品久久久久7777按摩| 91麻豆精品国产无毒不卡在线观看| 国产成人丝袜美腿| 日日夜夜精品视频天天综合网| 中文成人av在线| 日韩限制级电影在线观看| 91在线免费看| 韩国三级电影一区二区| 亚洲成人av一区| 国产精品看片你懂得 | 久久久久久久久久美女| 日本丰满少妇一区二区三区| 国产高清不卡一区二区| 日日摸夜夜添夜夜添精品视频| 国产精品久久777777| 日韩精品一区二区三区在线| 91久久精品一区二区三| 国产91精品精华液一区二区三区| 日韩高清一区二区| 午夜精品久久久久久久| 亚洲自拍另类综合| 亚洲精品乱码久久久久久久久| 久久精品人人做人人爽97| 日韩免费观看高清完整版| 欧美无乱码久久久免费午夜一区| 91在线视频免费91| 成人毛片老司机大片| 国模一区二区三区白浆 | 国产精品综合在线视频| 蜜臀精品一区二区三区在线观看| 亚洲电影中文字幕在线观看| 樱桃视频在线观看一区| 中文字幕日韩av资源站| 中文字幕一区二区在线播放 | 成人免费视频播放| 国产精品一区二区三区四区 | 亚洲天堂免费看| 国产精品久久午夜| 国产精品久久久爽爽爽麻豆色哟哟| ww亚洲ww在线观看国产| 久久男人中文字幕资源站| 国产亚洲一区二区在线观看| 久久影院午夜论| 国产欧美日韩不卡| 中文字幕 久热精品 视频在线 | 亚洲色图制服诱惑| 亚洲日穴在线视频| 一区二区免费视频| 亚洲18色成人| 免费不卡在线观看| 久久99久久99| 精品一二三四区| 亚洲成av人片一区二区| 亚洲乱码国产乱码精品精的特点 | 国产麻豆午夜三级精品| 美女脱光内衣内裤视频久久网站| 亚洲成人精品一区| 亚洲一区在线免费观看| 亚洲精品久久久蜜桃| 亚洲特级片在线| 亚洲精品国产精品乱码不99| 亚洲视频香蕉人妖| 亚洲一区二区三区四区在线| 亚洲一区二区三区四区中文字幕| 亚洲综合在线免费观看| 一卡二卡欧美日韩| 亚洲成av人影院在线观看网| 久久91精品久久久久久秒播| 黄色小说综合网站| 成人免费av网站| 色94色欧美sute亚洲13| 91老师国产黑色丝袜在线| 国产乱人伦精品一区二区在线观看| 成人午夜av电影| 色一情一伦一子一伦一区| 91国内精品野花午夜精品| 欧美精品精品一区| 亚洲精品一区二区三区精华液| 欧美成人官网二区| 中文字幕一区二区三区精华液| 亚洲女爱视频在线| 日韩在线一区二区三区| 国产美女在线观看一区| 9l国产精品久久久久麻豆| 色网站国产精品| 精品乱人伦小说| 日韩伦理av电影| 亚洲第一久久影院| 国产一区二区成人久久免费影院 | 日韩福利电影在线观看| 美女视频一区二区三区| 国产精品一区二区视频| 欧美电影一区二区三区| 国产欧美一区二区精品久导航| 亚洲欧美日韩中文字幕一区二区三区| 亚洲午夜一区二区三区| 免费三级欧美电影| 粉嫩一区二区三区性色av| 欧美猛男男办公室激情| 国产日韩成人精品| 亚洲成人福利片| 国产99久久精品| 欧美美女一区二区在线观看| 国产视频一区二区在线观看| 日韩中文欧美在线| 99re在线精品| 亚洲精品一区二区三区蜜桃下载 | 久久先锋影音av| 中文字幕一区av| 国产精品99久久久久久有的能看| 欧美伊人久久大香线蕉综合69| 日韩女优电影在线观看| 一区二区三区国产豹纹内裤在线| 国产专区欧美精品| 一本久久a久久免费精品不卡| 国产性色一区二区| 日韩精品国产精品| 一本色道久久综合亚洲精品按摩| 精品国产3级a| 午夜精品福利一区二区三区蜜桃| 91蜜桃视频在线| 国产精品美日韩| 九九热在线视频观看这里只有精品| 在线观看免费成人| 亚洲男人天堂av网| eeuss鲁片一区二区三区| 精品sm捆绑视频| 青青草97国产精品免费观看无弹窗版 | 亚洲高清免费观看 | 欧美亚洲高清一区| 欧美国产一区在线| 成人精品视频一区二区三区尤物| 精品嫩草影院久久| 男女男精品视频网| 欧美日韩国产一二三| 欧美国产一区视频在线观看| 成人福利视频在线| 国产精品美女久久久久久| 国产一区二区视频在线| 日韩视频一区二区三区| 婷婷国产v国产偷v亚洲高清| 欧美无砖砖区免费| 一区二区三区中文免费| 色偷偷成人一区二区三区91| 国产精品激情偷乱一区二区∴| 国产成人在线视频免费播放| 欧美成人vps| 精品在线你懂的| 日韩三级免费观看| 捆绑调教美女网站视频一区| 91麻豆精品国产无毒不卡在线观看 | 五月天一区二区三区| 欧美日韩一区二区在线视频| 一区二区免费在线播放| 欧美色欧美亚洲另类二区| 亚洲成a天堂v人片| 99精品视频一区二区| 亚洲精品午夜久久久| 欧美日韩一卡二卡三卡| 亚洲国产精品天堂|