2011-11-07 3 views
-1

그래서 저는 매우 기본적인 파이썬 게임을 만들고 있는데,이 단계에서 제가 도움이 필요합니다. 게임의 개념은 두 개의 주사위를 굴려 합을 더하는 프로그램을위한 것입니다. 이 번호로 번호 목록 (1-10)에서 "못 (peg)"까지 사용할 수있는 번호를 선택할 수 있습니다. 모든 전화 번호가 고정되거나 옵션이 없을 때까지 계속 이동합니다. 이전에 프로그램에서이 단계에서 사용하고있는 두 가지 함수를 만들었습니다. 그 두 가지는 ask_number와 valid_moves입니다. 기본적으로 요청 번호는 그들이 원하는 번호를 묻습니다. 실제로 번호를 지정하지는 않습니다. valid_moves 함수는 플레이어가 선택할 수있는 숫자를 확인합니다.리스트를 다루는 파이썬 게임 만들기

 
------------------------------ 
(1)(2)(3)(4)(X)(6)(7)(X)(9)(X) 
------------------------------ 

는 X가 이미 불렀고 된 숫자 :

게임은 꽤 많은 단지를 통해 중간과 같습니다. 게임의이 부분에서는 숫자를 "X"로 바꾸는 방법을 알아야합니다. 나는 지금까지 이것을 가지고있다. 그러나 나는 벗어났다. 나는 무엇을 해야할지 알아 내는데 어려움을 겪고있다. (pegholes는 목록의 이름이고 move는 ask_number 함수에서 선택한 번호입니다.) 정말 고마워!

PEGGED = "X" 

def enter_peg(pegholes, roll, total): 
    ask_number() 
    if ask_number == valid_moves(): 
     pegholes.append(ask_number(PEGGED)) 

     return pegholes, move 

답변

1

는 정말 게임이 작동하도록되어 얼마나 잘 모르겠지만, 이것은 당신을 도울 수 있습니다

#!/usr/bin/env python 

import random 
import sys 

pegs = range(2, 11) 

def roll_dice(): 
    return random.randint(1, 5) + random.randint(1, 5) 

while True: 
    roll = roll_dice() 
    print "You rolled %s" %roll 
    available_choices = set(p for p in pegs if p != 'X') - set(range(roll+1, 11)) 
    if len(available_choices) == 0: 
     print "FAIL SAUCE" 
     sys.exit() 
    while True: 
     choice = raw_input("Choose a number %s: " % (", ".join(str(x) for x in sorted(list(available_choices))))) 
     if choice == 'q': 
      sys.exit() 
     choice = int(choice) 
     if choice in available_choices: 
      break 
     print "Nice try buddy... pick a number in range, that hasn't been picked" 
    pegs[choice - 2] = 'X' 
    print "".join("(%s)" % p for p in pegs) 
    if len([x for x in pegs if x == 'X']) == 9: 
     print "WINNER!" 
     sys.exit() 
0

난 당신이 뭘하려고하는지 분명히 아니에요 ...

  • "합계를 추가하십시오"라고 말하면 함께 합산하여 합계를 구하는 것입니까?
  • 표준 주사위 12 개까지 추가 할 두 개의 주사위는 2에서 가고 싶은 공정한 게임을 위해 그렇게 한 총 수 없습니다 -이 같은 시도 할 수 있었다 (12)

:

import random 


#set up list of numbers from 2 to 10 
numlist = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 

#create a roll dice function, producing the sum of two random integers 1-6 
def rolldice(): 
    return (random.randint(1,6) + random.randint(1,6)) 

#run the rolldice function 
roll = rolldice() 

#set up a loop for while the sum of the roll appears in the list 
while roll in numlist: 
    print "Your rolled %s" %roll 
    print "Your list was", numlist 

    print "Replacing %s with X" %roll 

    numlist[numlist.index(roll)]="X" 
    print "Your new list is", numlist 
    raw_input("Press enter to roll again") 
    roll = rolldice() 

#once a roll not in the list show up: 
print "Your roll was %s" %roll 
print "This is not in your list" 

을 또 다른 if 문을 추가하여 사용자가 목록에 목록이 없으면 다시 시도 할 것인지 물어보고 while 루프를 통해 되돌아 갈 수 있습니다.

계속 노력해라 - 나는 지난 여름에 처음이었고 아직도 배우고있다. 그냥 계속 다른 일을 시도해보십시오 ... 당신은 실수로부터 배우게 될 것입니다.