java ile oyun programlama örnekleri / Java Hafıza Oyunu Nasıl Yapılır?

Java Ile Oyun Programlama Örnekleri

java ile oyun programlama örnekleri

Java hafıza oyunu, Java programlama dilini yeni öğrenen yazılımcı adaylarının faydalanabileceği basit bir örnektir. Bu örneği sizlerle paylaşmak istedik. Java hafıza oyunu kodlarını inceleyerek sizlerin de tekrar yazmanız öğrenmek açısından oldukça faydalı olacaktır.

Java Hafıza Oyunu

Java hafıza oyunu, karışık halde her karttan iki tane bulunan ve bu kartları tahmin edip yerlerini hafızamızda tutarak aynı kartları tahmin etmeye çalıştığımız basit ve eğlenceli bir oyundur. Hadi Java hafıza oyunu kodlarını bir kaç adımda yazalım.

1.Adım : Kart Sınıfı 

Başlangıç olarak Kart adında bir nesne oluşturuyoruz. Kart nesnemiz içerisinde iki tane veri tutuyor. Daha önce bu oyunu oynadıysanız hatırlarsınız ki genellikle kartın üzerine resim koyulurdu. Biz konsol uygulaması yaptığımız için bu resimler yerine harfleri kullanmayı tercih ettik. Birinci verimiz char veri tipindeki “deger” isimli değişkende tuttuğumuz bu harfler olacak. İkinci verimiz ise bu kartların açılıp açılmadığının verisini tutan boolean veri tipindeki “tahmin” değişkenimiz olacak.

2.Adım : Peki Java hafıza oyunu nasıl görünecek?

Konsol üzerinden bir oyun yaptığımız için çok fazla görsellik bekleyemeyiz. Bunun için iç içe for döngüsü kullanarak 4×4 bir matris görüntüsü oluşturmaya çalıştık. Kodları tekrar tekrar yazmamak için oyunTahtası isimli bir metot oluşturuyoruz. Bu oyunTahtası isimli metodumuz çağrıldığı yerde oluşturduğumuz görüntüyü konsol ekranında gösterecek.

3.Adım : Oyunu nasıl oynayacağız?

Artık oyun ekranımızı tasarladığımıza göre tahmin etme işlemine geçebiliriz. Bu kısımda kullanıcıdan hangi kartı seçmek istedikleri bilgisini istiyoruz. Önce satır sonra sütun numaralarını kullanıcıdan alıyoruz. Aldığımız satır ve sütun değerlerinin denk geldiği “Kart” nesnesinin “tahmin” değişkeninde ki false olan değeri true yapıyoruz. Yani artık true olduğu için içerisindeki harfin ne olduğu konsol ekranında görülebilir. Eğer ki ikinci tahminimizde aynı harfi tahmin edebilirsek iki kart da açılmış oluyor. Yanlış tahmin yapılırsa seçilen kartların tahmin değerlerini false yapıp kartları tekrardan kapatıyoruz.

Advertisement

4.Adım : Olası hataları kontrol edelim 

Basit bir örnek yaptığımız için çok fazla kontrol yapmıyoruz. Örnek olması açısından bir hatamızı kontrol edelim. Kullanıcı bizim matrisimizin boyutlarından fazla bir sayı veya negatif bir sayı girebilir. Bu durum oyunumuzda hataya yol açar. Bu sorunu gidermek için ” sayiKontrol “ isimli bir metot oluşturduk.Bu metot boolean tipinde bir olduğu için true veya false değer dönecek. Biz de bu şekilde bir hata olmadığını kontrol etmiş olacağız.

5.Adım : Oyun ne zaman sona erecek?

Oyunumuzun bitip bitmediğini kontrol ettiğimiz bir metot yazalım. İç içe for döngüsü kullanarak bütün kartların “tahmin” değişkenlerindeki verilerin true olup olmadığını kontrol ediyoruz. Bütün değerler true ise tüm kartlar açılmış, yani oyun bitmiş demektir.

6.Adım : Son olarak Main sınıfımızı yazalım

Artık “Main” sınıfımızı yazabiliriz. Kartlarımızın verilerini tutacak olan iki boyutlu diziyi oluşturuyoruz. Daha sonra yeni “Kart” nesneleri oluşturarak oluşturduğumuz nesneleri diziye ekliyoruz. Oyunun bitene kadar tahmin edilebilmesi için while ile döngü oluşturuyoruz. Son olarak da oyunun bittiğini kullanıcıya bildiren bir mesaj yazarak programımızı bitiriyoruz.

Java hafıza oyunu örneğini size basit olarak anlatmaya çalıştık. Kodun tüm halini aşağıda bulabilirsiniz. Sorularınız veya önerileriniz olursa bize yorum atabilirsiniz.

Advertisement

Java Nedir?

Bu kitap hiç programlama bilmeyenler için yazılmıştır.

Bir programlama dilini öğrenmek, anadil öğrenmeye benzer. Çocukken, ana dilimizin sözdizimini (gramer) bilmeden, başkalarının yaptığı gibi kullanmaya başlarız; yani taklit ederiz. Ancak okula başladıktan sonra grameri adım adım öğreniriz. Bu derste genellikle bu yöntemi izleyeceğiz; yani Java dilini sistematik değil, pedagojik öğreneceğiz. Bir çok kavramı önce kullanacak, sonra onların esasını öğreneceğiz.

İlk bölümlerde söylenen kavramları esastan anlamanız beklenmiyor. Programların sözdizimlerinin (syntax -gramer) dayandığı temelleri iyi anlamasanız bile, bir çocuğun ana dilini öğrenmesi gibi, o kalıpları olduğu gibi kullanmaya çalışmalısınız. Yeni başlayanların bir dili öğrenmesinin en iyi yolu budur. Taklit etmek ve bolca tekrarlamak. Bu ders boyunca kavramları sık sık tekrarlayacağız ama her tekrarda o kavrama yeni bilgiler eklemiş olacağız.

Birinci Bölümde Nesne Yönelimli Programlama kavramına doğrudan girmek yerine, her programlama dilinde var olan ve programlamanın temelleri sayılan kavramlar, hiç programlama bilmeyenler için açıklanacaktır. Daha önce bir programlama dili öğrenmiş olanlar, bu bölümü okumadan atlayabilirler.

Java Programlama Dili

İlk bilgisayarlar ortaya çıktığında, şimdi kullandığımız FORTRAN, COBOL, Pascal, C/C++, Java gibi üst düzey diller yoktu. Farklı makinelerin donanım yapıları farklı olduğu için, farklı marka ve model bilgisayarların makine dilleri (makinelerin anladığı tek dil) birbirlerinden farklı idi. O nedenle, ilk programcılar, bilgisayara, ancak kullandıkları makinenin makine dili ile iş yaptırabiliyorlardı. Makine dilini öğrenmek zor olmak yanında, bir makine için öğrenilen makine dili, farklı marka ve modeller için geçerli olmuyordu. Bu zorluğu aşmak için önce assembler dili ve hemen arkasından üst düzey diller ortaya çıktı. Üst düzey diller, programcılara büyük rahatlık getirdi. Çünkü, programcı, işletim sistemini ve makineyi düşünmeden, kaynak programını istediği dille yazabiliyordu. Örneğin, C ile yazılan bir kaynak programı, uygun derleyici ile her işletim sisteminde ve her makinede derlenip çalıştırılabiliyordu. [Tabii, C derleyicisi yazan farklı şirketlerin standarttan ufak sapmalarını göz ardı ediyoruz.]

Şimdi adına prosedürel diller denilen FORTRAN, COBOL, Pascal, Modula, C gibi üst düzey diller uzun yıllar programcılara başarıyla hizmet ettiler; halen de etmektedirler. Ama ortada bir problem vardı. Belirli bir işletim sistemi altında çalışan belirli tür bir makinede derlenen bir kaynak program, ancak o işletim sistemi altında çalışan o tür makinelerde koşturulabiliyordu. İşletim sistemi ve/veya makine türü değişince; yani platform değişince, program orada koşamıyordu; yeni platforma uygun bir derleyici ile yeniden derlenmesi gerekiyordu. Buna, kısaca platform bağımlılık diyoruz. Platform bağımlılıktan kastettiğimiz şey, bir kaynak programın belirli bir işletim sistemi altında çalışan belirli bir derleyici ile derlendiği ve ancak belirli bilgisayar türlerinde koşturulabildiği gerçeğidir. Örneğin, Windows işletim sistemi altında çalışan bir PC de derlenen bir bilgisayar programınıMacintosh ya da Linux işletim sistemi altında çalışan bir makinede koşturmak mümkün değildir.

Piyasaya farklı işletim sistemlerinin ve çok sayıda farklı donanımın çıkması, bilgisayar ağlarının gelişmesi, bir ağa bağlı makinelerin farklı işletim sistemleri altında çalışan farklı marka ve model bilgisayarlardan oluşuyor olması problemi büyüttü.

Problemin çözümü, platformdan bağımsız çalışabilecek bir dilin yaratılmasını gerektiriyordu. Bu iş, Sun firmasının geliştirdiği Java dili ile çözüldü. Gerçi Sun firması, ortaya çıkan bu büyük problemi çözmek için değil, daha basit bir amaçla yola çıktı. Elektrikli ev aletlerinin kolay kullanılmasını sağlayacak bir dil geliştirmek istiyordu. Kısa zamanda, bu işin ancak ortak bir platformda yapılabileceğini anladı. Sun’ın programcısı James Gosling, 1995 yılında her platformda çalışan Java dilini yarattı.

Gosling basit ama harika bir buluş yaptı. Farklı işletim sistemleri ve farklı donanımlarda kurulabilen ortak bir sanal makine tasarladı. Adına JVM (Java Virtual Machine) denilen bu sanal makine ücretsiz dağıtıldı. JVM her platforma kolayca kurulabilir. Java dili ile yazılan kaynak programlar, java derleyicisi ile JVM de çalışabilen bir tür makine diline dönüştürülür. Adına java byte kod denilen bu program JVM tarafından yorumlanır ve çalıştırılır. Java byte kod bir bakıma, prosedürel dillerde yazılıp derlenmiş kaynak programların işlevini yapar.

Java uygulamalarını çalıştırmak isteyen herkes, kendi makinesine JVM ‘i kurabilir. Bunun için JRE (Java Runtime Environment) adlı programı internetten indirip yüklemesi yetecektir. JRE bilgisayara bir kez yüklenir. Ondan sonra Java uygulamalarının hepsi bu makinede çalışabilir. Makinede bir java uygulaması çalışacağı zaman, JRE kendiliğinden JVM sanal makinesini oluşturur. JVM gerektiğinde çalışan bir programdır; her program gibi, işi bitince ana bellekten silinir. Dolayısıyla makineye bir zarar vermesi söz konusu değildir. Günümüzde, java uygulamaları ile karşılaşan tarayıcıların çoğu, JRE’yi otomatik olarak indirip yükleme yeteneğine sahiptir.

Java basit, modern, nesne yönelimli, tip-korumalı ve C ile C++ dillerinin iyi özeliklerini almış bir dildir. Fazla olarak, her platformda çalışabilme yeteneğine sahiptir. Bu yetenek, onu yalnız bilgisayarlarda değil, internet uygulamalarına, cep telefonlarına, oyun makinelerine, ev aletlerine kadar geniş bir yelpazede uygulama alanı bulmasını sağladı. Bu nedenle, Java’yı hem programlama dili, hem de bir ortam olarak düşünebiliriz. Bu ortamda işletim sistemi, ağlar, internet programlama, veritabanı ve bütün orta katman (middleware) teknolojileri yer alır.

Özetle, Java basit bir dildir. Kolay öğrenilir. Genel amaçlı bir dilin bütün hünerlerine sahiptir. C, C++ dillerinin iyi özeliklerini almıştır. Kullanıcı dostu ve hızlı bir uygulama geliştirmearacıdır.

Java dilinin başlıca nitelikleri

Java’nın kendi sitesinde Java’nın nitelikleri şu deyimlerle belirtiliyor:

·         Basittir

·         Mimari yapıdan bağımsızdır

·         Nesne Yönelimlidir

·         Taşınabilir

·         Dağıtıktır

·         Yüksek performansı vardır

·         Çoklu İş Yeteneği vardır

·         Sağlamdır

·         Dinamiktir

·         Güvenlidir

Biraz programlama bilenler bu deyimlerin ne anlama geldiğini kolayca sezebilirler. Bu kitap hiç programlama bilmeyenler için yazıldığına göre, yukarıdaki deyimleri biraz açıklamakta yarar olabilir. Yapılan açıklamaları şimdi anlamayanlar üzülmesinler, çünkü basitçe söylenen bu deyimler java dilinin özüdür. Onların gerçek anlamları ancak, kitabın tamamı okunduktan sonra iyice anlaşılabilecektir.

Java basittir. Java’yı tasarlayanlar kaynak programın kolay yazılabilmesini, kolay derlenmesini ve kolay düzeltilmesini (debug) amaçladılar. Java’nın C++ diline göre çok daha basit olmasının temel nedeni, otomatik bellek tahsisi yapması ve işi biten nesneleri bellekten yok etmesidir (garbage collection).

Java nesne yönelimli bir programlama dilidir. Nesne yönelimli programlama paradigmasının bütün avantajlarını taşır. Programcıya kalıtım, polimorfizm, modular programlama, hata ayıklama (debug) ve kodların yeniden kullanılabilmesi gibi önemli yetenekleri sunar.

Java dağıtık bir sistem olma niteliğine sahiptir. Bir ağ üzerindeki birden çok farklı bilgisayarın bütünleşik bir sistem olarak bir arada çalışmasını sağlar.

Java çoklu iş yapma (multithreaded) yeteneğine sahiptir. Çoklu iş yapma niteliği, bilgisayarın aynı anda birden çok işi yapabilmesi demektir. Başka dillerde sistemle ilgili prosedürlerin çağrılmasıyla yaptırılan multithreaded özeliği java dilinin özünde vardır. Multithreaded yeteneği, özellikle görsel programlamada ve ağ programlamada önem kazanır.

Java platform bağımsızdır. Java programları harklı platformlar için ayrı ayrı değil, JVM için bir kez derlenir. Derleme sonunda ortaya çıkan java bytecode JVM tarafından yorumlanır. Bytecode, JVM yüklü her makinede çalışabilir. JVM sanal makinesi her makineye kolayca ve ücretsiz yüklenebilir. Dolayısıyla, java programları bir kez yazılır ve her yerde çalışır.

Java taşınabilir. İşletim sisteminden ve donanımdan bağımsız oluşu nedeniyle, Java Bytecode bir bilgisayar sisteminden farklı bir başkasına kolayca taşınır. Aynı javaprogramının farklı sistemlerde sorunsuz çalışabilme yeteneği,programlama alanında geniş ufuklar açmıştır.

Java sağlamdır. Başka dillerin ancak koşturma anında belirleyebileceği hataları, javaderleme anında belirler. Güçlü hata ayıklama (debug) yeteneği vardır.

Java güvenlidir. Java dili, derleyicisi ve yorumlayıcısı güvenlik öncelikli olarak tasarlanmıştır. Tasarımında güvenliği öne çıkaran ilk dildir.

Java Ağ dostudur. Java’da ağ programı yazmak, dosyalara veri gönderip veri almak kadar kolay bir iştir.

Java Dilinin Başlıca Uygulama Geliştirme Araçları

Genel amaçlı üst düzey bir dil olan Java güçlü bir yazılım geliştirme aracıdır. Java ile yapılan bazı uygulamaları şöyle sıralayabiliriz:

Yazılım Geliştirme Araçları

Kaynak programı derleme, koşturma, hata ayıklama ve uygulama programının dökümantasyonunu hazırlamak için gerekli olan araçlar JSDK içinde yer alır. Windows işletim sisteminde java kaynak programlarını derlemek için JSDK içindeki javac.exe derleyicisini, java uygulamalarını çalıştırmak için java.exe programını ve doküman hazırlamak için javadoc.exe yorumlayıcısını kullanacağız. Başka işletim sistemleri için de bu programların karşılıkları vardır.

Uygulama Programları Arayüzü

[API - Application Programming Interface] : Java’nın en önemli özeliklerinden birisi büyük ve ücretsiz bir kütüphaneye sahip olmasıdır. Java APIdenilen bu kütüphanede bir programcının gerekseme duyabileceği basit sınıflardan başlayarak, ağ, güvenlik, XML, veri tabanlarına erişim gibi ileri konularla ilgili sınıflar, arayüzler ve metotlar yer alır. Bu satırların yazıldığı sırada, sözkonusu kütüphane http://download.oracle.com/javase/6/docs/api/adresinde yer almaktadır. Bu adrese isteyen herkes ulaşabilir ve orada yer alan araçlar, gene ücretsiz olarak dağıtılan JSEDK [Java Standard Environment Development Kit 6] içinde yer alır. Bu satılar yazılırken JSEDK nın 6. Sürümü sonuncudur. Zaman içerisinde, JSEDK nın ve dolayısıyla API nin yeni sürümleri ortaya çıkar. Yeni uygulamalar yazarken, en son sürümün kullanılması tercih edilmelidir.

Kullanıcı Arayüzü Araçları

Kullanıcı görsel arayüzlerini [GUI- Graphical User Interfaces] hazırlamak için, Java dili, Swing ve Java 2D gibi gelişmiş araçlara sahiptir.

Bütünleşik Kütüphaneler

Java IDL API, JDBCTM API, Java Naming and Directory InterfaceTM ("J.N.D.I.") API, Java RMI (Java Remote Method Invocation over Internet ), Inter-ORB Protocol Technology (Java RMI-IIOP Technology) gibi araçlar, veri tabanlarına ve uzaktaki nesnelere erişimi sağlar.

Java Dilinin Başlıca Uygulamaları

Sınıf KütüphaneleriBaşka uygulamalarda kullanılacak kütüphane sınıfları yaratır.

Konsol UygulamalarıSatır komutu arayüzü için görsel Java uygulamaları yaratır.

Web UygulamalarıWeb kullanıcı arayüzü için görsel Java uygulamaları yaratır.

XML Uygulamalarıxml Web servisleri yaratır.

Veritabanı Uygulamaları veritanlarını yönetmek için uygulama programları yaratır.

Mobile Web UygulamalarıPDA,cep telefonları gibi taşınabilir cihazlar için uygulama programları yaratır.

Oyun Programlarıjava ile gelişkin oyun programları yazılır.

Java size ne sağlar?

Java dili bilgisayarla ilgili hemen her konuda işe yarayan bir dil olduğu için, bütün dünyada, java programcıları üstün bir ayrıcalığa sahiptir. Onlar kolayca yüksek ücretli iş bulabilirler. Programcılığa yeni başlayan birisi iseniz, java, bu derste size şu kolylıkları sunacaktır:

·         Java basit bir dil olduğu için, onu diğer dillere göre daha kısa bir zamanda öğreneceksiniz.

·         Java programları, örneğin, aynı işi yapan C++ kaynak programlarının dörtte biri kadar uzundur. Dolayısıyla daha az kod yazarak zamandan ve emekten kazanacaksınız.

·         Daha kolay kod yazacaksınız. Java API size gerekseme duyacağınız hemen her sınıfı ve metodu hazır verecektir. İstediğinizde, bu sınıfları ve metotlarını kullanabilecek, istediğinizde onlardan altsınıflar türetebileceksiniz. Bunları yapmakla, kaynak programınızda oluşabilecek hataları önlemiş olacaksınız. Tabii, gerekseme duyuyorsanız, her zaman yeni sınıflar ve yeni metotlar yazabileceksiniz.

·         Java uygulamalarını bir kez yazıp her yerde çalıştırabilirsiniz.

·         Yazdığınız uygulamalar, Java API dışında bir kütüphane kullanmadığı için, her platformda çalışır. Dolayısıyla onları kolayca yayabilirsiniz.

Programlamanın Evreleri

Kullanılan dil ne olursa olsun, programlama eylemi şu evrelerden oluşur:

1. Kaynak programı yazma

Herhangi bir programlama dilinde metin (text) olarak yazılır. Kaynak program, kullandığı dilin sözdizimine (syntax) uymalıdır.

2. Derleme

Kaynak programı bilgisayarın anlayacağı bir ara dile dönüştürür. Ara dil kullanılan dile bağlıdır. Örneğin, C dilinde obj kodları, java dilinde bytecode, C# dilinde IL, vb adlar alır.

3. Aradil kodları yürütülebilir makine diline dönüştürülür

Programın koşabilir (yürütülebilir, çalışabilir, yorumlanabilir - executable) olabilmesi için, kullanılan bilgisayar sisteminin anladığı dile (makine dili) dönüşmesi gerekir. Java derleyicisinin yarattığı bytecode, JVM tarafından yorumlanır.

Bu bağlamda bir konuyu daha açıklamakta yarar vardır. Çağdaş programcılıkta, her şey bir program içinde yapılmaz. Daha önce yaratılmış, kullanılmaya hazır çok sayıda program öğeleri vardır. Bunlar, kullanılan dilin kütüphanesi gibidir. Programcı, kütüphaneden istediklerini alıp, kendi programına yerleştirebilir.Birleştirme yöntemi farklı olsa da her dilde bu olanak vardır. Javadilinin çok geniş bir kütüphanesi vardır. Onu kullanmayı gelecek bölümlerde öğreneceğiz.

Java kaynak programlarının nasıl derleneceğini ve nasıl yorumlanacağını Birinci Bölümde anlatmıştık. Öğrenci, önce o bölümü okumalıdır.

nest...

çamaşır makinesi ses çıkarması topuz modelleri kapalı huawei hoparlör cızırtı hususi otomobil fiat doblo kurbağalıdere parkı ecele sitem melih gokcek jelibon 9 sınıf 2 dönem 2 yazılı almanca 150 rakı fiyatı 2020 parkour 2d en iyi uçlu kalem markası hangisi doğduğun gün ayın görüntüsü hey ram vasundhara das istanbul anadolu 20 icra dairesi iletişim silifke anamur otobüs grinin 50 tonu türkçe altyazılı bir peri masalı 6. bölüm izle sarayönü imsakiye hamile birinin ruyada bebek emzirdigini gormek eşkiya dünyaya hükümdar olmaz 29 bölüm atv emirgan sahili bordo bereli vs sat akbulut inşaat pendik satılık daire atlas park avm mağazalar bursa erenler hava durumu galleria avm kuaför bandırma edirne arası kaç km prof dr ali akyüz kimdir venom zehirli öfke türkçe dublaj izle 2018 indir a101 cafex kahve beyazlatıcı rize 3 asliye hukuk mahkemesi münazara hakkında bilgi 120 milyon doz diyanet mahrem açıklaması honda cr v modifiye aksesuarları ören örtur evleri iyi akşamlar elle abiye ayakkabı ekmek paparası nasıl yapılır tekirdağ çerkezköy 3 zırhlı tugay dört elle sarılmak anlamı sarayhan çiftehan otel bolu ocakbaşı iletişim kumaş ne ile yapışır başak kar maydonoz destesiyem mp3 indir eklips 3 in 1 fırça seti prof cüneyt özek istanbul kütahya yol güzergahı aski memnu soundtrack selçuk psikoloji taban puanları senfonilerle ilahiler adana mut otobüs gülben ergen hürrem rüyada sakız görmek diyanet pupui petek dinçöz mat ruj tenvin harfleri istanbul kocaeli haritası kolay starbucks kurabiyesi 10 sınıf polinom test pdf arçelik tezgah üstü su arıtma cihazı fiyatları şafi mezhebi cuma namazı nasıl kılınır ruhsal bozukluk için dua pvc iç kapı fiyatları işcep kartsız para çekme vga scart çevirici duyarsızlık sözleri samsung whatsapp konuşarak yazma palio şanzıman arızası