코드를 def 전까지 실행하면 지뢰공간은 잘 나오는데 지뢰숫자를 세어서 나타내는 함수 Mine(board)를 코딩하고 실행하면 오류가 나고 count도 계속 0으로만 나옵니다. 아직 초보라 각각의 상황별로 다 코딩해서 나타내긴 했는데 어디가 잘못된건지 잘 모르겠어서 질문드립니다. 혹시 수정하실때 다른 명령어 말고 제가 사용한 코드를 기반으로 그 수준 내에서 해주시면 감사하겠습니다!!
import random
board=[[False for x in range(10)] for y in range(10)]
for r in range(10):
for c in range(10):
if(random.random()<0.3):
board[r][c]=True
for r in range(10):
for c in range(10):
if board[r][c]:
print("# ", end="")
else:
print(". ", end="")
print()
def Mine(board):
count=0
if r in range(1,9):
for c in range(1,9):
count=0
if board[r][c] == "#":
print("# ")
if board[r-1][c] == "#":
count+=1
if board[r+1][c] == "#":
count+=1
if board[r][c-1] == "#":
count+=1
if board[r][c+1] == "#":
count+=1
if board[r-1][c-1] == "#":
count+=1
if board[r-1][c+1] == "#":
count+=1
if board[r+1][c-1] == "#":
count+=1
if board[r+1][c+1] == "#":
count+=1
print(count, end=" ")
elif r=0 and c=0:
if board[r][c] == "#":
print("# ")
if board[r][c+1] == "#":
count+=1
if board[r+1][c] == "#":
count+=1
if board[r+1][c+1] == "#":
count+=1
print(count, end="")
elif r=0 and c=10:
if board[r][c] == "#":
print("# ")
if board[r][c-1] == "#":
count+=1
if board[r+1][c] == "#":
count+=1
if board[r+1][c-1] == "#":
count+=1
print(count, end="")
elif r=10 and c=0:
if board[r][c] == "#":
print("# ")
if board[r][c+1] == "#":
count+=1
if board[r-1][c] == "#":
count+=1
if board[r-1][c+1] == "#":
count+=1
print(count, end="")
elif r=10 and c=10:
if board[r][c] == "#":
print("# ")
if board[r][c-1] == "#":
count+=1
if board[r-1][c] == "#":
count+=1
if board[r-1][c-1] == "#":
count+=1
print(count, end="")
elif r=0:
for c in range(1,9):
if board[r][c] == "#":
print("# ")
if board[r][c-1] == "#":
count+=1
if board[r][c+1] == "#":
count+=1
if board[r+1][c+1] == "#":
count+=1
if board[r+1][c] == "#":
count+=1
if board[r+1][c-1] == "#":
count+=1
print(count, end="")
elif r=10:
for c in range(1,9):
if board[r][c] == "#":
print("# ")
if board[r][c-1] == "#":
count+=1
if board[r][c+1] == "#":
count+=1
if board[r-1][c+1] == "#":
count+=1
if board[r-1][c] == "#":
count+=1
if board[r-1][c-1] == "#":
count+=1
print(count, end="")
elif c=0:
for r in range(1,9):
if board[r][c] == "#":
print("# ")
if board[r][c+1] == "#":
count+=1
if board[r-1][c] == "#":
count+=1
if board[r-1][c+1] == "#":
count+=1
if board[r+1][c] == "#":
count+=1
if board[r+1][c+1] == "#":
count+=1
print(count, end="")
elif c=10:
for r in range(1,9):
if board[r][c] == "#":
print("# ")
if board[r][c-1] == "#":
count+=1
if board[r-1][c] == "#":
count+=1
if board[r-1][c-1] == "#":
count+=1
if board[r+1][c] == "#":
count+=1
if board[r+1][c+1] == "#":
count+=1
print(count, end="")
Mine(board)
코딩 도장 포럼은 책에 대한 질문에만 도움을 드립니다. 코드의 디버깅에 대한 답변도 하지 않습니다.
지뢰찾기도 코딩 도장의 심사문제가 요구하는 것과 다릅니다. 데이터 입력 형태도 다릅니다.
기존 학습 이력이 없는 것으로 보아 다른 곳에서 지뢰찾기 문제를 받았고, 코딩하는 것으로 보입니다.
코딩 도장은 지뢰찾기가 *인데 왜 #으로 코딩했는지 정도의 답변만 가능합니다.