Snaží vytvořit funkci přehrání na hru turn-based (velmi nováček)

hlasů
3

Jsem v současné době hraje obchodování karetní hru zvanou Hearthstone, který je vyrobený vánice. Hra je docela dobrý, ale postrádá základní funkce, které nějaká hra, která sama sebe nazývá „kompetitivní“ by měla mít stejně jako sledování statistik a přehrávání. Tak jak jsem řekl v názvu, Snažím se vytvořit (velmi surové a špatně provedeno) skript, který pojďme mi zaznamenat každý zápas jsem hrát. Vzhledem k mé nedostatečné znalosti programování, 80% skriptu je jen banda kódu, který jsem si půjčil z nejrůznějších místech a je upraven, aby se to, co jsem chtěl. Hlavní myšlenkou je, aby to fungovalo takhle :

  1. I vyfotit každém kroku hraji. To se může stát nepříjemné, ale netroufám si myslet provádění OCR jak dělat skript vyfotit na začátku každém kroku sama o sobě. By bylo úžasné, ale já prostě nemůžu udělat ...

    Hra vysílá každý obrázek na plochu (není nutné, aby kód, který).

  2. Na konci hry jsem spustit skript

2.1 Každý zápas bude mít číslované složky, takže skript vytvoří to. Složky se bude nazýván „Match1“, „Match2“, atd. Můžete vidět, jak špatně napsáno, že je, protože jsem to na vlastní pěst: P

import sys
import os
import shutil

def checkFolder():
os.path.join('D:\Hearthstone\Replays\Match1')
matchNumber=1
while os.path.exists(D:\\Hearthstone\\Replays\\Match+ str(matchNumber)) is True:
    matchNumber=matchNumber + 1
else:
    os.makedirs(D:\Hearthstone\Replays\Match+str(matchNumber))

2.2 Skript pošle fotky z plochy do nově vytvořené složky. Problém je, že nevím, jak vytvořit skript změnit cílovou složku na nejnovější složky vytvořené. Nechtěl jsem psát tuto část kódu, i to jen upravit. Zdroj: http://tinyurl.com/srcbh

folder = os.path.join('C:\\Users\\Felipe\\', 'Desktop') # Folder in which the images are in. 
destination = os.path.join('D:\\Hearthstone\\Replays\\', 'match9999') #**Destination needs to be the newest folder and I dont know how to implement that...
extmove = 'png' # The extension you wish to organize. 
num = 0 # Variable simply to use after to count images. 

for filename in os.listdir(folder): #Run through folder.
        extension = filename.split(.)[-1] # This strips the extensions ready to check and places into the extension
        if extension == extmove: # If statement. If the extension of the file matches the one set previously then..
            shutil.move(folder + \\ + filename, destination) # Move the file from the folder to the destination folder. Also previously set. 
        num = num + 1
        print(num)

print (filename, extension)

A to je vše! Potřebuji pomoc s krokem 2.2. Já bych určitě ocení pomoc! Nyní je důvod, proč jsem udělal tak velký příspěvek je proto, že jsem chtěl vystavit můj nápad a doufejme, inspirovat někoho vzít na podobný projekt vážně. Krbová má tisíce hráčů, které by mohly mít prospěch z toho, nemluvě o tom, že toto se zdá být poměrně snadný úkol pro někoho s většími zkušenostmi.

Položena 29/12/2013 v 18:37
uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
0

To vidí které zápasy jsou ve složce a má nejnižší číslo složky.

folder = os.path.join('C:\\Users\\Felipe\\', 'Desktop') # Folder in which the images are in. 
recorded_matches_location = 'D:\\Hearthstone\\Replays\\'
match_number = 1
match_name = 'match1'
while match_name in os.listdir(recorded_matches_location):
    match_number = 1 + match_number
    match_name = 'match' + str(match_number) # corrected it! there must be a string and not a variable
destination = os.path.join(recorded_matches_location, match_name) #**Destination needs to be the newest folder and I dont know how to implement that...
extmove = 'png' # The extension you wish to organize. 
num = 0 # Variable simply to use after to count images. 

for filename in os.listdir(folder): #Run through folder.
        extension = filename.split(".")[-1] # This strips the extensions ready to check and places into the extension
        if extension == extmove: # If statement. If the extension of the file matches the one set previously then..
            shutil.move(folder + "\\" + filename, destination) # Move the file from the folder to the destination folder. Also previously set. 
        num = num + 1
        print(num)

print (filename, extension)
Odpovězeno 29/12/2013 v 19:50
zdroj uživatelem

hlasů
0

No, první off, skutečnost, že jste identifikovali problém a dát dohromady řešení, ukazuje, že rozhodně nepostrádají znalosti programování. Dejte si nějaký úvěr. Je pouze potřeba více praxe. :)

To by mělo být lepší, já jsem jej spustit, takže tam by mohlo být nějaké chyby: P

def checkFunction(base_dir='D:\\Hearthstone\\Replays\\'):  #set this as a parameter with a default
    match_number = 1
    if os.path.exists(base_dir):  #if the base directory doesn't exist you'll have a bad time
        while os.path.exists(os.path.join(base_dir, 'Match{0}'.format(match_number)))
            match_number += 1
        new_dir = os.path.join(base_dir, 'Match{0}'.format(match_number))
        os.makedirs(new_dir)
        return new_dir

Pro funkci checkFolder, navrhuji mající vrátí nový název adresáře (viz výše). Budete také muset odsazení pod ním všechny tratě, takže Python ví, tyto linky jsou součástí této funkce (to může být jen otázkou formátování na SO ačkoli).

Poté, co tato funkce checkFolder pracuje správně, stačí změna v odstavci 2.2 je:

destination = checkFolder()
Odpovězeno 29/12/2013 v 19:53
zdroj uživatelem

hlasů
1

Ok, jsem se konečně dostal do práce!

import sys
import os
import shutil

def sendPhotos():
    matchNumber=1
    photos_dest = "D:\\Hearthstone\\Replays\\Match"
    while os.path.exists(photos_dest+ str(matchNumber)): #creates the name of the folder "Match1", "Match2", etc.
        matchNumber=matchNumber + 1
    else:
        photos_destination = photos_dest+str(matchNumber)
        os.makedirs(photos_destination)
        for files in os.listdir('C:\\Users\\Felipe\\Desktop'):#only png files are moved
            if files.endswith(".png"):
                shutil.move(files, photos_destination)

sendPhotos()

Děkuji těm, kteří mi dali nějaké odpovědi! Opravdu jsem ocenil to!

Odpovězeno 30/12/2013 v 23:57
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more