저는 첫 번째 파이썬 게임을 작업 중이지만 시작하기 전에 자습서를 통해 수정하려고합니다. 나는 하나의 문제를 겪고 있지만 위대한 "보석으로 장식 한"스타일의 게임을 발견했다.Python 임의 조건
게임에는 일반적으로 7 개의 이미지가 사용되었습니다. 게임이 시작될 때, 그것은 보석을 다소 무작위 순서로 놓았을 것이지만, 같은 보석을 서로 옆에 놓지 않았는지 확인했습니다.
내가하고 싶은 일은 이미지 수를 17 개로 크게 늘리는 것입니다. 모든 이미지가 올바르게로드되지만 일부 이미지는 표시 횟수를 제한하려고합니다. 예를 들어, gem1부터 gem3까지를보다 일반적인 보석으로 만들고, 다른 모든 것들은 자주 표시하지 않습니다. 나는 무작위를 사용하는 것과 같은 것을하려고 생각하고있다. 1-5 사이의 번호를 선택하십시오. 1-4가 선택되면 gem1, gem2 또는 gem3 중 하나가 선택됩니다. 5가 선택되면 다른 보석 중 하나가 표시되지만 동일한 이미지의 묶음이 서로 옆에 나타나지 않도록 항상 가능한 보석 코드를 따라야합니다. 이 방법을 만드는 방법에 대한 아이디어가 있습니까?
나는 보석에 가장 중요한 장소에 자습서 코드를 포함시켰다. Google에서 gemgem.py를 검색하여 전체 소스 코드를 검색 할 수도 있습니다.
possibleGems = list(range(len(GEMIMAGES)))
for offsetX, offsetY in ((0, -1), (1, 0), (0, 1), (-1, 0)):
# Narrow down the possible gems we should put in the
# blank space so we don't end up putting an two of
# the same gems next to each other when they drop.
neighborGem = getGemAt(boardCopy, x + offsetX, y + offsetY)
if neighborGem != None and neighborGem in possibleGems:
possibleGems.remove(neighborGem)
newGem = random.choice(possibleGems)
boardCopy[x][y] = newGem
dropSlots[x].append(newGem)
코드는 다음과 같이 될 것 이미지
# Load the images
GEMIMAGES = []
for i in range(1, NUMGEMIMAGES+1):
gemImage = pygame.image.load('gem%s.png' % i)
if gemImage.get_size() != (GEMIMAGESIZE, GEMIMAGESIZE):
gemImage = pygame.transform.smoothscale(gemImage, (GEMIMAGESIZE, GEMIMAGESIZE))
GEMIMAGES.append(gemImage)
나는이 접근법을 좋아하지만 파이썬에 완전히 익숙하지 않으며 전체적으로 프로그래밍에 익숙하지 않으므로 수정하려고하는 튜토리얼에 속한 코드가 손실되었다. 코드는 각 보석 이미지를 GEMIMAGES 목록에 저장하고 각 이미지에 숫자를 할당합니다. 그런 다음이 숫자를 사용하여 3 개 (또는 그 이상)의 정확한 일치가 발생했는지 확인합니다. 이 방법을 사용하여 튜토리얼 게임에 추가하는 방법을 이해할 수 없습니다. 이 코드를 튜토리얼에 삽입하여 실행하는 방법에 대한 조언이 있으십니까? – Badge