Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import scrython
- import time
- import csv
- import pickle
- import random
- """
- As Fan averae words
- total words
- averae words per card
- total and average words per card per color identity
- """
- def cubecardgrabber(filename):
- output = []
- with open(filename) as f:
- reader = csv.reader(f, skipinitialspace=True)
- for row in reader:
- if len(row) >= 15:
- if row[10] == 'false':
- output += [row]
- # print(row)
- # else:
- # This is the maybe board
- # print("BAD", end="")
- # print(row)
- return output
- def oracle_text_grabber(data):
- i = 0
- output = []
- while i < len(data):
- # print(data[i][0])
- card = scrython.cards.Named(fuzzy=data[i][0])
- time.sleep(0.1)
- try:
- card = card.card_faces()
- output += [card[0]['oracle_text']]
- output += [card[1]['oracle_text']]
- except:
- output += [card.oracle_text()]
- i += 1
- print(str(i) + " cards read")
- print("Data has finished being fetched")
- return output
- def total_words(data):
- # Currently it counts {T} and mana symbols as words
- i = 0
- wordcount = 0
- while i < len(data):
- wordcount += len(data[i].split())
- i += 1
- return wordcount
- def average_words_in_a_pack(data, packs):
- i = 0
- average_words = 0
- while i < packs:
- x = 1
- pack = []
- random_list = []
- while x <= 15:
- idx = random.randint(0, len(data) - 1)
- if idx not in random_list:
- random_list.append(idx)
- x += 1
- for rnd in random_list:
- pack += [data[rnd]]
- average_words += total_words(pack)
- i += 1
- return average_words / packs
- def save_data(data, name):
- with open(name + "save", "wb") as fp:
- pickle.dump(data, fp)
- def load_data(name):
- with open(name, "rb") as fp:
- return pickle.load(fp)
- def create_data(filename):
- data = cubecardgrabber(filename)
- data = oracle_text_grabber(data)
- save_data(data, filename)
- def main():
- filename = input("Enter file name ")
- try:
- data = load_data(filename + "save")
- print("Loaded data from " + filename)
- except:
- print("Creating data for " + filename)
- create_data(filename)
- data = load_data(filename + "save")
- print("Loaded data from " + filename)
- tests = int(input("How many test packs would you like to use to calculate average words per pack? "))
- print(len(data))
- print("This cube has " + str(total_words(data)) + " total words")
- print("There are approximately " + str(average_words_in_a_pack(data, tests)) + " words in an average pack(give or "
- "take some amount based on number "
- "of tests)")
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement