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

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

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<String> kelimelerim = new ArrayList<String>(); // 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();
		}
	}
}

Test Classımız

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

	}
}

[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.