2013-06-26 4 views
0

콘솔에서 실행될 비단뱀 게임을 프로그래밍 중입니다. 지금까지 코드는 다음과 같습니다.리스트 파이썬에서 위치 읽기

#!python 

import getpass 

a = "" 
rv = "" 
playerLoc = [] 
meU= 0 
meD= 0 
meL= 0 
meR= 0 

# rv is used as a spae taker. 
# The Me... variables are used to store the players location, MeU is up, meD is down, so  on so forth. 

while a != "q": 
    a = getpass.getpass("") 
    if a=="w": 
     meU = meU + 1 
    elif a=="a": 
     meL = meL + 1 
    elif a=="d": 
     meR = meR + 1 
    elif a=="s": 
     meD = meD + 1 
    elif a=="q": 
     rv = "" 
    elif a=="": 
     rv = "" 
    elif a==" ": 
     rv = "" 
    else: 
     print "%Not A Command%" 
while a !="q": 
    playerLoc.append(meU) 
    playerLoc.append(meD) 
    playerLoc.append(meL) 
    playerLoc.append(meR) 

플레이어의 좌표를 화면의 눈금으로 표시하는 방법이 궁금합니다. 참고 저주 또는 PyGame을 사용하지 않습니다. 이 주제를 연구했는데 답변을 찾을 수 없습니다. 이것은 GUI 게임이 아니며 콘솔에 있음을 기억하십시오. 그래픽을 뱀이나 침입자 또는 그와 비슷한 것으로 만들기를 원합니다. 이 문제가 다른 사람에게 도움이되기를 바랍니다. 나는 그들이 Enter 키를 누르지 만, 보이지 않는 WASD를 누르기 위해 getpass 모듈을 사용하고 있습니다. 나는 문자로 별표 '*'를 사용하여 시도해 보았고 스크린을 통해 플레이어를 동적으로 움직이는 또 다른 문제에 부딪혔다. 나는 이것을 2 주 동안 연구했고 어떤 답을 찾지 못했다.

답변

2

참고 난 당신이 시작해야 저주 나 파이 게임

를 사용하고 있지 않다. curses 정확히 당신이 필요합니다. 사용자가 어떤 종류의 터미널을 사용하는지 알지 못하면 화면 하단의 텍스트를 안정적으로 인쇄 할 수 없습니다. 사용자가 가지고있는 터미널을 알면 제어 코드와 이스케이프 시퀀스를 사용할 수 있지만 curses을 사용하면 더 나은 작업 방법을 제공하므로 유용합니다.

+0

나는 지금 파이 게임을 가지고있다! 그것은 위대한 작품. –

0

행맨 게임을 할 때 나는 비슷한 것을했지만, 유일한 차이점은 화면의 특정 위치에 X 문자를 표시해야한다는 것입니다. "화면"의 위치를 ​​나타내는 2D 배열을 사용하여이 작업을 수행 할 수 있습니다.

우선, 윈도우에있는 경우 draw() 메서드를 시작할 때 항상 os.system('cls')으로 호출해야합니다. while 루프에서), 2d 어레이 전체를 화면에 출력 할 것입니다.

2지도를 나타 내기 위해 2D 배열을 사용하면 원점은 일반적으로 왼쪽 상단에 표시됩니다. 즉, 위치가 모두 양수가되고 더 높은 x 숫자가 화면의 오른쪽에오고 더 높은 y 숫자 화면 하단에 표시됩니다. 사용자가 input() 또는 raw_input() 파이썬의 버전에 따라에서 어쩌면 키를 입력

3

는, 당신은 아래로 왼쪽 또는 오른쪽으로 2 차원 배열에

날 도움이 원하는 것을 알려 자신의 위치를 ​​이동하려면 와 함께 나는 정성 들여 할 수있다