0으로 만들어진 눈금을 인쇄하고 번호가 매겨진 특정 크기의 도형이 추가 된 CS1 용 프로젝트 작업. 형상을 추가하기 전에 A) 격자에 맞는지, B) 이미 다른 것이 있는지 확인해야합니다. 내가 겪고있는 문제는 도형 배치가 올바른지 확인하는 함수가 첫 번째 및 두 번째 도형을 항상 올바르게 수행하지만 이후에 추가 된 모든 도형은 찾고있을 때 추가 된 첫 번째 도형을 "보게"됩니다 충돌을 위해. 나는 그것이 처음 목록 이후에 올바른 목록을 찍는 것을 wasnt하는지 알기 위해 점검했다. 그러나 doesnt는 그것 인 것처럼 보인다. 문제의 예 ....Python 무시 목록에 무엇이 있습니까?
모양 크기 = 4, 3, 2, 1
파이썬 출력 :
4 4 4 4 1 2 3 0
4 4 4 4 2 2 3 0
4 4 4 4 3 3 3 0
4 4 4 4 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
그것은 해야하는 출력 :
4 4 4 4 3 3 3 1
4 4 4 4 3 3 3 0
4 4 4 4 3 3 3 0
4 4 4 4 2 2 0 0
0 0 0 0 2 2 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
여기에 무슨 일이 있습니까? 전체 코드 (r
이 행 값이고 c
는 열 값이다) 열린 공간을 테스트하는
def binCreate(size):
binlist = [[0 for col in range(size)] for row in range(size)]
return binlist
def binPrint(lst):
for row in range(len(lst)):
for col in range(len(lst[row])):
print(lst[row][col], end = " ")
print()
def itemCreate(fileName):
lst = []
for i in open(fileName):
i = i.split()
lst = i
lst = [int(i) for i in lst]
return lst
def main():
size = int(input("Bin Size: "))
fileName = str(input("Item Size File: "))
binList = binCreate(size)
blockList = itemCreate(fileName)
blockList.sort(reverse = True)
binList = checker(binList, len(binList), blockList)
binPrint(binList)
def isSpaceFree(binList, r, c, size):
if r + size > len(binList[0]):
return False
elif c + size > len(binList[0]):
return False
for row in range(r, r + size):
for col in range(c, c + size):
if binList[r][c] != 0:
return False
elif binList[r][c] == size:
return False
return True
def checker(binList, gSize, blockList):
for i in blockList:
r = 0
c = 0
comp = False
while comp != True:
check = isSpaceFree(binList, r, c, i)
if check == True:
for x in range(c, c+ i):
for y in range(r, r+ i):
binList[x][y] = i
comp = True
else:
print(c)
print(r)
r += 1
if r > gSize:
r = 0
c += 1
if c > gSize:
print("Imcompadible")
comp = True
print(i)
binPrint(binList)
input()
return binList
입력 파일에는 무엇이 있습니까? 4 3 2 1? – octref
입력 파일은 그 형식의 임의의 숫자입니다. 따라서 "4 1 1 1 5 6"과 "3 6 8 7 2 4 5"가 모두 작동하고 함께 연결하면 – BLU
itemcreate는 의미가 없습니다. 반복적으로'lst = i'에게 무엇을 할 것으로 예상합니까? 그것이'lst'에 추가 될 예정인가요? 아니면 파일의 마지막 줄에만 관심이 있습니까? – user2357112