Python'da kendi macera oyununuzu nasıl kodlarsınız?

01/18 2016
Python'da kendi macera oyununuzu nasıl kodlarsınız?
(Resim: © Gelecek)

Python'da kendi macera oyununuzu nasıl kodlarsınız?

Piton

Raspberry Pi (yeni sekmede açılır) harika bir teknolojidir, ancak birçok kişi onu tam potansiyeliyle kullanmaz. Raspberry Pi'nizle istediğiniz her şeyi yaratabilirsiniz - çevresini algılayan bir robot, film izlemek için bir medya merkezi veya bazı basit kod satırlarından ve sizin bol bol hayal gücünüzden yaratılan bir fantezi ve macera dünyası.

1980'lerde bilgisayar grafikleri, bloklu oyun karakterleri ve sınırlı bir renk paleti ile çalışmak için hala emekleme aşamasındaydı. Macera ve rol yapma oyunlarının, oyuncunun oyun dünyasının vizyonlarını oluşturmak için hayal gücünü kullanması ile tamamen metin odaklı olması çok yaygındı.

Zork gibi oyunlar, ilgi çekici hikayeler ve karakterlerle zengin dünyalar yarattı, ancak ortamları gösteren çok az grafik vardı. Bu durum 1980'lerin sonu ve 90'ların başına kadar böyle kaldı ve yalnızca Loom, Monkey Island ve Full Throttle gibi klasik grafik macera oyunlarından oluşan bir koleksiyon yaratan LucasArts'ın bazı harika çalışmaları nedeniyle değişti.

Bu öğretici için, kendi oyun dünyamız ve bu dünyada yaşayacak bazı karakterlerle kendi metin maceramızı yaratmak için Raspberry Pi'mizi ve Python adlı bir programlama dilini kullanacağız. Ve tüm bunlar, bazı Python kodları ve birkaç programlama konsepti kullanılarak oluşturulacak.

Python, öğrenmesi kolay bir programlama dilidir ve Birleşik Krallık'taki Raspberry Pi kullanıcıları ve okulları için sıkı bir favori haline gelmiştir.

Peki Python nedir?

Python metinsel bir programlama dilidir ve bununla bir editöre yazıldığını kastediyoruz. Python çok bağışlayıcı bir sözdizimi kullanır ve okunması çok kolaydır, bu da kodlamayı öğrenmeyi gerçekten eğlenceli bir deneyim haline getirir.

Raspberry Pi'de zaten standart olarak kurulu harika bir kod düzenleyicimiz var - buna IDLE deniyor ve oyunumuzu oluşturmak için onu kullanacağız. Raspberry Pi masaüstünde IDLE bağlantısı bulabilirsiniz.

Python, Raspbian işletim sistemini çalıştıran her Raspberry Pi'ye önceden yüklenmiş olarak gelir. Pi'nizde Raspbian kurulu değilse, Raspberry Pi web sitesinden (yeni sekmede açılır) bir kopya alabilirsiniz .

İndirilebilen ve daha sonra boş bir 4GB (veya daha büyük) SD karta çıkarılabilen, kullanımı kolay NOOBS (Kutudan Çıkan Yeni Yazılım) arşivinin bir parçasıdır.

Şu anda Python'un iki sürümü mevcuttur: sürüm 2.7 ve sürüm 3. Bu öğretici için, en fazla destek ve belgeye sahip olduğu için 2.7'yi kullanacağız. Python 3, öğrenmek için mükemmel bir dildir ve kesinlikle dilin geleceğidir, ancak şu anda bir değişim halindedir ve yalnızca deneyimli Python programcıları tarafından kullanılmalıdır.

Bir anlatı oluşturmak

Oyunumuzun iki şeye ihtiyacı var: oyuncuyu eğlendirecek bir hikaye ve hikayenin nasıl gelişeceğini kontrol edecek bir mantık. Hikayemiz için, sihrin ve maceranın her köşede olduğu Narule dünyasını yaratıyoruz. Ve biz bir kahraman yaratıyoruz – siz – diyarı gezmesi, yeni köyleri ve yerleşim yerlerini ziyaret etmesi ve bu diyar ve üzerindeki karanlık gölge hakkında daha fazla bilgi edinmek için insanlarla konuşması gerekiyor.

Projemize başlamak için, genişletebileceğiniz bazı anlatılar oluşturduk. Hikayeyi kendinize ait yapmaktan çekinmeyin - bu eğitimin tüm amacı budur. Bu senin oyunun. Başlamanız için, başlangıç ​​şablonu görevi görecek bazı kodlar oluşturduk. Ücretsiz bir kopyasını buradan indirebilirsiniz (yeni sekmede açılır) .

Kodu indirin, ardından IDLE'yi kullanarak açın ('Dosya > Aç' ve kodu indirdiğiniz yere gidin). Şimdi koda bir göz atın ve # ile başlayan tüm satırlara özellikle dikkat edin, çünkü bunlar koddaki açıklamalardır ve kodun o noktada ne yaptığını anlamanıza yardımcı olmak için eklenmiştir.

Şu anda kodumuzun üzerinde geliştirmemiz gereken temel bir hikayesi var ve bunu bu eğitim boyunca yapacağız. Hikayemiz, anlatımızı oluşturan metin blokları aracılığıyla ortaya çıkıyor ve her bloğun şuna benzediğini göreceksiniz:

1. bölüm = "Soğuk bir geceydi ve yağmur

sadece tanrıların bildiği bir gaddarlıkla batı"

Bunlara değişkenler denir ve çok sayıda metin veya sayı depolamamızı sağlarlar. Onları hikayemizi içermek için kullanırız ve sonra onları kullanmak istediğimizde yazdırma işlevini şu şekilde kullanırız:

Bölüm1'i yazdır

Yazdır işlevi değişkenin içine bakar ve içeriğini ekrana yazdırır, bu gerçekten kullanışlıdır ve hikayeyi yalnızca bir kez yazmamız gerektiği ve onu istediğimiz kadar tekrar kullanabileceğimiz anlamına gelir.

Programlama kavramları

Piton

Python, öğrenmesi gerçekten harika bir dil çünkü anlaşılması çok kolay ve Python ile programlama mantığı kavramlarında ustalaştığınızda, daha büyük uygulamalar geliştirme yolunda emin adımlarla ilerleyeceksiniz.

Hangi dili kullanırsanız kullanın, kodlamanın altında yatan kavramlar birçok dilde kullanılabilecek sağlam bir temel sağlar. Ana kavramlar şunlardır:

Diziler

Belirli bir sırayla tamamlanması gereken bir dizi görev. Örneğin, bir labirenti çözmek için gereken adımlar.

döngüler

Bir diziyi tekrarlamanın bir yolu. Sonsuza kadar çalıştırılabilir (True iken) veya bir for ifadesi kullanılarak kontrol edilebilir (x in range(0,3) için).

paralellik

Aynı anda birden fazla kod dizisi çalıştırmak.

Olaylar

Bir olay, bir kod dizisini başlatan bir tetikleyicidir ve oluşturduğumuz oyundaki en görünür olay, oyunu başlatmak için kahramanımızın adını girmektir.

Veri

Kahramanımızın adının değerini depolamak için bir değişken kullanıyoruz ve daha sonra oyun deneyimini kişiselleştirmek için oyun boyunca oyuncunun adını göstermek için değişkeni alıp manipüle edebiliyoruz.

Şartlılar

Koşullu ifadeler, mantığımızın temelini oluşturur ve verileri oyuncunun verdiği girdiyle karşılaştırmamız için bir yöntem sağlar. Oyunumuzda verilen cevabı beklenen cevapla karşılaştırmak için koşul ifadeleri kullandık. Eşleşirlerse, Boole mantığında bu DOĞRU olarak sınıflandırılır.

Operatörler

Bunlar okulda öğrendiğimiz temel matematik kurallarıdır. Metin ve sayılara işleçler uygulayabiliriz, bu da kodumuzda hesaplamalar yapmamızı ve gerekirse verileri yinelememizi sağlar.

1. Oyunu oyna

Piton

IDLE'de çalışmak için iki pencere vardır: kodumuzu içeren editör ve oyunumuzun oynandığı bir kabuk. Oyunu başlatmak için düzenleyicide 'Çalıştır'ı ve ardından 'Modülü Çalıştır'ı tıklayın.

Kabuk penceresi her pencerenin önünde görünür ve oyunumuz oynamaya başlar.

2. Modülleri içe aktarın

Piton

Diğer kodlayıcılar tarafından oluşturulan modüller kodunuza aktarılabilir. İki modülü içe aktarıyoruz: Karakterimiz için rastgele seçim yapmamızı sağlayan kodu içeren Random; ve zamanla çalışmamızı ve oyunu duraklatmamızı sağlayan Zaman.

3. İşlevler oluşturun

Piton

Çok sayıda kodu bir işlevde gruplandırabilirsiniz. Bir tane oluşturmak için def name()'i kullanırız: – bu, name adlı bir işlev oluşturur ve işlevi istediğimiz gibi çağırabiliriz.

[Enter]'a basıyoruz ve Python kodumuzu dört boşluk girintilendiriyor ve bu fonksiyonda çalıştırılacak kodu bekliyor.

4. Değişkenleri kullanın

Piton

Daha sonra kullanabileceğimiz bilgileri depolamak için değişkenleri kullanırız. Örneğin, anlatımızı kaydedip birçok kez yeniden kullanırız. Değişkenleri boş kutular olarak düşünün - içlerine her şeyi koyabilir ve yanlarına isimlerini yazabiliriz.

Bazı değişken adlarında 'global' teriminin kullanıldığını göreceksiniz; bu onları fonksiyonların içinde ve dışında kullanmamızı sağlar.

5. Girdi alın

Piton

Ham girdi, oynatıcıdan girdi istemenin Python yoludur. Oyuncunun adını ve oyundaki kararlarını yakalamak için kullanıyoruz.

Ham girdi, klavye girdisini bir metin dizisi olarak yakalar, böylece yakalanan tüm sayıların bir tamsayıya veya kayan sayıya dönüştürülmesi gerekir ve bu, int() ve float() yardımcı işlevleri kullanılarak yapılabilir.

6. Seçimler yapın

Piton

Koşullu ifadeler mantıksal seçimlerdir; onları oyunun akışını kontrol etmek için kullanıyoruz - örneğin, hangi yöne gidiyorsunuz?

Oyuncunun gitmek istediği yönü move adı verilen bir değişken olarak saklarız, ardından değişkende saklanan değeri kullanıcıdan basmasını istediğimiz tuşla karşılaştırırız. Eğer ikisi eşleşirse ilgili kod çalıştırılır.

7. Else ve else if

Piton

if..elif..else diğer koşullu ifadelerdir ve şu şekilde çalışırlar: ilk koşula bakılır ve bu doğruysa (veya Python'da doğruysa), bu koşulun altındaki kod çalıştırılır. Aksi takdirde (elif) bu koşul doğruysa, bu ifade için kod çalıştırılır.

Aksi takdirde, yukarıdaki koşulların tümü yanlışsa, bu doğru olmalıdır, bu nedenle bu kod çalıştırılır.

8. Kullanım listeleri

Piton

Listeler, çok sayıda veri tutabilen büyük kaplardır. Onları belgelerle dolu bir dosya dolabı olarak düşünün. Oyunumuzda, eşya envanterimizi (kılıç ve kalkanımız) depolamak için bir liste kullandık.

Öncelikle şunu kullanarak boş bir liste oluşturuyoruz:

"silahlar = []"

Tıpkı değişkenler gibi, listemize de istediğimiz ismi verebiliriz. Listemize eklemek için şunları kullanıyoruz:

silahlar.append("kılıç")

9. Bir numara seçin

Piton

Rastgele sayılar, kahramanımızın tamamen benzersiz olmasına yardımcı olur. Bu sayıları rasgele seçmek için, rasgele modülünü, özellikle de randint veya rasgele tamsayı adı verilen bir işlevi kullanırız.

Randint'i kullanmak için, ona hangi sayı aralığında çalışacağını söylemeliyiz ve bu şu şekilde yapılır:

randevu(5,20)

Bu, 5 ile 20 arasında bir aralık oluşturur ve Randint'ten bu aralıkta rastgele bir sayı seçmesini ister.

10. İnsanları tanıtın

Piton

Oyunumuzun konuşacak ilginç insanlara ihtiyacı var, o yüzden bir tane oluşturalım. Kodun 57. satırında rastgele bir köylüyü işleyen yeni bir fonksiyonumuz olduğunu göreceksiniz.

Adları rastgeledir ve bir listeden seçilir, ancak önce listeyi karıştırırız ve ardından listeden Python'da her zaman 0 (sıfır) veya npcnamechoice[0] olan ilk öğeyi seçeriz.

11. Hikayeyi genişletin

Piton

Oyununuza yeni içerik eklemek kolaydır. Yeni karakterler veya köylüler eklemek istiyorsanız, en iyi yol yeni bir işlev oluşturmaktır. Bu şekilde, her yeni girişin kodu kendi işlevinde bulunur, ancak oyununuzda kolayca kullanılabilir.

Anlatınız bu işlevleri bir araya getirmeli ve oyuncunun takip etmesi için doğrusal bir hikaye sağlamalıdır.

12. Bir dövüş seçin

Piton

Peki ya savaş? Düşmanlar, köylülerle aynı şekilde yaratılabilir, ancak belki de tıpkı kahramanınıza verdiğiniz gibi, onlara rastgele atanmış sağlık ve büyü puanları (macera dilinde HP ve MP) vermek isteyebilirsiniz.

Düşman içeren yeni bir işlev oluşturun ve onu belirli bir noktada kodunuza yerleştirin, ardından kodunuzu test edin.

13. Dizeleri ve sayıları birleştirin

Piton

Metinle veya Python diliyle dizelerle çalışırken, bir diziyi ve bir sayıyı birlikte birleştirmek isteyebiliriz. Bunu şu şekilde yapmaya çalışırsak:

"Merhaba" yazdır + 1

Python, ikisinin birleştirilemeyeceğini söyleyen bir hata üretir. Ancak tamsayıyı str() adlı bir yardımcı işleve sararsak, ikisini şu şekilde birleştirebiliriz:

yazdır "Merhaba" + str(1)