I keep getting the error (load() missing 1 required positional argument: 'player') when I try to load. I have kinda given up on this project for a bit until I can fix this, so I finally got back to it and am hoping to get any help if possible, or honestly redo everything and build it around the save system.
import random
import os
import dill as pickle
FILE = 'PlayerPickle.pkl'
#Player class
class Player:
level = 1
player_name = "bob"
health = 100
max_health = 100
damage = 10
gold = 400
pet = ""
experience = 0
defense = 2
weapons = ["Paper Sword"]
items = []
equipped_weapon = ("Rat")
experience_threshhold = 10
def askSave(player):
ask = input("Do you want to save?\n--> ").upper()
if ask == "Y" or ask == "YES":
pickle.dump(player, open(FILE, "wb",))
elif ask == "N" or ask == "NO":
print("Okay, maybe next time!")
else:
print("Sorry, that does not compute with me! Please try again!")
askSave(player)
def load(player):
if os.path.isfile(FILE):
return pickle.load(open(FILE,"rb")) #Loads the file
return player
#funtion that allows a player to equip a weapon and increase their damage.
def weapon_equip():
print("Weapons: " + str(Player.weapons))
selection = input("Which weapon would you like to equip? ")
if selection == "Paper Sword":
Player.weapons.remove("Paper Sword")
Player.weapons.append(Player.equipped_weapon)
Player.equipped_weapon = ()
Player.equipped_weapon = "Paper Sword"
print("You have equipped " + str(Player.equipped_weapon))
elif selection == "Spear":
Player.weapons.remove("Spear")
Player.weapons.append(Player.equipped_weapon)
Player.equipped_weapon = ()
Player.equipped_weapon = "Spear"
print("You have equipped " + str(Player.equipped_weapon))
elif selection == "Knight's Longsword":
Player.weapons.remove("Knight's Longsword")
Player.weapons.append(Player.equipped_weapon)
Player.equipped_weapon = ()
Player.equipped_weapon = "Knight's Longsword"
print("You have equipped " + str(Player.equipped_weapon))
elif selection == "Dwarvn Scimitar":
Player.weapons.remove("Dwarvn Scimitar")
Player.weapons.append(Player.equipped_weapon)
Player.equipped_weapon = ()
Player.equipped_weapon = "Dwarvn Scimitar"
print("You have equipped " + str(Player.equipped_weapon))
else:
print("No such thing has been found in thy inventory! ")
main_menu()
#function for the weapons section of the main shop()
def weapons_shop():
weapons_list = ["Paper Sword - Price: 40G - Damage: 15", "Spear - Price: 275G - Damage: 30", "Knight's Longsword - Price: 550G - Damage: 60", "Dwarvn Scimitar (forged from hell) - Price: 1111G - Damage:150" ]
print(weapons_list[0])
print(weapons_list[1])
print(weapons_list[2])
print(weapons_list[3])
weapons_shop_selection = int(input("Select a weapon to purchase from 1-4: "))
if ((weapons_shop_selection == 1) and (Player.gold >= 40) and ("Paper Sword" not in Player.weapons)):
Player.gold = Player.gold - 40
Player.weapons.append("Paper Sword")
print("You have purchased a Paper Sword")
print(" ")
shop()
elif weapons_shop_selection == 2 and Player.gold >= 275 and "Spear" not in Player.weapons:
Player.gold = Player.gold - 40
Player.weapons.append("Spear")
print("You have purchased a Spear")
print(" ")
shop()
else:
print("You are too poor, or you already have that item...")
print(" ")
shop()
#function for blackjack game
def blackjack():
print(" ")
print("Your balance: " + str(Player.gold) +"G")
bet = int(input("How much would gold would you like to bet? (Type a negative number to leave) "))
if bet > Player.gold:
print("INVALID INPUT... ")
shop()
if bet >= 1:
card_deck = [2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A"]
ace = [1, 11]
class PlayerHand:
player_cards_hand = []
print(" ")
player_cards_hand.append(random.choice(card_deck))
player_cards_hand.append(random.choice(card_deck))
player_card_total = 0
player_card_total_soft = 0
w = False
aces = 0
class DealerHand:
dealer_cards_hand = []
print(" ")
dealer_cards_hand.append(random.choice(card_deck))
dealer_cards_hand.append(random.choice(card_deck))
player_card_total = 0
dealer_cards_total_soft = 0
w = False
aces = 0
ongoing = True
ongoing_dealer = True
else:
main_menu()
#This is the loop for the player's turn.
while ongoing:
if 2 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 2 * (PlayerHand.player_cards_hand.count(2))
if 3 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 3 * (PlayerHand.player_cards_hand.count(3))
if 4 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 4 * (PlayerHand.player_cards_hand.count(4))
if 5 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 5 * (PlayerHand.player_cards_hand.count(5))
if 6 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 6 * (PlayerHand.player_cards_hand.count(6))
if 7 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 7 * (PlayerHand.player_cards_hand.count(7))
if 8 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 8 * (PlayerHand.player_cards_hand.count(8))
if 9 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 9 * (PlayerHand.player_cards_hand.count(9))
if 10 in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 10 * (PlayerHand.player_cards_hand.count(10))
if 'J' or 'Q' or 'K' in PlayerHand.player_cards_hand:
PlayerHand.player_card_total = PlayerHand.player_card_total + 10 * ((PlayerHand.player_cards_hand.count("J")) + (PlayerHand.player_cards_hand.count("Q")) + (PlayerHand.player_cards_hand.count("K")))
PlayerHand.player_card_total_soft = PlayerHand.player_card_total
PlayerHand.aces = PlayerHand.aces + int(PlayerHand.player_cards_hand.count("A"))
PlayerHand.player_card_total = PlayerHand.player_card_total + ((PlayerHand.player_cards_hand.count("A")) * (ace[0]))
if PlayerHand.aces > 1:
PlayerHand.player_card_total_soft = PlayerHand.player_card_total_soft + 11 + ((PlayerHand.player_cards_hand.count("A")) * (ace[0]))
elif PlayerHand.aces == 1:
PlayerHand.player_card_total_soft = PlayerHand.player_card_total_soft + 11
else:
PlayerHand.player_card_total_soft = 0
if PlayerHand.aces >= 1:
print(str(PlayerHand.player_card_total) + " / "+ str(PlayerHand.player_card_total_soft))
else:
print("Hand: " + str(PlayerHand.player_cards_hand))
print(PlayerHand.player_card_total)
if PlayerHand.player_card_total > 21:
print("BUSTED")
Player.gold = Player.gold - bet
ongoing = False
shop()
print("Dealer's Hand: " + str(DealerHand.dealer_cards_hand[1]))
player_choice = input(("Would you like to hit or stand? "))
if player_choice == "hit":
PlayerHand.player_card_total = 0
PlayerHand.aces = 0
PlayerHand.player_cards_hand.append(random.choice(card_deck))
else:
if PlayerHand.player_card_total < PlayerHand.player_card_total_soft & PlayerHand.player_card_total_soft <= 21:
PlayerHand.player_card_total = PlayerHand.player_card_total_soft
print("You stood")
break
#This is the loop for the dealer's turn.
while ongoing_dealer:
if 2 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 2 * (DealerHand.dealer_cards_hand.count(2))
if 3 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 3 * (DealerHand.dealer_cards_hand.count(3))
if 4 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 4 * (DealerHand.dealer_cards_hand.count(4))
if 5 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 5 * (DealerHand.dealer_cards_hand.count(5))
if 6 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 6 * (DealerHand.dealer_cards_hand.count(6))
if 7 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 7 * (DealerHand.dealer_cards_hand.count(7))
if 8 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 8 * (DealerHand.dealer_cards_hand.count(8))
if 9 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 9 * (DealerHand.dealer_cards_hand.count(9))
if 10 in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 10 * (DealerHand.dealer_cards_hand.count(10))
if 'J' or 'Q' or 'K' in DealerHand.dealer_cards_hand:
DealerHand.player_card_total = DealerHand.player_card_total + 10 * ((DealerHand.dealer_cards_hand.count("J")) + (DealerHand.dealer_cards_hand.count("Q")) + (DealerHand.dealer_cards_hand.count("K")))
DealerHand.dealer_cards_total_soft = DealerHand.player_card_total
DealerHand.aces = DealerHand.aces + int(DealerHand.dealer_cards_hand.count("A"))
DealerHand.player_card_total = DealerHand.player_card_total + ((DealerHand.dealer_cards_hand.count("A")) * (ace[0]))
if DealerHand.aces > 1:
DealerHand.dealer_cards_total_soft = DealerHand.dealer_cards_total_soft + 11 + ((DealerHand.dealer_cards_hand.count("A")) * (ace[0]))
elif DealerHand.aces == 1:
DealerHand.dealer_cards_total_soft = DealerHand.dealer_cards_total_soft + 11
else:
DealerHand.dealer_cards_total_soft = 0
if DealerHand.player_card_total > 21:
print("Dealer Busts! ")
print("You Win! $" + str(bet))
Player.gold = Player.gold + bet
ongoing_dealer = False
shop()
if DealerHand.player_card_total > PlayerHand.player_card_total:
if DealerHand.dealer_cards_total_soft > DealerHand.player_card_total & DealerHand.dealer_cards_total_soft <= 21:
DealerHand.player_card_total = DealerHand.dealer_cards_total_soft
break
elif DealerHand.player_card_total == 17:
ongoing_dealer = False
break
print(DealerHand.dealer_cards_hand)
#This determines who wins or if the game is a tie.
if DealerHand.player_card_total == PlayerHand.player_card_total:
print("Tie! ")
elif DealerHand.player_card_total < PlayerHand.player_card_total:
print("You Win! G" + str(bet))
Player.gold = Player.gold + bet
elif DealerHand.player_card_total > PlayerHand.player_card_total:
print("You Lose. . . $-" + str(bet))
Player.gold = Player.gold - bet
main_menu()
#function for basic items and consumables.
def item_shop():
print(" ")
print("Welcome to the shop sir! Explore the catalogs and let me know if you want to purcahse anything... ")
item_shop_selection = int(input("Catalog: 2 for items, 3 for Ranks, 4 for petshop: "))
#function for the general shop with misc things.
def shop():
print("WELCOME TO THE SHOP!")
print('''
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢔⢒⡿⠯⠥⢦⣦⣾⣄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⢮⠊⠁⠀⠀⠀⠀⠈⠉⠛⠳⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣧⣿⣝⡴⡔⠀⠀⠀⠀⠀⠀⠀⠀⠘⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣀⣦⣶⣿⣿⣯⣿⢽⠁⢰⣢⣶⣦⣌⠠⠴⠆⠘⣀⠀⠀⠀
⠀⠀⠀⠀⢀⠔⠁⠀⢂⠘⢻⢛⣛⠿⣝⠁⠀⠼⣁⡴⣖⣫⠙⠙⠿⡳⡅⠀⠀⠀
⠀⠀⠀⢀⠂⠰⠀⠀⠈⡄⢠⢓⣺⢇⡇⣊⠐⠀⠉⠁⠲⠒⠀⠀⠀⠑⠅⠀⠀⠀
⠀⠀⠀⣨⠀⡇⠀⠀⠀⠰⢸⠄⠄⣸⣷⡦⣄⢤⠄⢄⡀⣀⠤⠠⡀⠀⠈⡄⠀⠀
⠀⠀⢠⠁⠙⣇⠀⠀⠀⠀⢾⠘⢠⣿⣟⣿⣿⣪⣮⣶⣸⣮⣖⣢⣌⠁⠀⠁⠀⠀
⠀⠀⢸⠀⠀⢹⠀⠀⠀⠀⠸⠀⢝⣻⣯⣿⢿⡫⢺⡩⠍⣉⣉⣨⡗⠉⠂⠊⠀⠀
⠀⠀⡈⠂⠀⣾⠀⠀⠀⠀⠀⠆⡸⣹⡿⣿⣯⣷⣱⣙⠫⠧⠷⣦⠀⠀⠀⠀⠀⠀
⠀⢠⠇⠀⠀⢉⠀⠀⠀⠀⠀⠈⠕⣻⣿⣿⣿⣟⣿⣿⡷⣶⣾⠿⠒⡁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠈⢇⠻⠽⣿⡿⢟⣿⣻⡟⠁⠰⣯⡕⡰⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢩⠀⠀⠀⠀⠀⢀⠬⣍⠱⠨⠯⠛⠙⢏⠀⢀⡀⣨⡀⠤⢚⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢂⠀⠀⠀⠀⠀⢠⠁⠀⠀⠀⠀⠀⢸⠄⠰⡶⠲⢦⠓⠍⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠡⡀⠀⠀⠀⠀⠀⠀⡄⠀⢀⠄⠊⠉⠙⠑⠒⠊⠉⠀⠀''')
print("Select 1 to view items;\
Select 2 to view weapons; \
Select 3 to play blackjack;\
Select 4 to exit the shop;")
shop_selection = int(input("Input your shop selection: "))
if shop_selection == 4:
main_menu()
if shop_selection == 3:
blackjack()
elif shop_selection == 2:
weapons_shop()
elif shop_selection == 1:
item_shop()
#function to fight monsters .
def mob_fight():
mob_attack = (random.randint(0,15))
mob_health = (random.randint(50,70))
mob_xp_drop = (random.randint(2,10))
mob_gold_drop = (random.randint(10, 25))
print("A GOBLIN APPROACHES!")
print('''
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣶⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠢⣤⣀⡀⠀⠀⠀⢿⣧⣄⡉⠻⢿⣿⣿⡿⠟⢉⣠⣼⡿⠀⠀⠀⠀⣀⣤⠔⠀
⠀⠀⠈⢻⣿⣶⠀⣷⠀⠉⠛⠿⠶⡴⢿⡿⢦⠶⠿⠛⠉⠀⣾⠀⣶⣿⡟⠁⠀⠀
⠀⠀⠀⠀⠻⣿⡆⠘⡇⠘⠷⠠⠦⠀⣾⣷⠀⠴⠄⠾⠃⢸⠃⢰⣿⠟⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠋⢠⣾⣥⣴⣶⣶⣆⠘⣿⣿⠃⣰⣶⣶⣦⣬⣷⡄⠙⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢋⠛⠻⠿⣿⠟⢹⣆⠸⠇⣰⡏⠻⣿⠿⠟⠛⡙⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⢧⡀⠠⠄⠀⠈⠛⠀⠀⠛⠁⠀⠠⠄⢀⡼⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢻⣦⡀⠃⠀⣿⡆⢰⣿⠀⠘⢀⣴⡟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣦⡀⠘⠇⠸⠃⢀⣴⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣷⣄⣠⣾⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀''')
while mob_health > 0 and Player.health:
player_input = int(input("1 to attack; 2 to defend; 3 to taunt;"))
mob_attack = (random.randint(0,15))
if player_input == 1:
mob_health = mob_health - Player.damage
print("You dealt " + str(Player.damage) + " damage!")
Player.health = Player.health - mob_attack
print("You took " + str(mob_attack) + " damage!")
print("Player HP: " + str(Player.health))
print("Mob HP: " + str(mob_health))
elif player_input == 2:
Player.health = Player.health - (mob_attack - Player.defense)
print("You only took " + str(mob_attack - Player.defense) + " damage!")
print("Player HP: " + str(Player.health))
print("Mob HP: " + str(mob_health))
elif player_input == 3:
print("The goblin laughs at you :) ")
else:
print("Invalid choice... ")
if Player.health > 0:
Player.health = Player.max_health
print("You win!")
Player.experience = Player.experience + mob_xp_drop
print("You have gained " + str(mob_xp_drop) + " XP")
Player.gold = Player.gold + mob_gold_drop
print("You have gained " + str(mob_gold_drop) + " G")
else:
print("You Lose!")
Player.health = Player.max_health
if Player.experience >= Player.experience_threshhold:
Player.level = Player.level + 1
Player.experience_threshhold = Player.experience_threshhold * 2
Player.experience = Player.experience - Player.experience_threshhold
print(" ")
print("MAIN MENU")
main_menu()
#Player main menu.
def main_menu():
player = Player()
askSave(player)
player = load(player)
print(player.gold)
print("Select 1 to fight mobs; Select 2 to go to shop; Select 3 to view stats; Select 4 to equip a weapon; Select 5 to save; Select 6 to load")
menu_selection = int(input("Input your menu selection: "))
if menu_selection == 1:
mob_fight()
print("You go to the woods to fight mobs... ")
elif menu_selection == 2:
print(" ")
shop()
elif menu_selection == 3:
print('''⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢀⣠⣴⣶⣶⣶⣶⣶⣶⣶⣦⣄⡀⠀⠐⡆⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⣼⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣷⡦⠄⣀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⠀⠈⠀⠀⠀⠀
⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀
⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⡇⠀⠀⠀⠀
⠀⠀⠀⢰⣿⣿⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⡫⣁⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⡟⠃⣿⣿⣿⡟⠁⠀⠉⠛⠛⢻⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀
⠀⠀⠀⠀⢸⣿⣿⣿⣿⡿⢿⣿⣯⡽⠿⠛⠉⠀⠀⠀⣬⠽⢷⣶⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀
⠀⠀⠀⣠⠋⢀⠙⡏⠁⣀⣾⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⡇⠘⣿⢉⡄⠱⡄⠀⠀⠀
⠀⠀⠀⢇⠀⠲⣹⣿⠀⠀⠈⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠀⢸⡟⡡⠀⠠⠃⠀⠀⠀
⠀⠀⠀⠈⠱⢄⡈⠹⡆⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⢀⡎⠁⢀⠔⠃⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠉⠙⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠜⠉⠉⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠒⡀⠀⠀⠀⠀⠐⠒⠀⠀⠀⠀⢀⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢢⣤⡀⠀⠀⠀⣠⣤⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢾⠿⣿⣿⣿⣿⣿⡿⣗⡆⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠊⠘⡞⠀⠈⠙⠛⠛⠉⠀⢻⠇⠈⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣀⣴⡿⠀⠀⠰⣀⠀⠀⠀⠀⠀⢠⠇⠀⠀⢹⣦⣄⣀⠀⠀⠀⠀⠀⠀⠀''')
print("PLAYER STATS: ")
print("Level: " + str(Player.level))
print("HP: " + str(Player.max_health))
print("Damage: " + str(Player.damage))
print("Gold: " + str(Player.gold))
print("XP: " + str(Player.experience))
print("Defense: " + str(Player.defense))
print("Items: " + str(Player.items[:]))
print("Weapons: " + str(Player.weapons[:]))
print("Equipped weapon: " + str(Player.equipped_weapon[:]))
main_menu()
elif menu_selection == 4:
weapon_equip()
elif menu_selection == 5:
askSave(player)
elif menu_selection == 6:
load()
else:
main_menu()
#We want the player to start and return on the menu, so we only call the main_menu.
print("WELCOME TO LISBANE! ")
print(" __ \n"
" / >\n"
" * / /________________________________________________\n"
" (O)77777777777) 7 `~~--__\n"
"8OO>>>>>>>>>>>>] <=== __-\n"
" (O)LLLLLLLLLLL) L________________________________________________.--~~\n"
" * \ \ \n"
" \__>\n"
)
main_menu()
I tried modeling my code based on some reference code I found, but I assume I am wrong somewhere.
import os, pickle
FILE = 'PlayerPickle.pkl'
class Player:
level = 1
player_name = "bob"
health = 100
max_health = 100
damage = 10
gold = 400
pet = ""
experience = 0
defense = 2
weapons = ["Paper Sword"]
items = []
equipped_weapon = ("Rat")
experience_threshhold = 10
def load(player):
if os.path.isfile(FILE):
return pickle.load(open(FILE,"rb")) #Loads the file
return player
def save(player):
pickle.dump(player, open(FILE, "wb",))
def main():
player = Player()
player = load(player)
print(f'Initial Player name {player.player_name}, gold:{player.gold}')
delta = int(input('Enter change in gold: '))
player.gold += delta
print(f'Current Player name {player.player_name}, gold:{player.gold}')
save(player)
main()