def description_strength_tester(codelet): description = codelet.arguments[0] description.descriptor.buffer = 100.0 description.updateStrength() strength = description.totalStrength probability = formulas.temperatureAdjustedProbability(strength / 100.0) assert formulas.coinFlip(probability) coderack.newCodelet('description-builder', codelet, strength)
def __slippability(conceptMappings): for mapping in conceptMappings: slippiness = mapping.slippability() / 100.0 probabilityOfSlippage = formulas.temperatureAdjustedProbability( slippiness) if formulas.coinFlip(probabilityOfSlippage): return True return False
def bond_strength_tester(codelet): bond = codelet.arguments[0] __showWhichStringObjectIsFrom(bond) bond.updateStrength() strength = bond.totalStrength probability = formulas.temperatureAdjustedProbability(strength / 100.0) logging.info('bond strength = %d for %s', strength, bond) assert formulas.coinFlip(probability) bond.facet.buffer = 100.0 bond.sourceDescriptor.buffer = 100.0 bond.destinationDescriptor.buffer = 100.0 logging.info("succeeded: posting bond-builder") coderack.newCodelet('bond-builder', codelet, strength)
def breaker(): probabilityOfFizzle = (100.0 - formulas.Temperature) / 100.0 assert not formulas.coinFlip(probabilityOfFizzle) # choose a structure at random structures = [s for s in workspace.structures if isinstance(s, (Group, Bond, Correspondence))] assert structures structure = random.choice(structures) __showWhichStringObjectIsFrom(structure) breakObjects = [structure] if isinstance(structure, Bond): if structure.source.group: if structure.source.group == structure.destination.group: breakObjects += [structure.source.group] # try to break all objects for structure in breakObjects: breakProbability = formulas.temperatureAdjustedProbability( structure.totalStrength / 100.0) if formulas.coinFlip(breakProbability): return for structure in breakObjects: structure.break_the_structure()