2017-03-05 28 views
1

我正在嘗試編寫一種走在隨機偶數遊戲機上的遊戲,用戶會輸入一定數量他們想打賭,然後根據他們要採取多少步驟,他們會要麼住或者從窗臺上掉下來。到目前爲止的代碼是FAR完成,但我遇到了一個問題,我想知道如果有人可以幫我修復它。我的python遊戲代碼不能正常工作

import time 
import random 


class Player(): 
    def __init__(self,name): 
     self.name = name 
     self.luck = 2 
     self.gold = 10 

def main(): 
    print("Hello what is your name?") 
    option = input("--> ") 
    global PlayerIG 
    PlayerIG = Player(option) 
    start1() 

def start1(): 
    print("Name: {}".format(PlayerIG.name)) 
    print("Luck: {}".format(PlayerIG.luck)) 
    print("Gold: {}".format(PlayerIG.gold)) 
    inputgold() 

def inputgold(): 
    print("Please input how much gold you would like to play with") 
    goldinput = input("--> ") 
    strgold = str(goldinput) 
    print("You inputted {}".format(strgold)) 
    if strgold <= PlayerIG.gold: 
     print("You don't have enough gold") 
     inputgold() 
    else: 
     print("Get ready to start!") 
    ledge() 

def ledge(): 
    print("You are standing on a ledge with an unknown length") 
    time.sleep(1) 
    choice = input("How many steps do you want to take forward? Between 1-100") 
    if choice == step1: 
     print("You have fallen off the ledge") 
     PlayerIG.gold -= goldinput 
     print("Gold: ".format(PlayerIG.gold)) 
    elif choice == step2: 
     print("You...") 
     time.sleep(1) 
     print("Didn't fall off the ledge!") 
     PlayerIG.gold*1.2 
     print("Gold: ".format(PlayerIG.gold)) 
    else: 
     print("You slipped off the ledge and face planted onto the side walk") 
     PlayerIG.gold -= goldinput 
     print("Gold: ".format(PlayerIG.gold)) 

def steps(): 
    step1 = random.randint(10,30) 
    step2 = random.randint(30,50) 
    step3 = random.randint(50,100) 

main() 

當我運行它是說:

if strgold <= PlayerIG.gold: TypeError: unorderable types: str() <= int()

我怎樣才能解決呢?

回答

1

的問題是這一行:

if strgold <= PlayerIG.gold: 

這裏你比較整數的字符串。這是不可能的,你必須將字符串轉換爲整數第一:

if int(strgold) <= PlayerIG.gold: 

我沒有檢查你的代碼的其餘部分,但我懷疑你可能也有類似的錯誤在其他地方了。