package Soru; import javax.swing.*; public class Sorular { public String[] cevaplar,sorular; public JLabel[] jlbsorular; public int satir; public int sutun; public void bulmaca0() { String[] soru= {"Önce Karşıtı (1-5)","Köpek (7-8)","Gözde sarıya çalan kestane rengi (10-12)","Eski yunanda konser verilen basamaklı yer (14-18)","Etken (19-22)","İnce,açık sarı renkli kamış (25-27)","Sodyumun simgesi (29-30)","Kansız (31-36)","Silisyumun simgesi (1-7)","Baston (19-31)","Bir tür ipekli kumaş (2-32)","Mısra (15-33)","Gerçek (4-22)","Telefon sözü (5-17)","Nikelin simgesi (29-35)","Avustrulya veya Yeni zelenda birliklerinin ortak adı (12-36)"}; String[] cvp= {"SONRA","İT","ELA","ODEON","AMİL","SAZ","NA","ANEMİK","Sİ","ASA","OTOMAN","DİZE","REEL","ALO","Nİ","ANZAK"}; cevaplar=cvp; sorular=soru; sutun=6; satir=6; jlbsorular=new JLabel[sorular.length]; } public void bulmaca1() { String[] soru= {"Eski insanlar için 4 ayaklı Ferrari (1-2)","Mangalda bırakılmayan (4-6)","Çoğunun Aşık usandırdığı (7-9)","Olumsuz bir ek (11-12)","Büyüklüğün Şanındandır (15-16)","Sükutun geldiği yer (19-23)","Bir bağlaç (25-26)","Fizikte momenti bile olan temmbellik (31-36)","Genellikler eşyalar için kullanılsada,değişik insanlar için kullanılır (1-31)","Uzaklık anlatır (2-8)","Ta ne zaman olan Kara şimşek'te konuşan araba abinin adı(20-32)","Bir çocuğun elinde görürse bir ebeveyn 'ilerde başımıza kumarbaz mı olacaksın' altı yüzlü denilebilen katı cisim (9-21)","Çalışır durumda olan (16-34)","Çoğu zarar azı karar;çokça insan tarafından bilinme,tanınma (5-11)","Dili tutulmuş terstende yönden de okusanız hep aynı (6-18)","Kuzu ana öğünü(30-36)"}; String[] cvp= {"AT","KÜL","NAZ","NA","AF","İKRAR","Kİ","ATALET","ANTİKA","TA","KİT","ZAR","FAAL","ÜN","LAL","OT"}; cevaplar=cvp; sorular=soru; sutun=6; satir=6; jlbsorular=new JLabel[sorular.length]; } public void bulmaca2() { String[] soru= {"Kümeye ait varlıklardan her biri (1-6)","Açık elle yüze vurulan tokat (7-11)","Namaz vaktini bildiren çağrı (13-16)","Çekişme,Bozuşma (22-25)","Doğum yaptıran kadın (25-27)","Mağra (29-30)","Kenevir (31-36)","Elmanın yenmeyen iç kısmı (1-31)","Karadeniz Bölgesinde yaşayan halk (2-14)","Berilyumun Simgesi (26-32)","Birine geçiçi olarak bırakılan (3-33)","Engel (4-22)","Utanma (5-11)","Eyer (23-35)","Adet (18-36)"}; String[] cvp= {"ELEMAN","ŞAMAR","EZAN","NİZA","EBE","İN","KETENE","EŞELEK","LAZ","BE","EMANET","MANİ","AR","ZİN","TANE"}; cevaplar=cvp; sorular=soru; sutun=6; satir=6; jlbsorular=new JLabel[sorular.length]; } public void bulmaca3() { String[] soru= {"Madensel, madenle ilgili (1-7)","Alkol (8-13)","Beylik (16-21)","Anüsle ilgili (22-25)","Bir harfin okunuşu (27-28)","İnsanın ve omurgalı hayvanların çatısını oluşturan türlü biçiminde sert organların genel adı (29-33)","Öncesiz (38-42)","Göz (43-45)","Bir yağış türü (47-49)","Bir harfin okunuşu (1-8)","Bir tür sırmalı ve köstekli bıçak (22-43)","Döl eşi (2-30)","Bütün olarak, baştan sona(3-45)","Çözümleme (4-39)","Taze yumuşak ve tuzsuz beyaz peynir (5-19)","Fırında pişirilen tatlı çörek(33-47)","İncirin döllenmesi sağlayan sinek(6-27)","Lantan elementinin simgesi (41-48)","Cevizin yeşil kabuğu (21-49)"}; String[] cvp= {"METALİK","ETANOL","EMARET","ANAL","KE","KEMİK","EZELİ","AYN","KAR","ME","AKVA","ETENE","TAMAMEN","ANALİZ","LOR","KEK","İLEK","LA","TETİR"}; cevaplar=cvp; sorular=soru; sutun=7; satir=7; jlbsorular=new JLabel[sorular.length]; } public void bulmaca4() { String[] soru= {"Açık olma (1-2)","İnce ve küçük bir nesne ile sert bir yerevurulduğunda çıkan ses (4-6)","Kertenkele derisinin sepilenmesiyle elde edilen bir deri türü (7-11)","O yer (13-15)","Kriptonun simgesi (17-18)","Kuşatma (20-24)","Uyarı (27-30)","Uğraşılan şey,meşale (31-36)","Telefon Sözü (1-13)","Lütesyum elementinin simgesi (25-31)","Asker (2-20)","Açık belli (9-33)","Tantal'ın simgesi (4-10)","Ağabey (22-34)","Aynı ırktan olanlardan her biri (5-35)","Uygun bulan,kabul eden (18-36)"}; String[] cvp= {"AÇ","TIK","LEZAR","ORA","KR","İHATA","İKAZ","UĞRAŞI","ALO","LU","ÇERİ","ZAHİR","TA","AKA","IRKTAŞ","RAZI"}; cevaplar=cvp; sorular=soru; sutun=6; satir=6; jlbsorular=new JLabel[sorular.length]; } public void bulmaca5() { String[] soru= {"Tatile çıkmış kimse (1-7)","Ulamak İşi (8-12)","Kuru tütün yaprağını andıran kızılımsı kahverengi, tütün rengi (15-18)","Silisyumun simgesi (20-21)","Mallar, para ile alınan şeyler (24-28)","Selin sürükleyip getirdiği kum ve toprak karışımı (29-31)","İşte (33-35)","İstanbulun bir ilçesi (36-41)","Bir harfin okunuşu (43-44)","Od (46-49)","Bir şeyin tutulup çekilecek yeri (1-43)","Karışık renkli, çok renkli, alaca (2-16)","Düşünce (30-44)","Üzerinde tanıtıcı yazı veya resim bulunan levha (3-38)","Cemaate namaz kıldıran kimse (4-25)","Lantan elementinin simgesi (39-46)","Lantan elementini simgesi (5-12)","Bir işi yerine getirmek için verilen söz (26-47)","Külte (20-48)","Yücelme (7-35)"}; String[] cvp= {"TATİLCİ","ULAMA","TABA","Sİ","EMVAL","MİL","AHA","ADALAR","ÇE","ATEŞ","TUTAMAÇ","ALA","İDE","TABELA","İMAM","LA","LA","VAAT","SAHRE","İTİLA"}; cevaplar=cvp; sorular=soru; sutun=7; satir=7; jlbsorular=new JLabel[sorular.length]; } public void bulmaca6() { String[] soru= {"Barınılacak yer, melce (1-7)","Yönetme, yönetim (8-12)","Büyüme gelişme, çoğalma (15-18)","İlave (20-21)","Seyrek dokunmuş delikli bir kumaş türü (22-27)","İki atli kızak (31-35)","İtmek, vurmak (37-42)","Tende bulunan ufak koyu renkli leke (43-45)","Üzme, sıkıntı verme (47-49)","Bin sayısını üleştirme sayı sıfatı (1-29)","Sayı (2-23)","Bir harfin okunuşu (37-44)","Oruç tutulan ay (3-45)","Uzaklaşmak (4-39)","Neon Elementinin simgesi (5-12)","Yukarıdan Aşağıya doğru gelmek (26-47)","Yıkıntı, Döküntü, çöküntü (20-48)","Maden Kömürünün damıtılmasıyla elde edilen katı yakıt (7-21)","Ağabey (35-49)"}; String[] cvp= {"BARINAK","İDARE","NEMA","EK","ETAMİN","ZANKA","KAKMAK","BEN","EZA","BİNER","ADET","KE","RAMAZAN","IRAMAK","NE","İNME","ENKAZ","KOK","AKA"}; cevaplar=cvp; sorular=soru; sutun=7; satir=7; jlbsorular=new JLabel[sorular.length]; } public void bulmaca7() { String[] soru= {"Dış karşıtı (1-2)","Çöl (4-8)","Hayvan çiçeği (9-11)","Başıboş hayvan (13-16)","Mezra (17-22)","Akım, ısı, ses vb'ni geçiren madde, nakil,yalıtkan karşıtı (26-32)","Bir tür yaban mersini (33-36)","Anne (38-40)","Binmeye yarayan (41-45)","Talyum elementini simgesi (47-48)","Akıllıca (49-55)","Kar fırtınalı (59-64)","Sahip (1-17)","Boyut (33-57)","Resesif (2-50)","Aslı pikrik asit olan patlayıcı bir madde (11-59)","Birinin memleketini sormak için kullanılan bir söz (20-60)","Kur'an surelerini oluşturan kısımlardan her biri (5-29)","İçi gaz, sıvı veya katı herhangi bir maddeyi alabilen oyuk nesne (45-61)","Mürekkep konulan küçük kap (6-38)"," Nikelin simgesi (54-62)","Radon elementinin simgesi (7-15)","Enteklektüel olmaya özenen ancak bunu için gerekli olan niteliği kazanmamış kimse (31-63)","Yeni bir bestecilik çığırına göre, ton ve makam temeline bağlı kalmadan oluşturulan beste (8-48)"}; String[] cvp= {"İÇ","SAHRA","YEM","YONT","EKENEK","İLETKEN","ENİR","ANA","BİNEK","TL","AKİLANE","TİPİLİ","İYE","EBAT","ÇEKİNİK","MELİNİT","NERELİ","AYET","KAP","HOKKA","Nİ","RN","ENTEL","ATONAL"}; cevaplar=cvp; sorular=soru; sutun=8; satir=8; jlbsorular=new JLabel[sorular.length]; } }
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import Soru.*; public class Calistir extends Sorular implements ActionListener,KeyListener{ JFrame frm; JTextField[] jtext; JPanel jpnbulmaca; JPanel jpnsorular[],sorujpn,anajpn,jpnbtn; JLabel[] jlbsorular; JButton btn; String[] sayilar; DefaultListModel<Integer> dlm; int soruno; public Calistir() { soruno=0; Randomsayi(); switch(sayilar[0]) { case "0":bulmaca0();bulmacaolustur();boslukbul();break; case "1":bulmaca1();bulmacaolustur();boslukbul();break; case "2":bulmaca2();bulmacaolustur();boslukbul();break; case "3":bulmaca3();bulmacaolustur();boslukbul();break; case "4":bulmaca4();bulmacaolustur();boslukbul();break; case "5":bulmaca5();bulmacaolustur();boslukbul();break; case "6":bulmaca6();bulmacaolustur();boslukbul();break; case "7":bulmaca7();bulmacaolustur();boslukbul();break; } } public boolean dogrumu() { boolean durum=true; boolean durum1=true; for(int i=0;i<jtext.length;i++) { durum1=true; for(int j=0;j<dlm.getSize();j++) { int bostex=dlm.getElementAt(j); if(i==bostex) { durum1=false; } } if(durum1&&!(jtext[i].getBackground().equals(Color.RED))) durum=false; } return durum; } public void bulmacaolustur() { frm=new JFrame("Bulmaca"); Toolkit tk=Toolkit.getDefaultToolkit();//Pc'nizin çözünürlüğünü bu sınıf le aliyoruz int pcgenislik=(int)tk.getScreenSize().getWidth();//Double döndürür int pcyukseklik=(int)tk.getScreenSize().getHeight();//Double döndürür frm.setSize(pcgenislik,pcyukseklik); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setLayout(new FlowLayout()); anajpn=new JPanel(); anajpn.setPreferredSize(new Dimension(pcgenislik,40*satir+50)); btn=new JButton("Doğrula"); btn.setPreferredSize(new Dimension(100,25)); btn.addActionListener(this); jpnbtn=new JPanel(); jpnbtn.setPreferredSize(new Dimension(pcgenislik,50)); jpnbtn.add(btn); jpnbulmaca=new JPanel(); jpnbulmaca.setPreferredSize(new Dimension(35*satir,35*sutun));//Her bir jtextfield yükseklik=35 ve genişliği=35 dir jpnbulmaca.setLayout(new GridLayout(satir,sutun)); jtext=new JTextField[satir*sutun]; jlbsorular=new JLabel[sorular.length]; jpnsorular=new JPanel[2]; for(int i=0;i<jtext.length;i++) { jtext[i]=new JTextField(); jtext[i].setHorizontalAlignment(JTextField.CENTER); jtext[i].setText(i+1+""); jtext[i].addKeyListener(this); jtext[i].setName(i+1+""); jpnbulmaca.add(jtext[i]); } anajpn.add(jpnbulmaca); anajpn.add(jpnbtn); frm.add(anajpn); for(int i=0;i<jlbsorular.length;i++) { jlbsorular[i]=new JLabel((i+1)+")"+sorular[i]); jlbsorular[i].setPreferredSize(new Dimension(600,16)); jlbsorular[i].setHorizontalAlignment(JLabel.LEFT); frm.add(jlbsorular[i]); } frm.setVisible(true); } //Rastgele Sayılar üretiliyor public void Randomsayi() { Random rnd=new Random(); sayilar=new String[8]; for(int i=0;i<sayilar.length;i++) sayilar[i]=""; boolean durum=true; int sayac=0; while(sayac<8) { durum=true; int sayi=rnd.nextInt(8); for(int i=0;i<sayilar.length;i++) { if(sayilar[i].equals(""+sayi)) durum=false; } if(durum) sayilar[sayac++]=""+sayi; } } //Butona tıklandıktan sonra jtextlere girdiğimiz karekterler doğruysa Color(red) ve enabled(false) yapıyor public void dogrula() { boolean durum=true; for(int i=0;i<sorular.length;i++) { durum=true; int sayac=0;//cevaplar için dongu degiskeni int[] no=coz(sorular[i]);//Soruların sonlarındaki numaraları alıyoruz int bas=no[0]-1;// her cevabın baslangıc int bitis=no[1]-1;// her cevabın bitşi if((bitis-bas)<sutun)//yanlar kontrol ediliyor soldan sağa { int esitsayisi=0; for(int j=bas;j<=bitis;j++) { if(jtext[j].getText().length()==0) jtext[j].setText(jtext[j].getName()); if(jtext[j].getText().length()>0) { if(jtext[j].getText().charAt(0)==cevaplar[i].charAt(sayac)) esitsayisi++; } else { JOptionPane.showMessageDialog(frm, "Kutular boş olamaz ve kutuların içine bir tane karekter girilmelidir"); durum=false; break; } sayac++; } if(esitsayisi==cevaplar[i].length()) for(int m=bas;m<=bitis;m++) { jtext[m].setEnabled(false); jtext[m].setBackground(Color.red); } } else { int indis=no[0]-1; int son=no[1]-1; int sayac2=0; int esitsayisi1=0; while(son>=indis) //yukardan assaği kontrol ediliyor { if(jtext[indis].getText().length()==0) jtext[indis].setText(jtext[indis].getName()); if(jtext[indis].getText().length()>0) { if(jtext[indis].getText().charAt(0)==cevaplar[i].charAt(sayac2)) esitsayisi1++; } else { JOptionPane.showMessageDialog(frm, "Kutular boş olamaz ve kutuların içine tek karekter girilmelidir"); durum=false; break; } indis+=sutun; sayac2++; } indis=0; indis=no[0]-1; if(esitsayisi1==cevaplar[i].length()) { while(son>=indis) { jtext[indis].setBackground(Color.red); jtext[indis].setEnabled(false); indis+=sutun; } } } if(!durum) break; } } @Override public void actionPerformed(ActionEvent arg0) { dogrula(); boolean durum=dogrumu(); if(durum==true) { int sonuc=JOptionPane.showConfirmDialog(frm, "Yeni bir bulmacaya geçmek istiyorsanız OK 'ye tıklayın"); if(sonuc==0&&soruno!=sayilar.length) { frm.dispose(); switch(sayilar[++soruno]) { case "0":bulmaca0();bulmacaolustur();boslukbul();break; case "1":bulmaca1();bulmacaolustur();boslukbul();break; case "2":bulmaca2();bulmacaolustur();boslukbul();break; case "3":bulmaca3();bulmacaolustur();boslukbul();break; case "4":bulmaca4();bulmacaolustur();boslukbul();break; case "5":bulmaca5();bulmacaolustur();boslukbul();break; case "6":bulmaca6();bulmacaolustur();boslukbul();break; case "7":bulmaca7();bulmacaolustur();boslukbul();break; } } } } public int[] coz(String soru)//Soruların sonlarındaki yani parentezlerin içindeki numaralrı alıyor ve int dizisine(int[]) ceviriyor ve döndürüyor { int baslangic=0; for(int i=0;i<soru.length();i++) if((char)soru.charAt(i)=='(') { baslangic=i; break; } String cvpyeri=soru.substring(baslangic+1,soru.length()-1); String[] soruno=cvpyeri.split("-"); int[] lokasyon=new int[soruno.length]; for(int i=0;i<soruno.length;i++) { lokasyon[i]=Integer.parseInt(soruno[i]); } return lokasyon; } public static void main(String[] arg) { new Calistir(); } @Override public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub } @Override public void keyReleased(KeyEvent arg0) {//JTextField' içine veri girişi yapıldığı an bu fonksiyon çalışıyor // TODO Auto-generated method stub JTextField txt=(JTextField)arg0.getSource(); if(txt.getText().length()>txt.getName().length()) { JOptionPane.showMessageDialog(frm, "Tek Karekter girilmelidir"); txt.setText(txt.getName()); } else txt.setText(txt.getText().toUpperCase()); } @Override public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub } public void boslukbul()//Bulmacadaki X yani bos olan yerleri buluyor X' i koyuyor ve enabled' nı false yapıyor { dlm=new DefaultListModel<Integer>(); for(int i=0;i<satir*sutun;i++) dlm.addElement(i); for(int i=0;i<sorular.length;i++) { int sayac=0;//cevaplar için dongu degiskeni int[] no=coz(sorular[i]); int bas=no[0]-1; int bitis=no[1]-1; if((bitis-bas)<sutun) { for(int j=bas;j<=bitis;j++) //yanlar kontrol ediliyor for(int m=0;m<dlm.getSize();m++) if(j==dlm.getElementAt(m)) dlm.removeElementAt(m); } else { int indis=no[0]-1; int son=no[1]-1; while(son>=indis) //yukardan assaği kontrol ediliyor { for(int m=0;m<dlm.getSize();m++) if(indis==dlm.getElementAt(m)) dlm.removeElementAt(m); indis+=sutun; } } } for(int i=0;i<dlm.getSize();i++) { jtext[dlm.getElementAt(i)].setText("X"); jtext[dlm.getElementAt(i)].setEnabled(false); } } }