Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randrange as rnd
- def gen2d(ar):
- max_len = max([len(str(e)) for r in ar for e in r])
- for row in ar:
- print(*list(map('{{:>{length}}}'.format(length=max_len).format, row)))
- def genTable(ar):
- max_len=0
- for i in range(len(ar)):
- for j in range(len(ar[i])):
- if len(str(ar[i][j]))>max_len:
- max_len=len(str(ar[i][j]))
- max_len+=2
- s="┏"+("━"*max_len+"┳")*len(ar[i])
- s=s[:len(s)-2]+"━┓\n"
- for i in range(len(ar)):
- for j in range(len(ar[i])):
- t="┃"+str(ar[i][j]).center(max_len)
- s+=t
- s=s[:len(s)-1]+" ┃\n┣"+("━"*max_len+"╋")*len(ar[i])
- s=s[:len(s)-2]+"━┫\n"
- t=len(s)-len("┃\n┣"+("━"*max_len+"╋")*len(ar[len(ar)-1]))
- #print(t)
- s=s[:t+1]+"┗"+("━"*max_len+"┻")*len(ar[i])
- s=s[:len(s)-2]+"━┛"
- return s
- def print2d(ar,type_=0):
- if type_==0:
- print(genTable(ar))
- else:
- print(gen2d(ar))
- m=15
- n=10
- w=10
- a=[["_" for i in range(m)] for j in range(n)]
- w1=w
- while w1!=0:
- t1=rnd(n)
- t2=rnd(m)
- while a[t1][t2]!="_":
- t1=rnd(n)
- t2=rnd(m)
- a[t1][t2]="*"
- w1-=1
- for i in range(1,n-1):
- for j in range(1,m-1):
- if a[i][j]=="_":
- clv=0
- for i1 in range(-1,2):
- for j1 in range(-1,2):
- if a[i+i1][j+j1]=="*":
- clv+=1
- a[i][j]=clv
- #Обработаем верхнюю границу
- for j in range (1,m-1):
- if a[0][j]=="_":
- clv=0
- for i1 in range(0,2):
- for j1 in range(-1,2):
- if a[0+i1][j+j1]=="*":
- clv+=1
- a[0][j]=clv
- #Обработаем нижнюю границу
- for j in range (1,m-1):
- if a[n-1][j]=="_":
- clv=0
- for i1 in range(0,2):
- for j1 in range(-1,2):
- if a[n-1-i1][j+j1]=="*":
- clv+=1
- a[n-1][j]=clv
- #Обработаем левую границу
- for i in range (1,n-1):
- if a[i][0]=="_":
- clv=0
- for i1 in range(-1,2):
- for j1 in range(0,2):
- if a[i+i1][0+j1]=="*":
- clv+=1
- a[i][0]=clv
- #Обработаем правую границу
- for i in range (1,n-1):
- if a[i][m-1]=="_":
- clv=0
- for i1 in range(-1,2):
- for j1 in range(0,2):
- if a[i+i1][m-1-j1]=="*":
- clv+=1
- a[i][m-1]=clv
- #обработка углов
- if(a[0][0]=="_"):
- clv=0
- if a[0][1]=="*": clv+=1
- if a[1][1]=="*": clv+=1
- if a[1][0]=="*": clv+=1
- a[0][0]=clv
- if(a[0][m-1]=="_"):
- clv=0
- if a[0][m-2]=="*": clv+=1
- if a[1][m-2]=="*": clv+=1
- if a[1][m-1]=="*": clv+=1
- a[0][m-1]=clv
- if(a[n-1][0]=="_"):
- clv=0
- if a[n-1][1]=="*": clv+=1
- if a[n-2][1]=="*": clv+=1
- if a[n-2][0]=="*": clv+=1
- a[n-1][0]=clv
- if(a[n-1][m-1]=="_"):
- clv=0
- if a[n-1][m-2]=="*": clv+=1
- if a[n-2][m-2]=="*": clv+=1
- if a[n-2][m-1]=="*": clv+=1
- a[n-1][m-1]=clv
- print2d(a)
Advertisement
Add Comment
Please, Sign In to add comment