Bir metin macera oyunu, programlamayı öğreniyorsanız üstlenebileceğiniz eğlenceli bir projedir. Python kullanarak bir metin macera oyunu yapabilir, bunu bir komut satırında çalıştırabilir ve oyuncunun girdiği metne göre hikayeyi değiştirebilirsiniz.
Python betiği, çeşitli temel programlama kavramlarını kapsayacaktır. Bu, print deyimlerini, if deyimlerini ve işlevleri içerir.
Python Komut Dosyası Nasıl Oluşturulur ve Hikaye İçeriği Eklenir
.py uzantılı standart bir metin dosyası kullanarak bir komut dosyası oluşturabilirsiniz. Python sözdizimine aşina değilseniz, onu daha hızlı öğrenmenize yardımcı olabilecek bazı temel Python örneklerine göz atın . Belirli görevleri gerçekleştirmek için diğer yararlı Python tek satırlıklarına da bakabilirsiniz .
Python dosyasının ana işlevinde, hikayenizi ve karşılama mesajınızı ayarlayın.
“AdventureGame.py” adlı yeni bir dosya oluşturun.
Dosyada, ana başlatma işlevini ekleyin. İşlev, oyuncuyu macera oyununa davet etmek için kısa bir açılış hikayesi içerecek. Daha sonra introScene() adlı başka bir işlevi çağıracaktır .
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()
Hikayede Birden Çok Sahne ve Seçenek Nasıl Oluşturulur
Hikayeniz birkaç sahne veya “oda” içerecektir. Oyuncu aynı odaya tekrar girerse daha sonra yeniden kullanabilmek için her sahne için bir işlev oluşturabilirsiniz.
Her sahnede nereye gidileceğine dair farklı seçenekler de olacaktır. Hikayenizin iyi organize edildiğinden emin olmak için senaryoları kodlamadan önce hikayenizin haritasını çıkarmak iyi bir fikirdir.
Python oyunundaki hikaye haritası
Her sahnede geçerli yönergelerin bir listesi ve oyuncunun izleyebileceği birden çok yol için bir if-ifadesi bulunur. Oyuncunun izlediği yola bağlı olarak program bir sonraki sahneyi çağırır.
Hikayede gerçekleşecek sahneler için işlevler oluşturun.
Ana işlevin üzerinde introScene() işlevini oluşturun . Oyuncunun yürüyebileceği bir mesaj ve yol tarifi ekleyin.
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.”)
Kullanıcının girişine bağlı olarak, program başka bir sahneyi çağıracaktır. Örneğin, oyuncu “left” yazarsa, program oyuncuya showShadow Figure() sahnesini gösterecektir . Bu odadan eğer oyuncu geriye doğru giderse oyun onları giriş sahnesine geri götürür. Sağa sola giderlerse ya başka bir odaya girecekler ya da çıkmaz sokağa girecekler.
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.”)
Sağa dönerlerse kamera sahnesini ekleyin. Oyuncunun çıkışlardan birini bulabileceği yer burasıdır. Oyunu sonlandırmak için quit() işlevini çağırın . Oyuncu ayrıca önceki sahneye geri gitmeyi de seçebilir.
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.”)
Macera oyununun başına döndüğünüzde, kalan sahneler için işlevleri eklemeniz gerekecek. Oyuncunun ilerlemeyi seçmesi durumunda perili Oda() sahnesini ekleyin . Bu aynı zamanda oyuncunun seçimine bağlı olarak oyunu da sonlandıracaktır.
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.”)
Ayrıca oyuna daha ilginç içerikler ekleyebilirsiniz. Dosyanın en üstünde “silah” adlı bir genel değişken oluşturun. Oyuncunun bulup bulmadığına bağlı olarak doğru veya yanlış olacaktır.
weapon = False
Odalardan birinde, oyuncu bulursa silah değişkenini true olarak ayarlayın. Oyuncu, gerekirse yan odada kullanabilir.
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.”)
Oyuncu silahı bulursa yan odadaki düşmanı öldürebilir ve başka bir çıkış bulabilir. Aksi takdirde düşman onları öldürür.
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.”)
Python Komut Dosyasını Çalıştırma
Komut dosyasını bir terminal veya komut istemi kullanarak çalıştırabilirsiniz. Terminale giriş yaptığınızda, hikaye bir sonraki sahneye ilerlemeye devam edecektir.
Bir terminal veya komut istemi kullanarak dosyayı kaydettiğiniz konuma gidin.
cd C:UsersSharlDesktopPython
Komut dosyasını çalıştırın.
python AdventureGame.py
Açılış mesajı sizi oyunu oynamaya başlamanız için karşılayacaktır.
Komut satırında Python Macera Oyunu
“Sol”, “sağ” veya “geri” gibi listelenen kullanılabilir seçenekler arasından yazın. Geçersiz bir giriş girerseniz, oyun sizden geçerli bir giriş isteyecektir.
Komut satırında Python Macera Oyunu
Ayrıca başka bir yol seçmek için oyunu tekrar oynayabilirsiniz.
Komut isteminde Macera Oyunu
Projenin kaynak kodunun tamamını bu GitHub deposundan indirebilirsiniz .
Tek Bir Python Komut Dosyası Kullanarak Basit Bir Oyun Yaratın
Bir Python komut dosyası kullanarak bir metin macera oyunu oluşturabilir ve onu bir terminalde veya komut satırında çalıştırabilirsiniz. Python dosyasının içinde, oyuncuya bir karşılama mesajı ve ilk hikaye sunabilirsiniz. Oyuncu daha sonra sunduğunuz seçeneklere göre eylemlerini yazabilir.
Daha kapsamlı bir Python geliştiricisi olmak istiyorsanız, Python ile kullanabileceğiniz veya entegre edebileceğiniz bazı yararlı araçlara göz atabilirsiniz.