Python'da kendi macera oyununuzu nasıl kodlarsınız?
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.
- Fantastik Raspberry Pi projeleri koleksiyonumuza göz atın (yeni sekmede açılır)
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ı
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
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
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
Ç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
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
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
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
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
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
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
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
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
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
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)
- Bu makaleyi beğendiniz mi? Linux bilginizi genişletin, kodunuzdan daha fazlasını elde edin ve Linux Formatındaki en son açık kaynak gelişmelerini keşfedin. Örnekleyicimizi bugün okuyun ve içindeki tekliften yararlanın. (yeni sekmede açılır)