/Word-Game

Android Game

Primary LanguageJava

Kelime Oyunu

 Web Geliştirme Projesi 

Şeyma Nur MUTLU ve Melike OĞUZ

Kocaeli Üniversitesi Bilgisayar Mühendisliği

ÖZET

“Kelime Oyunu Projesi" adlı program, userları içinde barındıran bir sistem ile çalışmaktadır.Programa üye olan kullanıcılar kendileri arasında oyundan aldıkları puana göre sıralanmaktadır.

GİRİŞ

Kelime Oyunu projesinde, istenildiği sayıda kullanıcı bulunmaktadır. Kullanıcılar sisteme giriş yaptıktan sonra oyunu oynayabilmektedir. Sistem dinamik bir şekilde çalışmaktadır.

  • Öncelikle kullanıcı login sayfasını kullanarak sisteme giriş yapmalıdır. Daha sonra her kullanıcı için aynı gelen StartActivity ekranında kullanıcının seçebileceği 4 adet eylem yer almaktadır; Start, Last Game, High Score ve Exit

  • Kullanıcı uygulamaya giriş yapmak istediğinde bir kullanıcı adı ve 6 karakterden uzun bir parola belirlemelidir.

  • Başarılı bir şekilde giriş yapıldıktan sonra, kullanıcı Start butonuna bastığında ilk oyundaki 1.seviyeye ait 6 oyun ekranından bir tanesi rastgele seçilerek gelmektedir. Oyuncu bir oyunu tamamlamadan diğerine geçemez ve aynı şekilde bir seviyeyi tamamlamadan diğer seviyeye geçemez.

  • Oyuncu, oyun ekranına girdiğinde bulmacadaki kelimeleri oluşturan harfleri görüntüler ve harflere tek tek tıklayarak istediği kelimeyi yazabilir. Eğer yazdığı kelime bulmacada tanımlı ise ekranın yukarısında yer alan matris’e kelime yazılır. Tanımlı değilse puan hesabına katılır.

  • Oyun ekranında 6x6lık bir matris alanı tanımlanmıştır ve her seviyede tanımlanmış kelimelere göre bu matrisin bir kısmı oyunculara gösterilir. Tanımlı kelimeler oyuncu tarafından bulunduğunda bu matrislerin içi harfler ile doldurulur.

  • Oyuncu oyun ekranında restart ve pause işlemleri yapabilir. Restart işlemi yuvarlak bir ok şeklinde olup ekranın sol tarafında bulunmaktadır. Ekranı dinamik olarak yeniden yükler ve puanı tekrar hesaplar. Pause işlemi ise oyun ekranında o ana kadar yapılmış tüm işlemleri bir Shared Preference’a kaydeder.

  • High Score Ekranında ise kullanıcıların aldıkları en yüksek puanlar görüntülenebilir.

  • Exit butonuna basınca kullanıcıya “Do you want to exit ?” sorusu sorulur ve kullanıcı uygulamadan çıkış yapabilir.

2- Temel Bilgiler

  • Program, Java programlama dilinde ve “Android Studio 3.6.3’te” yazılmıştır.

    Programın yazılım sürecinde git versiyon kontrol sistemi olarak GitHub kullanılmış olup, kodlarımızın gizliliği için GitHub Education hesabımızın bize sağlamış olduğu private repository özelliğinden faydalanılmıştır.

3- Tasarım

  • Kelime Oyunu Uygulaması Projesi aşağıdaki başlıklar altında geliştirilmiştir.

    3.1 Hiyerarşik Yapı 
    

    Giriş ekranı ve kullanılar için oyun arayüzleri ve en yüksek puanı görünteleme arayüzü oluşturulmuştur.

    3.2 Sayfaların Özellikleri 
    

    LoginActivity (java): Oyun ekranına erişmek için gerekli olan kullanıcı adı ve parola bilgilerinin alındığı java classıdır.

    LoggedInUser (java): Kullanıcının giriş yaptığında görüntülediği ilk arayüzdür, buradan erişmek istediği sayfaları seçebilir.

    LoggedInUserview (java): Uygulamaya giriş yapan kullanıcının ekranda kullanıcı adının görünmesini sağlar.

    StartActivity (java): Kullanıcının uygulamaya giriş yaptığında karşılacağı ilk ekrandır ve bu ekran üzerinden yapacağı işlemi seçer. Tanımlı işlemler Start, Last Game, High Score ve Exit olmak üzere 4 ana işlemdir.

    Score Activity (java) : Kayıtlı olan kullanıcıların sahip olduğu en yüksek puanlar listelenmektedir.

    NextActivity (java): Oyun esnasında yeni bir sayfaya geçiş yapılmasını sağlar.

4- Karşılaşılan Sorunlar ve Çözümleri

4.1- Harflerin Ekrandan Seçimi
Java’da bulunan onClick methodu ile harfleri tek tek sırayla seçerek kelime yazılır, kelime doğru ise ekranda harfler belirir. Ekrandaki harflere sürükle bırak metoduyla basma sağlanılmadığı için harflere onClickListener özelliği aktive edilmiştir. Daha sonra bu harfler arraylistte toplanmıştır. Kullanıcı harf girişimini tamamladığında textView üzerinden kelimesini görür ve butona basar. Bu şekilde problem çözülmüştür.
4.2- Pause Seçeneği Seçildiğinde Mevcut Durumun Kaydedilmesi
Shared Prefence kullanarak mevcut durumu bir data modele kaydedip devam edilmek istendiğinde geri yüklenir.

5- Kazanımlar

  • Java ArrayList sınıfını iyice anlayıp tanımak ,
  • Android Studio’nun yeni sürümü olan Android Studio 3.6.3’te proje geliştirmek,
  • Mobil platform için geliştirme yapmak,
  • Shared Preference kullanımı ,
  • Dinamik bir sistem oluşturmak,
  • Git sürümleri,
  • GitHub kullanımı

6- Ekran Görüntüleri

Login Ekranı

Oyun Menü Ekranı

1. Seviye Oyun Ekranı

1. Seviye Oyun Skoru

Pause Ekranı

2. Seviye Oyun Ekranı

2. Seviye Oyun Skoru

3. Seviye Oyun Ekranı

Harfleri Karıştırma Özelliği


7- Pseudo Kod

1- Word Game uygulamasını cihaz üzerinden aç.

2- Kullanıcı olarak kullanıcı adı ve 6 karakterden uzun parola ile giriş yap.

3- Kullanıcın önüne gelen ekrandan (6.2) yapacağı işlemi seçmesi.

4- Kullanıcı Start’ı seçerse gelen oyun ekranından harfleri seçerek kelime oluştur kelime doğruysa bulmacaya yerleştir ve puana ekle kelime bulmacada yok ise puan hesaplamasına kaydet.

5- Oyun ekranında Restart butonuna tıklanırsa tekrardan ekranı dinamik sekilde yukle.

6- Oyun ekranında Pause butonuna tıklanırsa oyunu durdur.

7- High Score ekranını açarsa puan siralamasini göster.

8- Exit butonuna basarsa uygulamayı sonlandır.

8- Kaynakça

[1] https://stackoverflow.com/questions/7145606/how-android-sharedpreferences-save-store-object

[2] https://developer.android.com/training/gestures/detector

[3] https://developer.android.com/training/gestures/viewgroup