[Avida-SVN] r3091 - in branches/hjg-dev/source: cpu main

hjg at myxo.css.msu.edu hjg at myxo.css.msu.edu
Mon Jan 5 09:10:47 PST 2009


Author: hjg
Date: 2009-01-05 12:10:47 -0500 (Mon, 05 Jan 2009)
New Revision: 3091

Modified:
   branches/hjg-dev/source/cpu/cHardwareCPU.cc
   branches/hjg-dev/source/main/cOrganism.cc
   branches/hjg-dev/source/main/cTaskLib.cc
   branches/hjg-dev/source/main/cTaskLib.h
Log:


Modified: branches/hjg-dev/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/hjg-dev/source/cpu/cHardwareCPU.cc	2009-01-05 00:15:12 UTC (rev 3090)
+++ branches/hjg-dev/source/cpu/cHardwareCPU.cc	2009-01-05 17:10:47 UTC (rev 3091)
@@ -7456,7 +7456,7 @@
 		organism->AddSelfRawMaterials(1); 
 		
 		// Clear buffer if the organism has received credit for the string
-		//if (val) organism->SetOutputNegative1(); 
+		if (val) organism->SetOutputNegative1(); 
 	}
 	
 /*	

Modified: branches/hjg-dev/source/main/cOrganism.cc
===================================================================
--- branches/hjg-dev/source/main/cOrganism.cc	2009-01-05 00:15:12 UTC (rev 3090)
+++ branches/hjg-dev/source/main/cOrganism.cc	2009-01-05 17:10:47 UTC (rev 3091)
@@ -889,11 +889,14 @@
  of bits is > than the old tag, update.*/
 void cOrganism::UpdateTag(int new_tag, int bits)
 {
+	unsigned int rand_int = m_world->GetRandom().GetUInt(0, 2);
 	if ((m_tag.first == -1) || 
 			(m_tag.first == new_tag) ||
 			(m_tag.second < bits)) {
 		m_tag = make_pair(new_tag, bits);
-	} 
+	} else if ((m_tag.second == bits) && rand_int){ 		
+		m_tag = make_pair(new_tag, bits);
+	}
 }
 
 

Modified: branches/hjg-dev/source/main/cTaskLib.cc
===================================================================
--- branches/hjg-dev/source/main/cTaskLib.cc	2009-01-05 00:15:12 UTC (rev 3090)
+++ branches/hjg-dev/source/main/cTaskLib.cc	2009-01-05 17:10:47 UTC (rev 3091)
@@ -433,12 +433,11 @@
 		NewTask(name, "Produce and store strings", &cTaskLib::Task_StoreStrings);	
 	else if(name == "perfect_strings") 
 		NewTask(name, "Produce and store perfect strings", &cTaskLib::Task_CreatePerfectStrings);		
-	if (name == "prodstr") 
-    Load_ProduceStr(name, info, envreqs, errors);
 
 
 
 
+
   // event tasks
   if(name == "move_to_event")
     NewTask(name, "Moved into cell containing event", &cTaskLib::Task_MoveToEvent);
@@ -3241,14 +3240,14 @@
 	// Bonus for creating perfect strings!
 	bonus = min; 
 	
-/*	// Add in some value for just creating stuff
+	// Add in some value for just creating stuff
 	for (unsigned int i = 0; i<m_strings.size(); i++) {
 		temp = ctx.GetOrganism()->GetNumberStringsOnHand(i); 
 		
 		if (temp > min) { 
 			bonus += (temp - min); 
 		}
-	} */
+	} 
 	
 	// Update stats
 	m_world->GetStats().IncPerfectMatch(min);
@@ -3256,51 +3255,3 @@
 	
 	return bonus; 
 }
-
-void cTaskLib::Load_ProduceStr(const cString& name, const cString& argstr, cEnvReqs& envreqs, tList<cString>* errors)
-{
-  cArgSchema schema;
-	schema.AddEntry("tag",0,-1);
-  cArgContainer* args = cArgContainer::Load(argstr, schema, errors);	
-  if (args) NewTask(name, "ProduceString", &cTaskLib::Task_ProduceStr, 0, args);
-}
-
-/* Note that this string requires a CAP.*/
-double cTaskLib::Task_ProduceStr(cTaskContext& ctx) const {
-	double bonus = 0.0;
-	int temp = 0;
-	int tag = ctx.GetTaskEntry()->GetArguments().GetInt(0);
-
-/*	for (unsigned int i = 0; i<m_strings.size(); i++) {
-		temp = ctx.GetOrganism()->GetNumberStringsOnHand(i); 
-		
-		// Figure out what the minimum amount of a string is.
-		if ((min == -1) || (temp < min)){
-			min = temp;
-		}
-	}
-	
-	// Double bonus for creating perfect strings!
-	//bonus = min * 4; 
-	
-	// Add in some value for just creating stuff
-	for (unsigned int i = 0; i<m_strings.size(); i++) {
-		temp = ctx.GetOrganism()->GetNumberStringsOnHand(i); 
-		
-		if (temp > min) { 
-			bonus += (temp - min); 
-		}
-	}
-	
-	// Update stats
-	/*m_world->GetStats().IncPerfectMatch(min);
-	if (min > 0) m_world->GetStats().IncPerfectMatchOrg(); */
-	
-	temp = ctx.GetOrganism()->GetNumberStringsProduced(tag);
-/*	if (temp > m_world->GetConfig().STRING_AMOUNT_CAP.Get()) { 
-		temp = m_world->GetConfig().STRING_AMOUNT_CAP.Get(); 
-	}*/
-	bonus = (double)temp / m_world->GetConfig().STRING_AMOUNT_CAP.Get(); 
-	
-	return bonus; 
-}
\ No newline at end of file

Modified: branches/hjg-dev/source/main/cTaskLib.h
===================================================================
--- branches/hjg-dev/source/main/cTaskLib.h	2009-01-05 00:15:12 UTC (rev 3090)
+++ branches/hjg-dev/source/main/cTaskLib.h	2009-01-05 17:10:47 UTC (rev 3091)
@@ -315,8 +315,7 @@
   double Task_SaveRawMaterials(cTaskContext& ctx) const;
 	double Task_StoreStrings(cTaskContext& ctx) const;
 	double Task_CreatePerfectStrings(cTaskContext& ctx) const; 
-  void Load_ProduceStr(const cString& name, const cString& argstr, cEnvReqs& envreqs, tList<cString>* errors);
-  double Task_ProduceStr(cTaskContext& ctx) const;
+
 		
 
 };




More information about the Avida-cvs mailing list