그래서 저는 프로그래밍에 새로운 브랜드이며, 저를 실망스럽게 생각합니다! 내가하고 싶은 일은 4x8 텍스트 파일을 가져 와서 텍스트를 2D 목록으로 변환하여 두 문자를 바꿀 수있게하는 것입니다. 예를 들어, 반입 된 텍스트 파일은 다음과 같이 표시되는 경우파이썬에서 2D 배열의 두 문자를 교체 하시겠습니까?
다음OOOOOOOO
OOOXOOOO
OOOOOOOO
OOOOOOOO
사용자 입력이 입력되도록 할 때 I의 X (행/열 위치)의 위치를 변경할 수 있도록하고자 오 서식을 유지하기 위해 그 위치에 놓이게됩니다. 그래서 exapmle을 위해 프로그램은 사용자에게 입력을 요구하고 사용자가 "up"을 입력하면 X는 한 칸 위로 이동합니다.
OOOXOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO
나는 반복적으로 하나가 될 때마다 후 새 이동에 대한 메시지를 표시하고 새 그리드 매번 (그래서 당신은 당신이 운동을 입력 할 때마다 새로운 위치에있는 X를 볼 수 있습니다) 표시로합니다.
이것은 내가 지금까지 가지고있는 전부입니다. 나는 X를 먼저 찾아야한다는 것을 알고 있지만, 어떻게 해야할지 모르겠다. 나는 여기 붙어있다. 어떤 도움을 주셔서 감사합니다.
#Global variables for the movements
UP = 8
DOWN = 2
RIGHT = 6
LEFT = 4
#Dimensions of grid
ROWS = 4
COLUMNS = 8
def start():
filename = input("Enter the name of the Start Positions file: ")
textFile = open(filename)
aMaze = [line.strip() for line in textFile]
for r in range(ROWS):
for c in range(COLUMNS):
print(aMaze[r][c], end="")
print()
def moveType():
while (True):
try:
move = input("ENTER YOUR MOVE: ")
except ValueError:
print("unimportant error message")
continue
if ((int(move)) in (DOWN, LEFT, RIGHT, UP)):
playerMove(move)
continue
else:
print("unimportant error message")
continue
return(move)
def playerMove(move):
move = (int(move))
if (move == DOWN):
#need help here
elif (move == UP):
#and here
elif (move == LEFT):
#don't know what i'm doing
elif (move == RIGHT):
#also here
start()
moveType()
내가 이전에 이동을 기록하고 행 <= 4와 col <= 8과 같은 유효성을 확인한 다음 0으로 이전을 업데이트하고 x로 nwe를 수정하는 것이 좋습니다. – Hackaholic
시작 위치 파일에 항상 정확히 하나의 X가 있습니까? 그렇다면 스와핑 문제로 생각하지 마십시오. aMaze의 대부분은 Os가 될 것이므로 추적 할 필요가 없습니다. rowX와 colX라는 X의 현재 위치를 추적하면됩니다. 그런 다음 playerMove는 방향에 따라 rowX 또는 colX를 증가 시키거나 감소시키고 이동이 가능한지 여부를 결정합니다. – linus