Answers for "python make a shop menu"

1

python make a shop menu

# this is my own work from a fun project of a text based game I am making

def shopkeep(player_gold, player_inv, general_store_inv):
    for x in range(8):
        print()
    print("Shopkeeper: Welcome to my humble shop for now!")
    time.sleep(0.5)
    shopkeep_leave = False
    while shopkeep_leave is False:
        x2 = 0
        print("\nShopkeeper: Care to peruse my wares?\n")
        time.sleep(1)
        print("Shopkeeper: The upgraded sword and shield are 5 gold each, everything else is 2 gold.")
        print("Gold in coin purse: " + str(player_gold))
        for x in general_store_inv:
            time.sleep(0.2)
            print(str(x2 + 1) + ". " + str(general_store_inv[x2]))
            x2 += 1
        shop_purchase = input("""Please select:
            > """)
        if shop_purchase == "":
            shop_purchase = "1"
        int_choice = int(shop_purchase) - 1
        if x2 < 1:
            print("Shopkeeper: Sorry lad, just realised we're out of stock!")
            time.sleep(1)
            print("You leave the store")
            shopkeep_leave = True
            return player_gold, player_inv, general_store_inv
        if int_choice <= x2:
            print("You want to buy: " + str(general_store_inv[int_choice]) + " is this correct?\nY/N")
            confirm = input("   > ")
            if "Y" in confirm.upper():
                if "apple" in str(general_store_inv[int_choice]):
                    if player_gold >= 2:
                        time.sleep(0.5)
                        print("You pay 2g and obtain an apple!")
                        player_inv.append("apple")
                        general_store_inv.remove("apple")
                        player_gold -= 2
                    else:
                        print("Shopkeep: Looks like you can't afford that!")
                elif "sword2" in str(general_store_inv[int_choice]):
                    if player_gold >= 5:
                        time.sleep(0.5)
                        print("You pay 5g and obtain an upgraded sword!")
                        player_inv.append("sword2")
                        general_store_inv.remove("sword2")
                        player_gold -= 5
                    else:
                        print("Shopkeep: Looks like you can't afford that!")
                elif "sword" in str(general_store_inv[int_choice]):
                    if player_gold >= 2:
                        time.sleep(0.5)
                        print("You pay 2g and obtain a basic sword!")
                        player_inv.append("sword")
                        general_store_inv.remove("sword")
                        player_gold -= 2
                    else:
                        print("Shopkeep: Looks like you can't afford that!")
                elif "shield" in str(general_store_inv[int_choice]):
                    if player_gold >= 5:
                        time.sleep(0.5)
                        print("You pay 5g and obtain a shield!")
                        player_inv.append("shield")
                        general_store_inv.remove("shield")
                        player_gold -= 2
                    else:
                        print("Shopkeep: Looks like you can't afford that!")
                elif "brown coat" in str(player_inv[int_choice]):
                    if player_gold >= 2:
                        time.sleep(0.5)
                        print("You pay 2g and obtain a brown coat!")
                        player_inv.append("brown coat")
                        general_store_inv.remove("brown coat")
                        player_gold -= 2
                    else:
                        print("Shopkeep: Looks like you can't afford that!")
            elif confirm == "":
                print("Shopkeeper: I take it you didn't want that then")
                time.sleep(2)
            else:
                confirm = input("Shopkeeper: Do you want to exit?\n    > ")
                if "Y" in confirm.upper():
                    shopkeep_leave = True
                    return player_gold, player_inv, general_store_inv

    return player_gold, player_inv, general_store_inv
Posted by: Guest on June-27-2021

Python Answers by Framework

Browse Popular Code Answers by Language