2016-09-30 7 views
-1

유전자 알고리즘을 사용하여 NNS를 테스트하는 간단한 미로 게임을 만들려고합니다. 각 테스트의 미로는 장벽, 시작점, 끝점, 플레이어의 현재 위치와 같은 x, y 지점을 보유하기 위해 행렬을 사용합니다. 가장 중요한 것은 내가 올바른 위치에 올바른 문자를 배치하여 1-25 행의 문자열을 읽을 때 (아마도 for 루프를 사용하여)지도의 레이아웃을 읽을 수 있기 때문입니다. 제 문자열 |XoooX|, 제 |ooooo| 문자열, 문자열 |ooooo| 셋째, 넷째 문자열 |ooXoo| :는 "O"가 공백 인 경우 예를 들어, 배리어는 같을 것이다 1,1 ​​3,4 1,5 포인트. 아이디어가 있으십니까? 미리 감사드립니다!x, y 좌표 행렬을 사용하여 파이썬에서 문자열에 문자가 나타나는 위치를 선택하는 방법은 무엇입니까?

+0

어떤 부분에서 문제가 있습니까? – zvone

+0

나는 x를 올바른 자리에 그리고/또는 오른쪽 문자열에 넣는 방법을 모른다. y를 사용하여 문자열을 선택하고 문자열 연결을 사용하여 문자열의 올바른 위치에 놓아야 만 할 수 있습니다. 그러나이 작업을 수행하는 방법이나 행렬을 가져 오는 방법을 모릅니다. 장벽 매트릭스 내에서. – roger

+0

당신이 시도한 것을 보여주십시오. 원본 질문에 코드 예제를 입력하십시오. –

답변

0

당신은 아마이의 라인을 따라 뭔가를 찾고 : 우리가 쉽게 한 번에 하나씩 각 행을 구성 할 수 있습니다 지능형리스트를 사용

width = 6 
height = 6 
coords = [(1,1),(3,4),(1,5)] 
print('\n'.join(['|' + ''.join(['x' if (x,y) in coords else 'o' for x in range(width)]) + '|' for y in range(height)])) 

: 기본적으로

''.join(['x' if (x,y) in coords else 'o' for x in range(width)]) 

, 인쇄 좌표에 무언가가 포함되어 있으면 x, 그렇지 않으면 o을 사용하십시오.

가있는 측면 막대를 추가 ...

'|' + ''.join([...]) + '|' 

''.join()이에 대한 very useful function입니다.

그런 다음 각 행마다 줄 바꿈을 삽입하여 각 행마다이 작업을 반복하면됩니다.

'\n'.join([...]) 
+0

이것은 정확히 내가 필요한 것입니다! 감사! – roger