2016-11-03 7 views
1

私は最近、pythonでサイコロゲームを作り始めました。今までは素晴らしく美しいものでした。私の問題は、遊んだりしようとすると勝つか失ったのか、それは次回は同じです。それだけで続ける。Python Diceゲーム/ループエラー

例:

Enter name >> Sorin 
Money = 2 
Bet >> 2 
You won! 
Money 4 
Bet >> 2 
You won! 

と、それは次のようにループ:/

Here is the code: 

import time 
import os 
import random 
os = os.system 
os("clear") 

print "What is your name?" 
name = raw_input(">>") 

def lost(): 
     print "Yoy lost the game!Wanna Play again?Y/N" 
     ch = raw_input(">>") 
     if ch == "Y": 
       game() 
     elif ch == "N": 
       exit() 



def game(): 
     os("clear") 
     a = random.randint(1,6) 
     b = random.randint(1,6) 
     c = random.randint(1,6) 
     d = random.randint(1,6) 
     e = a + b 
     f = c + d 
     money = 2 
     while money > 0: 
       print "Welcome to FireDice %s!" %name 
       print "Your money: %s$" %money 
       print "How much do you bet?" 
       bet = input(">>") 
       if e > f: 
         print "you won!" 
         money = money + bet 
       elif e < f: 
         print "you lost" 
         money = money - bet 
       else: 
         print "?" 

       print money 
     lost()   

game() 
+1

あなたは決して "サイコロを振り直す"というわけではありません。それらは 'game()'の開始時に評価され、ループの一部ではありません。 – Jkdc

+0

また、かなり前にオプションを追加したいと思うかもしれません。 – kabanus

答えて

0

このようなgameを再定義してみてください。あなたがゲームを呼び出すと

def game(): 
    os("clear") 
    money = 2 
    while money > 0: 
      print "Welcome to FireDice %s!" %name 
      print "Your money: %s$" %money 
      print "How much do you bet?" 
      bet = input(">>") 
      a = random.randint(1,6) 
      b = random.randint(1,6) 
      c = random.randint(1,6) 
      d = random.randint(1,6) 
      e = a + b 
      f = c + d 
      if e > f: 
        print "you won!" 
        money = money + bet 
      elif e < f: 
        print "you lost" 
        money = money - bet 
      else: 
        print "?" 

      print money 
    lost()   

、あなたは新しいを与えています新しい反復ごとにランダム変数に値を設定します。

+0

私は助けてくれた:)とにかくthnx! –

関連する問題