Python’da Boolean Mantığı: Ghost Gobble Arcade Game Alıştırması


Python öğrenirken karşılaştığımız ilk önemli konulardan biri mantıksal (Boolean) değerlerdir. Exercism platformundaki “Ghost Gobble Arcade Game” alıştırması da bu konuyu eğlenceli bir Pac-Man senaryosu üzerinden öğretmektedir.  

Bu alıştırmada amaç, Pac-Man’in oyun içerisindeki bazı durumlarını Boolean ifadeler kullanarak belirlemektir.

Kaynak: https://exercism.org/tracks/python/exercises/ghost-gobble-arcade-game

Boolean Nedir?

Python’da Boolean veri tipi yalnızca iki değer alabilir:

True
False

Bu değerler genellikle bir koşulun doğru veya yanlış olduğunu ifade etmek için kullanılır.

Örneğin:

is_raining = True
is_sunny = False

Boolean ifadelerde üç temel operatör kullanılır:

OperatörAnlamı
andVE
orVEYA
notDEĞİL

Örnek:

True and True # True
True and False # False
True or False # True
False or False # False
not True # False
not False # True

Oyun Senaryosu

Pac-Man oyununda aşağıdaki kurallar bulunmaktadır:

  • Güç hapı (Power Pellet) alan Pac-Man hayaletleri yiyebilir.
  • Nokta (Dot) veya güç hapı topladığında puan kazanır.
  • Hayalete dokunursa kaybedebilir.
  • Tüm noktaları toplarsa oyunu kazanabilir.

Bu kuralları Python fonksiyonları ile modelleyeceğiz.  


1. Pac-Man Hayalet Yiyebilir mi?

Pac-Man’in hayalet yiyebilmesi için iki şartın aynı anda sağlanması gerekir:

  • Güç hapı aktif olmalı.
  • Hayalete temas ediyor olmalı.
def eat_ghost(power_pellet_active, touching_ghost):
return power_pellet_active and touching_ghost

Örnek:

eat_ghost(True, True)

Sonuç:

True

Çünkü iki koşul da sağlanmaktadır.


2. Pac-Man Puan Kazandı mı?

Pac-Man aşağıdaki durumların herhangi birinde puan kazanır:

  • Bir nokta (dot) toplarsa
  • Bir güç hapı (power pellet) toplarsa

Burada “VEYA” mantığı kullanılmalıdır.

def score(touching_power_pellet, touching_dot):
return touching_power_pellet or touching_dot

Örnek:

score(False, True)

Sonuç:

True

Çünkü bir nokta toplamıştır.


3. Pac-Man Kaybetti mi?

Pac-Man aşağıdaki durumda oyunu kaybeder:

  • Hayalete dokunmuştur.
  • Güç hapı etkisi aktif değildir.
def lose(power_pellet_active, touching_ghost):
return touching_ghost and not power_pellet_active

Örnek:

lose(False, True)

Sonuç:

True

Çünkü Pac-Man korunmasız durumdayken hayalete temas etmiştir.


4. Pac-Man Oyunu Kazandı mı?

Oyunu kazanmak için:

  • Tüm noktalar yenmiş olmalı.
  • Pac-Man kaybetmiş olmamalı.

Önce kaybetme durumunu tekrar düşünelim:

touching_ghost and not power_pellet_active

Eğer bu durum oluşmuyorsa ve tüm noktalar yenmişse oyun kazanılmıştır.

def win(has_eaten_all_dots,
power_pellet_active,
touching_ghost):
return (
has_eaten_all_dots
and
not (touching_ghost and not power_pellet_active)
)

Örnek:

win(True, True, True)

Sonuç:

True

Çünkü tüm noktalar yenmiştir ve Pac-Man güç hapı sayesinde hayaletten etkilenmemektedir.


Mantıksal Tablolarla Düşünmek

Örneğin eat_ghost() fonksiyonu için:

Güç HapıHayalete TemasSonuç
FalseFalseFalse
FalseTrueFalse
TrueFalseFalse
TrueTrueTrue

Burada yalnızca iki koşul aynı anda gerçekleştiğinde sonuç True olmaktadır.


Bu Alıştırmanın Öğrettiği Konular

Bu küçük alıştırma aslında Python’un temel mantık yapılarının çoğunu öğretmektedir:

  • Boolean veri tipi
  • Mantıksal operatörler (and, or, not)
  • Koşul değerlendirme
  • Fonksiyon yazımı
  • Gerçek hayat kurallarını kod ile modelleme

Programlama dünyasında birçok karar mekanizması bu mantık yapıları üzerine kuruludur. Kullanıcı giriş kontrolleri, güvenlik sistemleri, oyun mekanikleri ve iş kuralları genellikle Boolean ifadelerle ifade edilir. Bu nedenle Ghost Gobble Arcade Game alıştırması, Python öğrenenler için oldukça değerli bir başlangıç çalışmasıdır.  

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.