Package teamwork :: Package examples :: Package Games :: Module run
[hide private]
[frames] | no frames]

Source Code for Module teamwork.examples.Games.run

 1  import copy 
 2   
3 -def makeValues(total,num):
4 interval = total/num 5 return map(lambda x:x*interval,range(num+1))
6
7 -def generateCombo(total,keys,values,comboList=[{}]):
8 if len(keys) > 1: 9 for combo in comboList[:]: 10 comboList.remove(combo) 11 for value in values: 12 newCombo = copy.copy(combo) 13 newCombo[keys[0]] = value 14 if sum(newCombo.values()) <= total: 15 comboList.append(newCombo) 16 return generateCombo(total,keys[1:],values,comboList) 17 else: 18 for combo in comboList[:]: 19 value = total - sum(combo.values()) 20 if not value in values: 21 raise ValueError 22 combo[keys[0]] = value 23 return comboList
24 25 if __name__ == '__main__': 26 import os 27 28 agentCount = 100 29 keys = ['OO','OP','PO','PP'] 30 root = os.environ['HOME']+'/python/teamwork/examples/games/PublicGood.py' 31 for combo in generateCombo(agentCount,keys, 32 makeValues(agentCount,len(keys))): 33 print combo 34 cmd = 'python %s -l 8' % root 35 for key,value in combo.items(): 36 cmd += ' --%s %d' % (key,value) 37 output = os.popen(cmd,'r') 38 data = output.read() 39 output.close() 40