मैं प्रोग्रामिंग में नया हूं और टेक्स्ट आधारित एडवेंचर गेम बनाने की कोशिश कर रहा था। मैं एक बचत प्रणाली लागू करना चाहता हूं जहां खिलाड़ी खेल के दौरान कभी भी बचत करने में सक्षम हों, और कहानी को जारी रखें जहां से उन्होंने छोड़ा था। इसके लिए महत्वपूर्ण प्रासंगिक चरों को भी सहेजना होगा। मैंने इस तरह से एक सेव फंक्शन बनाने के बारे में सोचा है:

 def save():
    pickle.dump(race,open(r'C:\Users\%username%\Desktop\test\race.dat','wb'))
    print("Saved!")
    return

यह उन चरों के लिए काम करेगा जो पूरी कहानी में स्थायी रूप से मौजूद रहेंगे, जैसे सोना, स्वास्थ्य आदि, लेकिन यह कहानी के माध्यम से प्रगति के लिए काम नहीं करता है। अगर मैं चाहता हूं कि खिलाड़ी उस कहानी को जारी रखने में सक्षम हो जहां उन्होंने छोड़ा था तो मैं यह कैसे कर सकता हूं? धन्यवाद!

कहानी के माध्यम से आगे बढ़ने से मेरा मतलब कुछ इस प्रकार है:

    import pickle
import os
#defining save, add any variables to this that you want to save following the same format
def save():
    pickle.dump(race,open(r'C:\Users\%username%\Desktop\test\race.dat','wb'))
    print("Saved!")
    return
#checking if a save file already exists
race_exist=os.path.isfile(r'C:\Users\%username%\Desktop\test\race.dat')
#if the save file exists, start from here
if race_exist==True:
    race=pickle.load(open(r'C:\Users\%username%\Desktop\test\race.dat','rb'))
    if race=='human':
        direction=input("You arrive at a crossroads during your travel, would you like to go left or right")
        if direction=='save':
            save()
    else:print('someone stabbed you because theyre racist.')
#if save file does not exist, start from here:
elif race_exist==False:
    race=input("Are you an orc or human?")
    pickle.dump(race,open(r'C:\Users\%username%\Desktop\test\race.dat','wb'))
    if race=='orc':
        print("People dislike orcs, you get stabbed during your sleep and die!")
    elif race=='human':
        direction=input("You arrive at a crossroads during your travel, would you like to go left or right")
        if direction=='save':
            save()

यहां पूरी कहानी में प्रगति इस प्रकार है, जैसे, वे चौराहे पर आ रहे हैं, तय कर रहे हैं कि कहां जाना है आदि, उदाहरण के लिए, यदि खिलाड़ी बाएं जाने का फैसला करता है, तो खेल को बचाता है, जब वह वापस आता है तो मैं चाहता हूं कि वह कहानी को जारी रखने में सक्षम हो। जहां से उसने छोड़ दिया (चौराहे पर बाएं जा रहा था) बजाय इसके कि उसे अपनी दौड़ और दिशा फिर से चुनकर सभी तरह से वापस शुरू करना पड़े। धन्यवाद!

1
sanguine 16 अगस्त 2020, 15:27

1 उत्तर

सबसे बढ़िया उत्तर

एक शब्दकोश का उपयोग करना एक अच्छी बात होगी।

आप ऐसा एक बना सकते हैं।

events = {
    "first_crossing": false // choice made at first crossing
}

इसके बाद, डेटा के लिए वेरिएबल की जांच करें।

        direction = events["first_crossing"]
        if !direction: # if direction has not been chosen
            direction=input("You arrive at a crossroads during your travel, would you like to go left or right")

फिर, यदि मान बदलता है, तो ईवेंट को अपडेट करें।

events["first_direction"] = direction

उदाहरण के लिए, आप इस तरह से कई प्रकार के डेटा स्टोर कर सकते हैं।

events = {
    "chapter1": {
        "completed_tutorial1": false,
        "completed_event1": fasle,
        ...
    },
   ...
}

इस चर को सहेजना सुनिश्चित करें।

0
The Otterlord 16 अगस्त 2020, 13:07