2011-10-30 3 views
0

저는 프로그래밍에 익숙하지 않습니다. 저는 현재 한 언어 인 Python을 만졌을뿐입니다. 1-100과 같은 범위 사이에서 임의의 롤링 숫자를 표시 할 수있는 프로그램을 작성하려고합니다. 그것을 설명 할 수 없다는 이유로, 나는 내가하고 싶은 것을 비디오로 보여 주려고한다. http://www.youtube.com/watch?v=88SENZe6Z3I 약 33 초 후에 플레이어가 캐릭터 특성에 지정하기 위해 중지해야하는 롤링 숫자를 볼 수 있습니다. 모든 예쁜 그래픽과 모든 것, 내가 알고 싶은 것은 Python에서 이와 동일한 유형의 함수를 제공하는 프로그램을 작성하는 것이 가능한지 여부입니다. 파이썬이 아니라면, 익숙해 진 다른 두 언어는 C#과 자바뿐입니다. 그것들 중 하나 또는 조합으로 그것을 쓰는 것이 가능합니까? 가능하다면이 노력에 자원의 방향을 알려주시겠습니까? 나는 이것을 게시하기 전에 검색을했지만, 나는 무엇을 검색해야하는지 알지 못하기 때문에 비어있는 것을 발견했다.게임에 대한 롤링 통계

감사합니다.

답변

1

"문제"는 명령 줄 인터페이스를 사용하여 직접 가능하지 않다는 것입니다. 게임 개발에 관심이 있다면 어쨌든 그래픽 인터페이스를 사용하게 될 것입니다. 따라서 애니메이션을 적용 할 때 더 많은 옵션을 제공하는 라이브러리를 찾아야합니다.

그러나 명령 줄에서 가능한 해결책은 멀티 스레딩입니다. 그 이유는 숫자를 인쇄 (연속적으로 변경)하거나 키보드 입력을 기다릴 수 없기 때문입니다. 정상적인 명령 행은 실제로 그런 식으로 매우 제한됩니다.

다음은 스레딩 접근법을 사용하여 가능한 해결책을 찾을 수 있습니다. 그러나 다시 한 번, 게임 개발을 계획 중이라면 실제 그래픽 라이브러리 나 게임 라이브러리를 확인해야합니다.

from random import randint 
from time import sleep 
from threading import Thread 
import sys 

class RollAnimation (Thread): 
    activated = True 
    number = None 

    def run (self): 
     while self.activated: 
      self.number = randint(1, 100) 
      sys.stdout.write('\r{: >3}'.format(self.number)) 
      sys.stdout.flush() 
      sleep(0.05) 

t = RollAnimation() 
t.start() 

# Waiting for enter 
input() # use raw_input() for Python 2.x 
t.activated = False 

print('Final roll result:', t.number) 
+0

실행하려고 할 때 오류가 발생했다. [Pastebin] (http://pastebin.com/XxU7J0sy)에 게시했다. 그래도 끝내려면 파이썬 프로세스를 죽여야 만한다는 것을 제외하면 여전히 작동합니다. 하지만 그 외에는 좋은 예가 아닙니다. – Griffin

+0

코드는 파이썬 3에 있습니다. 파이썬 2에 사용할 때.x를 사용하려면'input()'을'raw_input()'으로 대체하고'print' 문에서 괄호를 제거해야합니다. – poke

0

응용 프로그램의 그래픽의 경우, 당신은 파이 게임 보라 : 사람들이 당신이 원하는 것을 이해하기 유튜브 비디오를 볼 경우 당신은 제대로 질문을 공식화하지 않은 http://pygame.org

1

. 비디오를 보지 않고도 난수가 정수가 어떻게 작동하는지 알고 싶을뿐입니다.

import random 

x = random.randint(1, 100) 

당신이 당신은 단순히 하나 for 루프 내부에 세 개의 변수 또는 디스플레이 세 무작위 정수를하고 한 동안 그 장소 또는 루프 수, 압연합니다. 예를 들어 보겠습니다.

import random 
import sys 

try: 
    rolls = int(sys.argv[1]) 
except IndexError: 
    print "Usage: "+sys.argv[0]+" [rolls]" 
    sys.exit(1) 

for i in range(1, rolls+1): 
    print "Roll "+str(i) 
    for i in range(0, 3): 
     print random.randint(1, 100) 
+0

정확하게 * 세 사람이 어디에서 왔습니까? – poke

+0

@poke 나는 롤링 숫자가 슬롯 머신과 같은 몇몇 무작위 정수를 표시하면서 무엇인가해야한다고 생각했습니다. 이 예제의 목적은 임의의 정수를 만드는 법을 보여주기위한 것입니다. – Griffin

+0

좋아, 1-100에서 3 개의 슬롯을 가지고 있지만 이상한 소리가 난다. ^^ – poke

관련 문제