Kolko i krzyzyk - warunek wygrania

0

Witam napisalem program kolko i krzyzyk ktory wpisuje o i x w wybrany button, ale nie wiem jak zrobic warunek wygrania/przegrania


import java.awt.Button;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class KolkoIKrzyzykk extends JFrame implements ActionListener {
    public void paint(Graphics g) {
        Insets insets = getInsets();
        g.translate(insets.left, insets.top);

    }
    public Component p1;
    public Component p2;
    public Component p3;
    public Component p4;
    public Component p5;
    public Component p6;
    public Component p7;
    public Component p8;
    public Component p9;
    public Container p;
    String kto = ("O");
 
    {
        setSize(250, 240);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        p = new JPanel();
        p.setLayout(new GridLayout(4, 3, 10, 10));
 
        p1 = (new Button(""));
        p2 = (new Button(""));
        p3 = (new Button(""));
        p4 = (new Button(""));
        p5 = (new Button(""));
        p6 = (new Button(""));
        p7 = (new Button(""));
        p8 = (new Button(""));
        p9 = (new Button(""));
        Object gracz = (new JLabel("O"));
 
        p.add(p1);
        p.add(p2);
        p.add(p3);
        p.add(p4);
        p.add(p5);
        p.add(p6);
        p.add(p7);
        p.add(p8);
        p.add(p9);
        p.add(new JLabel("teraz gracz: "));
        p.add((Component)gracz);
 
        ((Button)p1).setActionCommand("p1");
        ((Button)p1).addActionListener(this);
        ((Button)p2).setActionCommand("p2");
        ((Button)p2).addActionListener(this);
        ((Button)p3).setActionCommand("p3");
        ((Button)p3).addActionListener(this);
        ((Button)p4).setActionCommand("p4");
        ((Button)p4).addActionListener(this);
        ((Button)p5).setActionCommand("p5");
        ((Button)p5).addActionListener(this);
        ((Button)p6).setActionCommand("p6");
        ((Button)p6).addActionListener(this);
        ((Button)p7).setActionCommand("p7");
        ((Button)p7).addActionListener(this);
        ((Button)p8).setActionCommand("p8");
        ((Button)p8).addActionListener(this);
        ((Button)p9).setActionCommand("p9");
        ((Button)p9).addActionListener(this);
 
        Container cp = getContentPane();
        cp.add(p);
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new KolkoIKrzyzykk();
    }
 
    public void actionPerformed(ActionEvent zrodlo) {
        String polecenie = zrodlo.getActionCommand();
       
        if (polecenie.equals("p1")) {
            ((Button)p1).setLabel(kto);
            ((Button)p1).removeActionListener(this);
        } else if (polecenie.equals("p2")) {
            ((Button)p2).setLabel(kto);
            ((Button)p2).removeActionListener(this);
        } else if (polecenie.equals("p3")) {
            ((Button)p3).setLabel(kto);
            ((Button)p3).removeActionListener(this);
        } else if (polecenie.equals("p4")) {
            ((Button)p4).setLabel(kto);
            ((Button)p4).removeActionListener(this);
        } else if (polecenie.equals("p5")) {
            ((Button)p5).setLabel(kto);
            ((Button)p5).removeActionListener(this);
        } else if (polecenie.equals("p6")) {
            ((Button)p6).setLabel(kto);
            ((Button)p6).removeActionListener(this);
        } else if (polecenie.equals("p7")) {
            ((Button)p7).setLabel(kto);
            ((Button)p7).removeActionListener(this);
        } else if (polecenie.equals("p8")) {
            ((Button)p8).setLabel(kto);
            ((Button)p8).removeActionListener(this);
        } else if (polecenie.equals("p9")) {
            ((Button)p9).setLabel(kto);
            ((Button)p9).removeActionListener(this);
        }
       
        if (kto.equalsIgnoreCase("X"))
            kto = "O";
        else {
            kto = "X";
            repaint();
        }  

    }
}
0

Tak jak robi się to podczas gry na kartce. Sprawdzasz każdy wiersz i każdą kolumnę oraz 2 'skosy' i jeśli jest tam ten sam znak na każdym z trzech pół to ten właśnie znak wygrywa.

0

To teraz wyrzuc ten kod (ppm na plik i nalezy wybrac usun) i napisz go dla planszy o rozmiarach MxM.

0

juz zrobilem, nie wazne mozna zamknac :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1