2015-03-26 2 views
-1

Привет, мои друзья помогли мне запрограммировать эту игру на питоне. Но я хочу добавить счетчик очков в свою программу - счетчик будет отслеживать, сколько раз пользователь проигрывает и выигрывает. Если вы, ребята, можете мне рассказать, как добавить счет в свою игру или показать мне, как я буду очень благодарен. Я знаю, что счетчик счет должен быть частью моей основной функции, но я просто не уверен, как добавить счетчик счетчиков, следовательно, я здесь.Как создать счетчик для моей игры в python?

Я использую PYTHON ВЕРСИЮ 2.7.6 Всего новичок в программировании только начался несколько месяцев назад: D Спасибо, и вот мой код:

import random 



def chkValidInput (userInput): 

    chkNumber = False 


    for amtChar in range(0, len(userInput)): 


     for aNumber in range(0, 10): 

      if userInput[amtChar] == str(aNumber): 
       chkNumber = True 
       break 
      elif userInput[amtChar] != str(aNumber): 
       chkNumber = False 

     if chkNumber == False: 
      return False 


    return True 


def evaluateBet(choice): 




    randNum = 0 

    randNum = random.randrange(1,14) 

    print "The random number is: " + str(randNum) 

    if choice == "high" and randNum > 7: 
     print "You Win!" 
     return True    
    elif choice == "low" and randNum < 7: 
     print "You Win!" 
     return True 
    else: 
     print "You Lose!" 
     return False 



def main(): 



    print "Commencing HiLo.py...\n" 


    random.seed(None) 


    points = 1000 
    wager = 0 
    userInput = None 
    programLoop = True 
    validInput = False 


    while programLoop == True: 


     print "Points remaining: " + str(points) 


     wager = 0 
     userInput = None 
     validInput = False 


     while validInput == False: 
      userInput = raw_input("\nMake a wager: ") 

      validInput = chkValidInput(userInput) 

      if validInput == False: 
       print "Invalid Input. It must be a positive Number. Try Again." 

      elif validInput == True: 
       if int(userInput) > points: 
        validInput = False 
        print "You don't have enough points to make that wager. Try Again." 
       elif int(userInput) == 0: 
        validInput = False 
        print "Your wager must be greater than 0. Try Again." 

     wager = int (userInput) 
     points = points - wager 

     print "Points remaining: " + str(points) 
     print "Wager: " + str(wager) 


     validInput = False 

     while validInput == False: 
      userInput = raw_input("\nPlace a bet: Either type 'High' or 'Low': ") 
      userInput = userInput.lower() 
      if userInput == "high" or userInput == "low": 
       validInput = True 
      else: 
       print "You may only choose to type from the options 'high' or 'low' " 


     if evaluateBet(userInput) == True: 
      points = (points + (wager * 2)) 
      wager = 0 

     print "Points remaining: " + str(points) 


     validInput = False 

     if points <= 0: 
      print "You do not have anymore points; game over." 
      programLoop = False 
     else: 
      while validInput == False: 
       userInput = raw_input("\nWould you like to play again?: Type 'yes' or 'no': ") 
       userInput = userInput.lower() 

       if userInput == "yes" or userInput == "no": 
        validInput = True 
       else: 
        print "You may only choose to type from the options 'yes' or 'no' " 

      if userInput == "yes": 
       programLoop = True 
      elif userInput == "no": 
       programLoop = False 



main() 
+1

Добавить переменную с именем' win', а затем один с именем 'потерять '. И затем увеличивайте их внутри win/lose' if statements'. Ex. 'Win + = 1' – logic

ответ

1

У вас уже есть почти вся кода необходимо сделайте счетчик счетчиков, просто несколько вещей, которые вам нужно добавить здесь и там.

прямо под def main() определяют переменные wins и losses оба равны 0

def main(): 
    wins = 0 
    losses = 0 

В соответствии с этой линией в функции main()

while programLoop == True: 

упрятать эти операторы печати, так что оценка может быть распечатан

print "Wins: " + str(wins) 
print "Losses: " + str(losses) 

Теперь измените это, если заявление

if evaluateBet(userInput) == True: 
    points = (points + (wager * 2)) 
    wager = 0 

в

if evaluateBet(userInput) == True: 
    points = (points + (wager * 2)) 
    wager = 0 
    wins += 1 
else: 
    losses += 1 

Если вы правильно добавить в этих строках кода теперь вы должны иметь функциональный показатель счетчика.

Последнее, что у вас есть проблема с отступом в коде.

elif validInput == True: 
       if int(userInput) > points: 
        validInput = False 
        print "You don't have enough points to make that wager. Try Again." 

Должно быть

elif validInput == True: 
       if int(userInput) > points: 
        validInput = False 
        print "You don't have 

достаточное количество очков, чтобы сделать эту ставку. Try Again «

Вы просто должны двигаться validInput = False один пространство справа

Edit:.. Полный код

import random 

def chkValidInput (userInput): 
    chkNumber = False 

    for amtChar in range(0, len(userInput)): 
     for aNumber in range(0, 10): 
      if userInput[amtChar] == str(aNumber): 
       chkNumber = True 
       break 
      elif userInput[amtChar] != str(aNumber): 
       chkNumber = False 
     if chkNumber == False: 
      return False 

    return True 


def evaluateBet(choice): 

    randNum = 0 

    randNum = random.randrange(1,14) 

    print "The random number is: " + str(randNum) 

    if choice == "high" and randNum > 7: 
     print "You Win!" 
     return True    
    elif choice == "low" and randNum < 7: 
     print "You Win!" 
     return True 
    else: 
     print "You Lose!" 
     return False 

def main(): 

    wins = 0 
    losses = 0 

    print "Commencing HiLo.py...\n" 

    random.seed(None) 

    points = 1000 
    wager = 0 
    userInput = None 
    programLoop = True 
    validInput = False 

    while programLoop == True: 

     print "Wins: " + str(wins) 
     print "Losses: " + str(losses) 

     print "Points remaining: " + str(points) 

     wager = 0 
     userInput = None 
     validInput = False 

     while validInput == False: 
      userInput = raw_input("\nMake a wager: ") 

      validInput = chkValidInput(userInput) 

      if validInput == False: 
       print "Invalid Input. It must be a positive Number. Try Again." 

      elif validInput == True: 
       if int(userInput) > points: 
        validInput = False 
        print "You don't have enough points to make that wager. Try Again." 
       elif int(userInput) == 0: 
        validInput = False 
        print "Your wager must be greater than 0. Try Again." 

     wager = int (userInput) 
     points = points - wager 

     print "Points remaining: " + str(points) 
     print "Wager: " + str(wager) 

     validInput = False 

     while validInput == False: 
      userInput = raw_input("\nPlace a bet: Either type 'High' or 'Low': ") 
      userInput = userInput.lower() 
      if userInput == "high" or userInput == "low": 
       validInput = True 
      else: 
       print "You may only choose to type from the options 'high' or 'low' " 

     if evaluateBet(userInput) == True: 
      points = (points + (wager * 2)) 
      wager = 0 
      wins += 1 
     else: 
      losses += 1 

     print "Points remaining: " + str(points) 

     validInput = False 

     if points <= 0: 
      print "You do not have anymore points; game over." 
      programLoop = False 
     else: 
      while validInput == False: 
       userInput = raw_input("\nWould you like to play again?: Type 'yes' or 'no': ") 
       userInput = userInput.lower() 

       if userInput == "yes" or userInput == "no": 
        validInput = True 
       else: 
        print "You may only choose to type from the options 'yes' or 'no' " 

      if userInput == "yes": 
       programLoop = True 
      elif userInput == "no": 
       print "Final wins and losses" 
       print "Wins: " + str(wins) 
       print "Losses: " + str(losses) 
       programLoop = False 

main() 
+0

Привет, это dois любая работа. Я получаю синтаксическую ошибку :( – Lucus

+0

Спасибо, я очень благодарен вам за помощь. Мне было интересно, он только обновляет счет, если я выбираю «да» для повтора, и он не обновляет счет, когда я выбираю «нет» для qui игра в игру. И почему это не обновляет счет - как в шоу-баллах на самом верху? Он по-прежнему говорит «win = 0» «loss = 0» единственный раз, когда обновляется оценка, когда я выбираю «да», но он обновляет счет под «бы вы хотели снова сыграть? Выберите« да »или« нет ... », область – Lucus

+0

Извините за все вопросы>. < – Lucus

Смежные вопросы