Arkadaşlar bugün yazdığım kelime oyunu programını paylaşacağım sizinle. Öncelikle programın özellikleri:
- İstediğimiz kadar kelimeyi girebiliriz.(uzunluğu 20’yi geçmeyecek şekilde)
- Program Soldan-Sağa, Sağdan-Sola, Yukarıdan-Aşağıya, Aşağıdan-Yukarıya göre kelimeleri yerleştirmektedir.
- Dizimiz statik olup 20×20 boyutundadır.
- OOP mantığına göre yazılmıştır.
- 2 adet class bulunmaktadır.
- 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
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
[java] //Ali DEMİRCİpublic class Test {
public static void main(String[] args) {
KelimeOyunu.OyunBaslat();//sadece tek bir komutla oyunumuz çalışmaktadır.
}
}
Eğer anlamadığınız birşey olursa yorum alanına yazarak sorularınızı iletebilirsiniz. Okuduğunuz için teşekkürler…