Kare Bulmaca Oyunu indir
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);
}
}
}