今天写了个代码,具体来源请参照吴乐旻的《富种起源》p247-248
输出有好几个问题
希望大家可以帮我找找错
谢谢!
import random,math
from random import *
from math import *
a=input('times=')
u=input('%=')
n=input('choose=')
if a==''and u==''and n=='':
a=15000
u=100
n=400
else:
a=int(a)
u=int(u)
n=int(n)
world=[]
for i in range(0,20):
world.append([["",-1,-1,-1]]*20)
#[length][width]["GREEK/SPARDA",F(=M(greek=0.8,else=1)*E(greek=%102,else=%100)),M,E]
for i in range(0,20):
for j in range(0,20):
a=int(randint(0,1))
if a==1:
world[i][j][0]="sparda"
world[i][j][2]=1
world[i][j][3]=1
world[i][j][1]=world[i][j][2]*world[i][j][3]
else:
world[i][j][0]="greek"
world[i][j][2]=0.8
world[i][j][3]=1.02
world[i][j][1]=world[i][j][2]*world[i][j][3]
for i in range(0,a):
for j in range(0,u*n):
l=randint(0,18)
w=randint(0,18)
map={
0:world[l+1][w],
1:world[l][w+1],
2:world[l-1][w],
3:world[l][w-1],
}
b=randint(0,3)
f1=map.get(b,0)
f=world[l][w]
p=round((f1[1]/(f[1]+f1[1]))*100)
sp_list=[f1[0]*p]+[f[0]*int(100-p)]
print(f'p,{p}')
f1[0]=choice(sp_list)
for t in range(0,18):
for f in range(0,20):
world[t][f][1]==world[t][f][2]*world[t][f][3]
print(world)