更新:添加了运行后保存这一特点。
注:需将其提前放在一个文件夹里,还需新建一个文本文档,叫做a.txt。
IO:
def printtxt(name):
f = open(name,"r",encoding="utf-8")
print(f.read())
f.close()
def writestr(str,name):
with open(name,"w",encoding='utf-8') as f:
f.write(str)
def writestr2(str,name):
with open(name,"a",encoding='utf-8') as f:
f.write(str)
def writelist(list,name):
for j in range(len(list)-1):
writestr2(str(list[j])+" ",name)
writestr2(str(list[len(list)-1])+".",name)
def write2dlist(list,name):
for i in range(len(list)-1):
writelist(list[i],name)
writestr2("\n",name)
writelist("-",name)
writestr2("\n",name)
main:
from listturtle import *
import turtle
from 疫情 import *
from IO import *
list1=[]
list1=createlist(10)
list1=createpeople(list1,10)
list1=listrandom(list1)
writestr("","a.txt")
for i in range(5):
list1=refresh2(list1,100,14,2)
list1=refresh(list1)
printlist(list1)
write2dlist(list1,"a.txt")
draw2dlist(list1,20,-200,200)
turtle.reset()
draw2dlist(list1,20,-200,200)
writestr2("/","a.txt")
listturtle:
import turtle
import time
def point(a):
turtle.speed(0)
turtle.pensize(3)
turtle.pencolor(a)
turtle.hideturtle()
turtle.circle(1)
def drawpoint(x,y,a):
turtle.penup()
turtle.goto(x,y)
turtle.pendown()
point(a)
def drawlist(list,bc,y,x):
turtle.pendown()
for i in range(len(list)):
if list[i]==1:
drawpoint(x,y,"blue")
elif list[i]==2:
drawpoint(x,y,"red")
elif list[i]>2:
drawpoint(x,y,"orange")
x+=bc
def draw2dlist(list,bc,x,y):
for i in range(len(list)):
drawlist(list[i],bc,y,x)
y-=bc
turtle.penup()
turtle.goto(x,y)
time.sleep(1)
疫情:
import random
def createlist(c):
a=[]
b=[]
for i in range(c):
b=[]
for j in range(c):
b.append(0)
a.append(b)
return a
def printlist(a):
for i in range(len(a)):
print(a[i])
print()
def createpeople(list,people):
for i in range(len(list)):
for j in range(people):
list[i][j]=1
list[0][0]=2
list[0][1]=0
return list
def listrandom(list):
for i in range(len(list)):
for i in range(len(list[i])):
random.shuffle(list[i])
random.shuffle(list)
return list
def goto(list,x,y,a):
if list[y][x]!=0:
if a==1:
if y-1>=0 and list[y-1][x]==0:
list[y-1][x]=list[y][x]
list[y][x]=0
if a==2:
if y+1<len(list) and list[y+1][x]==0:
list[y+1][x]=list[y][x]
list[y][x]=0
if a==3:
if x-1>=0 and list[y][x-1]==0:
list[y][x-1]=list[y][x]
list[y][x]=0
if a==4:
if x+1<len(list[y]) and list[y][x+1]==0:
list[y][x+1]=list[y][x]
list[y][x]=0
return list
def refresh(list):
for i in range(len(list)):
for j in range(len(list[i])):
if list[i][j]!=0 and list[i][j]<=2:
list=goto(list,j,i,random.randint(1,4))
if list[i][j]>2:
list[i][j]=list[i][j]-1
list=goto(list,j,i,random.randint(1,4))
return list
def disease(list,a,x,y,q):
if list[y][x]==1:
if y+1<len(list) and list[y+1][x]>=2:
b=random.randint(1,100)
if b<=a:
list[y][x]=q
if y-1>-1 and list[y-1][x]>=2:
b=random.randint(1,100)
if b<=a:
list[y][x]=q
if y+1<len(list) and x+1<len(list[0]) and list[y+1][x+1]>=2:
b=random.randint(1,100)
if b<=a:
list[y][x]=q
if y+1<len(list) and x-1>-1 and list[y+1][x-1]>=2:
b=random.randint(1,100)
if b<=a:
list[y][x]=q
if y>-1 and x+1<len(list[0]) and list[y-1][x+1]>=2:
b=random.randint(1,100)
if b<=a:
list[y][x]=q
if y-1>-1 and x-1>-1 and list[y-1][x-1]>=2:
b=random.randint(1,100)
if b<=a:
list[y][x]=q
return list
def refresh2(list,s,q,z):
for i in range(len(list)):
for j in range(len(list[i])):
b=random.randint(1,100)
if list[i][j]==1:
list=disease(list,s,i,j,q)
if list[i][j]==2:
if b<=z:
list[i][j]=0
return list
想要提供帮助请到github
想要提出意见请到力扣
想要查看更多文章请到文章集合
下次更新:
- 文件模拟出此程序效果
- 感染者可能被治愈
- 显示出有几个潜伏期患者,几个发病患者