Java-2(2015) 9. Hafta Swing Uygulamaları (Tic-Tac-Toe)
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class oyun implements ActionListener { JButton[] jbtns; JLabel jlab; String oyunsirasi="X"; JButton jbtn_yeni; oyun(){ JFrame jfrm = new JFrame("Oyun, Hafta-9"); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jfrm.setSize(200,270); jfrm.setLayout(new GridLayout(4,1)); jbtns= new JButton[9]; JPanel jpn= new JPanel();; for(int sayac=0;sayac<jbtns.length;sayac++) { if(sayac%3==0) { jpn = new JPanel(); jpn.setLayout(new GridLayout(1,3)); jfrm.add(jpn); } JPanel jpn1 = new JPanel(); jbtns[sayac] = new JButton("?"); jbtns[sayac].setActionCommand("oyna"); jbtns[sayac].addActionListener(this); jpn1.add(jbtns[sayac]); jpn.add(jpn1); } jlab=new JLabel("Oyun sırası: "+oyunsirasi); jbtn_yeni= new JButton("Yeniden Oyna"); jbtn_yeni.setActionCommand("yeniden"); jbtn_yeni.addActionListener(this); JPanel jpn2= new JPanel(); jpn2.add(jlab); jpn2.add(jbtn_yeni); jbtn_yeni.setVisible(false); jfrm.add(jpn2); jfrm.setVisible(true); } public void actionPerformed(ActionEvent ae) { if(ae.getActionCommand().equals("oyna")) { JButton jbt=(JButton) ae.getSource(); jbt.setText(oyunsirasi); jbt.setEnabled(false); kontrol(); } else { // yeniden oyna //oyunsirasi="X"; jbtn_yeni.setVisible(false); for(int i=0;i<jbtns.length;i++) { jbtns[i].setText("?"); jbtns[i].setEnabled(true); } jlab.setText("Oyun sırası: "+oyunsirasi); } } private void kontrol() { String kazanan=""; for(int i=0;i<3;i++) { // satir kontrol if(!jbtns[3*i].getText().equals("?") && jbtns[3*i].getText().equals(jbtns[3*i+1].getText()) && jbtns[3*i].getText().equals(jbtns[3*i+2].getText())) { kazanan=jbtns[3*i].getText(); break; } if(!jbtns[i].getText().equals("?") && jbtns[i].getText().equals(jbtns[i+3].getText()) && jbtns[i].getText().equals(jbtns[i+6].getText())) { kazanan=jbtns[i].getText(); break; } if(i==0) { // capraz alanlar if(!jbtns[0].getText().equals("?") && jbtns[0].getText().equals(jbtns[4].getText()) && jbtns[0].getText().equals(jbtns[8].getText())) { kazanan=jbtns[0].getText(); break; } if(!jbtns[2].getText().equals("?") && jbtns[2].getText().equals(jbtns[4].getText()) && jbtns[2].getText().equals(jbtns[6].getText())) { kazanan=jbtns[2].getText(); break; } } } if(kazanan.equals("")) { int durum=0; for(int i=0;i<jbtns.length;i++) { if(jbtns[i].getText().equals("?")) durum=1; } if(durum==0) { jlab.setText("Oyun berabere bitti"); jbtn_yeni.setVisible(true); } else { if(oyunsirasi.equals("X")) oyunsirasi="O"; else oyunsirasi="X"; jlab.setText("Oyun sırası: "+oyunsirasi); } } else { jlab.setText("Oyunu Kazanan:"+kazanan); jbtn_yeni.setVisible(true); for(int i=0;i<jbtns.length;i++) jbtns[i].setEnabled(false); } } public static void main(String[] asda) { new oyun(); } }