Java Kelime Oyunu(Static değişkenler, Switch yapısı, ArrayList, OOP mantığı, Char dizi, Scanner ve Random Sınıfı içerir)

Arkadaşlar bugün yazdığım kelime oyunu programını paylaşacağım sizinle. Öncelikle programın özellikleri:

  1. İstediğimiz kadar kelimeyi girebiliriz.(uzunluğu 20’yi geçmeyecek şekilde)
  2. Program Soldan-Sağa, Sağdan-Sola, Yukarıdan-Aşağıya, Aşağıdan-Yukarıya göre kelimeleri yerleştirmektedir.
  3. Dizimiz statik olup 20×20 boyutundadır.
  4. OOP mantığına göre yazılmıştır.
  5. 2 adet class bulunmaktadır.
  6. Main metodun çalışacağı class sadece 1 komut yazılacak şekilde dizayn edilmiştir.

KelimeOyunu isimli classımız

[java] import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

//Ali DEMİRCİ
public class KelimeOyunu {
private static char tahta[][] = new char[20][20]; // private tanımadık ki diğer sınıflarda gözükmesin.
private static ArrayList kelimelerim = new ArrayList(); // eğer kendimiz girmek istersek sınırsız boyutta arrayliste kelimelerimizi atıyoruz.
private static String kelimeler[] = {"ARMUT", "AYVA", "ANANAS", "MUZ", "KAHVE"}; // manuel tanımladığımız kelimeler

public static void OyunBaslat(){ // sadece bu fonksiyonu public tanımlayarak OOP mantığına en uygun şekilde oyunumuzu yazdık
harfDoldur();
Scanner scan = new Scanner(System.in);
System.out.println("Siz mi kelimeler belirlemek istersiniz.(1’e basın)");
System.out.println("Yoksa default kelimelerle mi başlamak istersiniz.(2’e basın)");
int secim = scan.nextInt();
switch (secim) {
case 1:
System.out.print("Kaç kelime eklemek istersiniz :");
int kelimeSayisi = scan.nextInt();
while(kelimeSayisi>0){
System.out.print("Kelime giriniz : ");
kelimelerim.add(scan.next().toUpperCase());
kelimeSayisi–;
}
for (int i = 0; i < kelimelerim.size(); i++) {
kelimeEkle(kelimelerim.get(i));
}
break;
case 2 :
for (int i = 0; i < kelimeler.length; i++) {
kelimeEkle(kelimeler[i]);
}
break;
default:
System.out.println("Yanlış Seçim Kelimeler Oluşturulmadan tablo aktarılıyor.");
break;
}
tahtaGoster();
System.out.println("Kelimeler SOLDAN – SAĞA, SAĞDAN – SOLA, YUKARIDAN – AŞAĞIYA, AŞAĞIDAN – YUKARIYA oluşturulmuştur… ");
scan.close();
}

//Öncelikle rastgele kelimesiz tablo dizer
private static void harfDoldur(){
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
tahta[i][j] = harfUret();
}
}
}

//Büyük Harf Döndürür
private static char harfUret(){
Random r = new Random();
return (char) (65 + r.nextInt(26));
}

//kelimelerimizi ekler
private static void kelimeEkle(String kelime){
Random r = new Random();
int kelimeUzunluk = kelime.length(); // kelimenin uzunluğunu alırız
int nasilEkleyim = r.nextInt(4); // sistem rastgele düzende ekleme yapar
int satir,sutun;
if(nasilEkleyim == 0 ){// soldan sağa
satir = r.nextInt(20);
if(kelimeUzunluk != 20)
sutun = r.nextInt(20-kelimeUzunluk); // sağdan taşmaması için kelimenin uzunluğundan az sutun numarası üretiriz
else
sutun = 0;

for (int i = 0; i < kelime.length(); i++) {
tahta[satir][sutun] = kelime.charAt(i);
sutun++;
}
}else if(nasilEkleyim == 1 ){// sağdan sola
satir = r.nextInt(20);
if(kelimeUzunluk != 20)
sutun = kelimeUzunluk + r.nextInt(20-kelimeUzunluk); // soldan taşmaması için kelimenin uzunluğundan az sutun numarası üretiriz
else
sutun = 19;
for (int i = 0; i < kelime.length(); i++) {
tahta[satir][sutun] = kelime.charAt(i);
sutun–;
}
}else if(nasilEkleyim == 2){//yukarıdan aşağıya
if(kelimeUzunluk != 20)
satir = r.nextInt(20-kelimeUzunluk); //aşağıdan taşmaması için kelimenin uzunluğundan az sutun numarası üretiriz
else
satir = 0;
sutun = r.nextInt(20);

for (int i = 0; i < kelime.length(); i++) {
tahta[satir][sutun] = kelime.charAt(i);
satir++;
}
}else if(nasilEkleyim == 3){//aşağıdan yukarıya
if(kelimeUzunluk != 20)
satir = kelimeUzunluk + r.nextInt(20-kelimeUzunluk); // yukarıdan taşmaması için kelimenin uzunluğundan az sutun numarası üretiriz
else
satir = 19;
sutun = r.nextInt(20);

for (int i = 0; i < kelime.length(); i++) {
tahta[satir][sutun] = kelime.charAt(i);
satir–;
}
}
}

// tablomuzu gösterir
private static void tahtaGoster(){
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
System.out.print(tahta[i][j]+" ");
}
System.out.println();
}
}
}

[/java]

Test Classımız

[java] //Ali DEMİRCİ
public class Test {
public static void main(String[] args) {
KelimeOyunu.OyunBaslat();//sadece tek bir komutla oyunumuz çalışmaktadır.

}
}

[/java] [wpdm_file id=8]

Eğer anlamadığınız birşey olursa yorum alanına yazarak sorularınızı iletebilirsiniz. Okuduğunuz için teşekkürler…

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

İşletim Sistemlerine Giriş

İşletim sistemleri, bilgisayar donanımları ve kullanıcılar arasında iletişim sağlamak amacıyla yazılmış olan programlardır. Bilgisayar Nedir? …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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