برنامه نویسی پایتون خود را با پردازش متن و تصمیم گیری ساده برای ایجاد یک بازی قابل پخش تمرین کنید.
یک بازی ماجراجویی مبتنی بر متن پایتون یک پروژه سرگرمکننده است که اگر در حال یادگیری برنامهنویسی هستید، میتوانید آن را انجام دهید. می توانید با استفاده از پایتون یک بازی ماجراجویی متنی بسازید، آن را در خط فرمان اجرا کنید و داستان را بر اساس متنی که بازیکن وارد می کند تغییر دهید.
اسکریپت پایتون برای یک بازی ماجراجویی پایتون انواع مختلفی از مفاهیم اساسی برنامه نویسی را پوشش می دهد. این شامل عبارات چاپی، عبارات if و توابع است.
نحوه ایجاد اسکریپت پایتون برای بازی ماجراجویی متنی و اضافه کردن محتوای داستانی
شما می توانید با ایجاد یک اسکریپت با استفاده از یک فایل متنی استاندارد با پسوند py، یک بازی ماجراجویی مبتنی بر متن در پایتون بسازید. اگر با سینتکس پایتون آشنایی ندارید، به چند نمونه پایه پایتون نگاهی بیندازید که ممکن است به شما در یادگیری سریعتر آن کمک کند.
سورس کد کامل بازی ماجراجویی پایتون را می توانید از اینجا دانلود کنید
مخزن GitHub
.
همچنین می توانید قبل از شروع بازی ماجراجویی پایتون، به سایر تک لاینرهای مفید پایتون برای انجام وظایف خاص نگاه کنید.
در تابع اصلی فایل پایتون، استوری و پیام خوشامدگویی خود را تنظیم کنید.
- یک فایل جدید به نام AdventureGame.py ایجاد کنید تا کد بازی ماجراجویی پایتون خود را ذخیره کنید.
- در فایل، تابع شروع اصلی را اضافه کنید. این عملکرد شامل یک داستان آغازین کوتاه برای خوش آمدگویی بازیکن به بازی ماجراجویی مبتنی بر متن پایتون است. سپس تابع دیگری به نام introScene().if __name__ == “__main__”: در حالی که True: print («به بازی ماجراجویی خوش آمدید!») print («به عنوان یک مسافر مشتاق، تصمیم گرفتهاید از دخمههای پاریس دیدن کنید.» .”) print (“اما، در طول کاوش خود را گم می کنید.”) print (“شما می توانید انتخاب کنید که در چند جهت راه بروید تا راهی برای خروج پیدا کنید.”) print (“بیایید با نام شما شروع کنیم: “) نام = input() print (“موفق باشید، ” +name+ “.”) introScene()
if __name__ == "__main__":
while True:
print("Welcome to the Adventure Game!")
print("As an avid traveler, you have decided to visit the Catacombs of Paris.")
print("However, during your exploration, you find yourself lost.")
print("You can choose to walk in multiple directions to find a way out.")
print("Let's start with your name: ")
name = input()
print("Good luck, " +name+ ".")
introScene()
نحوه ایجاد چندین صحنه و گزینه در استوری برای بازی ماجراجویی پایتون
داستان بازی ماجراجویی مبتنی بر متن شامل چندین صحنه یا “اتاق” خواهد بود. میتوانید برای هر صحنه از بازی ماجراجویی پایتون یک تابع ایجاد کنید تا اگر بازیکن دوباره وارد همان اتاق شد، بتوانید بعداً از آن استفاده کنید.
هر صحنه همچنین انتخاب های متفاوتی برای رفتن دارد. ایده خوبی است که قبل از کدنویسی سناریوها، داستان خود را ترسیم کنید تا مطمئن شوید که داستان بازی ماجراجویی مبتنی بر متن شما به خوبی سازماندهی شده است.
هر صحنه برای بازی متنی پایتون دارای فهرستی از جهتهای معتبر و یک بیانیه اگر برای مسیرهای متعددی است که بازیکن میتواند طی کند. بسته به مسیری که بازیکن در بازی ماجراجویی پایتون شما طی می کند، اسکریپت صحنه بعدی را فراخوانی می کند.
برای صحنه هایی که در بازی ماجراجویی پایتون شما اتفاق می افتد توابعی ایجاد کنید.
- تابع introScene() را بالای تابع main ایجاد کنید. یک پیام و مسیرهایی که بازیکن میتواند در آن راه برود، اضافه کنید. از چهار راهرو میخواهید به کجا بروید؟) userInput = “” در حالی که userInput در جهتها نیست: print(“گزینهها: چپ/راست/عقب/به جلو”) userInput = input() اگر userInput == «چپ» . : چاپ (“لطفا یک گزینه معتبر برای بازی ماجراجویی وارد کنید.”)
- بسته به ورودی کاربر، بازی ماجراجویی پایتون شما صحنه دیگری را فراخوانی می کند. به عنوان مثال، اگر بازیکن تایپ کند “left”، بازی ماجراجویی صحنه showShadowFigure() را به بازیکن نمایش می دهد. از این اتاق، اگر بازیکن به عقب برود، بازی ماجراجویی پایتون او را به صحنه مقدماتی بازمی گرداند. اگر به چپ یا راست بروند، یا وارد اتاق دیگری میشوند یا به بنبست میرسند. کجا میخواهید بروید؟) userInput = “” در حالی که userInput در جهتها نیست: print(“گزینهها: راست/چپ/عقب”) userInput = input() if userInput == «راست»: camera ) elif userInput == “left”: print (“شما متوجه می شوید که این در به دیوار باز می شود.”) elif userInput == “backward”: introScene() print (“لطفا یک گزینه معتبر برای بازی ماجراجویی وارد کنید. “)
- برای رسیدگی به حالتی که پخشکننده به راست میپیچد، صحنه دوربین را اضافه کنید. اینجاست که می توانند یکی از راه های خروجی را پیدا کنند. برای پایان دادن به بازی ماجراجویی مبتنی بر متن پایتون، تابع quit() را فراخوانی کنید. پخش کننده همچنان می تواند به سمت عقب به صحنه قبلی حرکت کند.def cameraScene(): directions = [“forward”, “backward”] print(“شما دوربینی را می بینید که روی زمین افتاده است. شخصی اخیراً اینجا بوده است. کجا میخواهید بروید؟) userInput = “” در حالی که userInput در جهتها نیست: print(“گزینهها: جلو/عقب”) userInput = input() if userInput == “Forward”: print (“شما موفق شدید! شما یک خروجی پیدا کردید.”) quit() elif userInput == “backward”: showShadowFigure() else: print (“لطفا یک گزینه معتبر برای بازی ماجراجویی وارد کنید.”)
- به ابتدای بازی ماجراجویی بازگردید، همچنان باید عملکردهای صحنه های باقی مانده را اضافه کنید. صحنه ()hauntedRoom را برای موردی که بازیکن انتخاب می کند به جلو برود اضافه کنید. این همچنین بسته به انتخاب بازیکن، بازی ماجراجویی پایتون را به پایان میرساند.def hauntedRoom(): directions = [“راست”، “چپ”، “عقب”] print(“صدای عجیبی میشنوید. فکر میکنید برخی از آنها را بیدار کردهاید. کجا میخواهید بروید؟) userInput = “” در حالی که userInput در جهتها نیست: print(“گزینهها: راست/چپ/عقب”) userInput = input() if userInput == «راست»: print («چندین») وقتی وارد اتاق میشوید، موجودات گول مانند شروع به ظهور میکنند.”) quit() elif userInput == “left”: print (“شما موفق شدید! خروجی پیدا کردید.”) quit() elif userInput. == “backward”: introScene() other: print (“لطفا یک گزینه معتبر برای بازی ماجراجویی وارد کنید.”)
- همچنین می توانید محتوای جالب تری را به بازی ماجراجویی مبتنی بر متن پایتون خود اضافه کنید. یک متغیر سراسری، در بالای فایل، به نام “سلاح” ایجاد کنید. بسته به اینکه بازیکن آن را پیدا کند یا درست یا نادرست خواهد بود.weapon = False
- در یکی از اتاق ها، اگر بازیکن آن را پیدا کرد، متغیر اسلحه را روی true تنظیم کنید. بازیکن میتواند در صورت نیاز از آن در اتاق بعدی استفاده کند.def showSkeletons(): directions = [“backward”, “forward”] global weapon print(“هنگامی که وارد اتاق میشوید دیواری از اسکلتها را میبینید. شخصی در حال تماشای شماست. کجا میخواهید بروید؟) userInput = “” در حالی که userInput در جهتها نیست: print(“گزینهها: چپ/عقب/جلو”) userInput = input() if userInput == «چپ»: print («شما پیدا میکنید.» که این در به دیوار باز میشود تا یک چاقو را کشف کنید.”) سلاح = True elif userInput == “backward”: introScene() elif userInput == “forward”: (موجود عجیب و غریب) “لطفا یک گزینه معتبر برای بازی ماجراجویی وارد کنید.”)
- اگر بازیکن سلاح را پیدا کند، می تواند دشمن را در اتاق بعدی بکشد و خروجی دیگری پیدا کند. در غیر این صورت، دشمن آنها را خواهد کشت.def strangeCreature(): actions = [“جنگ”، “فرار”] سلاح جهانی چاپ (“موجود عجیبی شبیه گول ظاهر شد. می توانید با آن بدوید یا بجنگید. چه می خواهید انجام شود؟) userInput = “” در حالی که userInput در اقدامات نیست: print(“گزینهها: فرار/جنگ”) userInput = input() if userInput == “جنگ”: اگر سلاح: چاپ کنید (“شما گول را بکشید” چاقویی که زودتر پیدا کردید، یکی از راههای خروج را پیدا میکنید!») print (“موجودات گول مانند شما را کشته است.”) quit() elif userInput == “Fee”: else: چاپ (“لطفا یک گزینه معتبر برای بازی ماجراجویی وارد کنید.”)
def introScene():
directions = ["left", "right", "forward"]
print("You are at a crossroads, and you can choose to go down any of the four hallways. Where would you like to go?")
userInput = ""
while userInput not in directions:
print("Options: left/right/backward/forward")
userInput = input()
if userInput == "left":
showShadowFigure()
elif userInput == "right":
showSkeletons()
elif userInput == "forward":
hauntedRoom()
elif userInput == "backward":
print("You find that this door opens into a wall.")
else:
print("Please enter a valid option for the adventure game.")
def showShadowFigure():
directions = ["right", "backward"]
print("You see a dark shadowy figure appear in the distance. You are creeped out. Where would you like to go?")
userInput = ""
while userInput not in directions:
print("Options: right/left/backward")
userInput = input()
if userInput == "right":
cameraScene()
elif userInput == "left":
print("You find that this door opens into a wall.")
elif userInput == "backward":
introScene()
else:
print("Please enter a valid option for the adventure game.")
def cameraScene():
directions = ["forward", "backward"]
print("You see a camera that has been dropped on the ground. Someone has been here recently. Where would you like to go?")
userInput = ""
while userInput not in directions:
print("Options: forward/backward")
userInput = input()
if userInput == "forward":
print("You made it! You've found an exit.")
quit()
elif userInput == "backward":
showShadowFigure()
else:
print("Please enter a valid option for the adventure game.")
def hauntedRoom():
directions = ["right", "left", "backward"]
print("You hear strange voices. You think you have awoken some of the dead. Where would you like to go?")
userInput = ""
while userInput not in directions:
print("Options: right/left/backward")
userInput = input()
if userInput == "right":
print("Multiple goul-like creatures start emerging as you enter the room. You are killed.")
quit()
elif userInput == "left":
print("You made it! You've found an exit.")
quit()
elif userInput == "backward":
introScene()
else:
print("Please enter a valid option for the adventure game.")
weapon = False
def showSkeletons():
directions = ["backward", "forward"]
global weapon
print("You see a wall of skeletons as you walk into the room. Someone is watching you. Where would you like to go?")
userInput = ""
while userInput not in directions:
print("Options: left/backward/forward")
userInput = input()
if userInput == "left":
print("You find that this door opens into a wall. You open some of the drywall to discover a knife.")
weapon = True
elif userInput == "backward":
introScene()
elif userInput == "forward":
strangeCreature()
else:
print("Please enter a valid option for the adventure game.")
def strangeCreature():
actions = ["fight", "flee"]
global weapon
print("A strange goul-like creature has appeared. You can either run or fight it. What would you like to do?")
userInput = ""
while userInput not in actions:
print("Options: flee/fight")
userInput = input()
if userInput == "fight":
if weapon:
print("You kill the goul with the knife you found earlier. After moving forward, you find one of the exits. Congrats!")
else:
print("The goul-like creature has killed you.")
quit()
elif userInput == "flee":
showSkeletons()
else:
print("Please enter a valid option for the adventure game.")
نحوه اجرای اسکریپت پایتون برای بازی ماجراجویی مبتنی بر متن
می توانید اسکریپت بازی مبتنی بر متن پایتون را با استفاده از ترمینال یا خط فرمان اجرا کنید. همانطور که ورودی را وارد ترمینال می کنید، داستان به سمت صحنه بعدی بازی ماجراجویی پایتون پیش می رود.
- با استفاده از ترمینال یا خط فرمان، به مکانی که فایل را برای بازی ماجراجویی پایتون خود ذخیره کرده اید بروید.cd C:\Users\Sharl\Desktop\Python
- برای شروع بازی ماجراجویی مبتنی بر متن پایتون، اسکریپت را اجرا کنید.python AdventureGame.py
- پیام آغازین به شما برای شروع بازی ماجراجویی پایتون خوش آمد می گوید.
- از گزینه های موجود لیست شده، مانند “چپ”، “راست” یا “عقب” تایپ کنید. اگر یک ورودی نامعتبر وارد کنید، بازی ماجراجویی پایتون از شما یک ورودی معتبر می خواهد.
- همچنین می توانید بازی ماجراجویی پایتون مبتنی بر متن را مجدداً اجرا کنید تا مسیر دیگری را انتخاب کنید.
cd C:\Users\Sharl\Desktop\Python
python AdventureGame.py
با استفاده از یک اسکریپت پایتون یک بازی ماجراجویی ساده مبتنی بر متن ایجاد کنید
می توانید با استفاده از اسکریپت پایتون یک بازی ماجراجویی مبتنی بر متن پایتون ایجاد کنید و آن را در خط فرمان اجرا کنید. در داخل بازی ماجراجویی پایتون، می توانید پیام خوشامدگویی و داستان اولیه را به بازیکن ارائه دهید. سپس بازیکن می تواند اقدامات خود را بر اساس گزینه هایی که در بازی ماجراجویی پایتون ارائه می دهید تایپ کند.
اگر میخواهید به یک توسعهدهنده پایتون قویتر تبدیل شوید، پروژههای دیگری غیر از یک بازی ماجراجویی مبتنی بر متن وجود دارد. میتوانید نگاهی به برخی از ابزارهای مفیدی که میتوانید با پایتون استفاده یا ادغام کنید، بیاندازید.