Oyun Yapımı -1

Arada sırada Python bilgimi tazelemek için boş işlerle uğraşırım. Bu da uğraştığım boş işlerden birisi. Oyun programlamaya girdiğinizde tüm oyunların birer döngüden ibaret olduğunu göreceksiniz. En basitinden tutunda en karmaşık oyunlara kadar hepsi döngüler üzerine kuruludur. Zaten çoğunda Panda3d yazılarında bahsettiğim gibi loop() fonksiyonu gibi fonksiyonlar kullanırsınız. Hazır bir oyun motoru kullanırsanız bu fonksiyonlar önceden tanımlanmış olur, kullanmazsanız da verdiğim örnekteki gibi döngüleri kendiniz hazırlamak zorundasınız.

Örnekte önce kullanıcıdan karakteri için bazı bilgiler isteniyor. İki tanesini kullanmış olduk. Sonra aldığımız bu değerleri işleyip hazırladığımız rakip değerler ile işleme tabi tutuyoruz. Mesela burada canavar diye bir nesne oluşturdum. Bu ileride şöyle geniş bir tüp içinde belli sayıda nesne olabilir ve bu nesneler içerisinden karakter karşısına rastgele bir rakip çıkarabiliriz. Neyse yaptığımız işlem toplama ve çıkarmadan ibaret while döngüsüyle ölene kadar çıkartma yapıyoruz eğer rakiplerden birisinin canı sıfıra inerse işlemi kesip sonucu bildiriyoruz.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

print "Karakter yaratım işlemi başlamak üzere, gireceğiniz değerlerin toplamı 20 olmalı"
zeka = raw_input("Zeka puanı: ")
guc = raw_input("Güç puanı: ")
karizma = raw_input("Karizma puanı: ")
ceviklik = raw_input("Çeviklik puanı: ")
can = raw_input("Can puanı: ")
toplam = int(zeka)+int(guc)+int(karizma)+int(ceviklik)+int(can)

if toplam == 20:
print "işlem başarılı."
canavar = 20
sal = 2
saglik = int(can) * 5

print "deneme savaşı başlatılıyor..."
while saglik > 0:
  saglik = int(saglik) - int(sal)
  print "canınız %s'e indi" % saglik
  canavar = int(canavar) - int(guc)
  print "canavarın canı %s'e indi" % canavar
  if saglik == 0:
    print "öldünüz ühühü"
    break
  elif canavar == 0:
    print "kazandınız ohh yeahhh"
    break
  else:
    continue

else:
print "işlem başarısız."