मैं एक स्टेज टाइप गेम बनाने की कोशिश कर रहा हूं जहां खिलाड़ी "गचा" नामक यादृच्छिक ड्रॉ मशीन का उपयोग करके वर्ण एकत्र करता है। खिलाड़ी खेल खेलकर अर्जित की गई इन-गेम मुद्रा खर्च करके एक गचा खरीद सकता है। मैंने अभी गेम बनाना शुरू किया है और मैं इसे इस तरह से बनाता हूं जैसे गेम कमांड चलाता है
adventure()
और मैंने "साहसिक ()" को परिभाषित किया है
def adventure():
print(f'you are currentyly on stage {player_stage}')
print('[a]play / [b]edit team / [c]change stage / [d]exit')
print('player team:')
for i,character in enumerate(player_team, 1):
print(i, character)
player_input = input('> ')
if player_input == 'd':
return (whatever I have to return after playing)
elif player_input == 'c':
change_stage()
मान लें कि खिलाड़ी मंच 4-5 (अध्याय 4, चरण 5) पर है और जब खिलाड़ी पिछले चरणों को फिर से खेलने के लिए मंच को बदलना चाहता है, तो मैं कोड प्रदर्शित करना चाहता हूं
4-1 (available)
4-2 (available)
4-3 (available)
4-4 (available)
4-5 (available)
4-6 (unavailable)
4-7 (unavailable)
4-8 (unavailable)
4-9 (unavailable)
4-10 (unavailable)
क्योंकि प्रति अध्याय 10 चरण हैं। मैंने खिलाड़ी_टीम को परिभाषित किया है:
player_team = [
f'{Fore.WHITE}Academy Naruto{Style.RESET_ALL} [1 star]',
f'{Fore.WHITE}1% Deku{Style.RESET_ALL} [1 star]',
f'{Fore.WHITE}Academy Sakura{Style.RESET_ALL} [1 star]'
और मैंने खिलाड़ी_स्टेज को परिभाषित किया है
player_front_stage = 1
player_back_stage = 1
player_stage = f'{player_front_stage}-{player_back_stage}'
फ्रंट_स्टेज का अर्थ है अध्याय और बैक_स्टेज अर्थ स्टेज मैं चेंज_स्टेज () को परिभाषित कर सकता हूं
def change_stage():
if player_front_stage == 1:
if player_back_stage == 1:
print('1-1 (available)')
print('1-2 (unavailable)')
print('1-3 (unavailable)')
print('1-4 (unavailable)')
print('1-5 (unavailable)')
print('1-6 (unavailable)')
print('1-7 (unavailable)')
print('1-8 (unavailable)')
print('1-9 (unavailable)')
print('1-10 (unavailable)')
elif player_back_stage == 2:
print('1-1 (available)')
print('1-2 (available)')
print('1-3 (unavailable)')
print('1-4 (unavailable)')
print('1-5 (unavailable)')
print('1-6 (unavailable)')
print('1-7 (unavailable)')
print('1-8 (unavailable)')
print('1-9 (unavailable)')
print('1-10 (unavailable)')
elif player_back_stage == 3:
... (keep going until 1-10 is available)
elif player_front_stage == 2:
... (same thing as player_front_stage 1)
लेकिन यह बहुत लंबा होगा और मुझे यकीन है कि इस कोड को कम करने का कोई तरीका होगा जैसे
check what stage player is on,
print the stages on that chapter only,
put available next to stages that are <= to player_back_stage,
put unavailable to rest.
अगर आपको मेरा पूरा कोड चाहिए
from colorama import Fore
from colorama import Style
def game():
print('[he]list of commands')
command_list = [
'[help/he]list of commands',
'[balance/ba] player balance',
'[adventure/ad] go clear stagse'
]
player_coin = 10000
player_gem = 500
player_front_stage = 1
player_back_stage = 1
player_stage = f'{player_front_stage}-{player_back_stage}'
player_team = [
f'{Fore.WHITE}academy naruto{Style.RESET_ALL} [1 star]',
f'{Fore.WHITE}1% deku{Style.RESET_ALL} [1star]',
f'{Fore.WHITE}Academy sakura{Style.RESET_ALL} [1 star]'
]
def he():
for i,command in enumerate(command_list, 1):
print(i, command_list)
def ba():
print(f' player coin: {Fore.YELLOW}{player_coin}{Style.RESET_ALL}')
print(f' player gem: {Fore.BLUE}{player_gem}{Style.RESET_ALL}')
def change_stage():
what do i put here
def ad():
print(f'스테이지 {player_stage}')
print('[a]플레이 / [b]팀변경 / [c]스테이지 변경 / [d]나가기')
print('플레이어 팀 :')
for i,character in enumerate(player_team, 1):
print(i, character)
player_input = input('> ')
if player_input == 'd':
return
elif player_input == 'c':
change_stage()
while True:
player_input = input('> ')
if player_input == 'he':
he()
elif player_input == 'ba':
ba()
game()
1 उत्तर
आप इस तरह किसी प्रकार की स्ट्रिंग बनाने का उपयोग कर सकते हैं:
def printOptions(front,back):
for k in range(1,11):
if k<=back:
print('%s-%s (available)'%(front,back))
else:
print('%s-%s (unavailable)'%(front,back))
कोट्स के अंदर %s को क्रमशः %(फ्रंट, बैक) मानों से बदल दिया जाता है।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
for i in range(0, 10): print(i)