problem z odczytem

0

Witam.Mam taki problem i do tej pory nie wiem jak zrobić.Czy graliście kiedyś w grę podobną do kółka i krzyżyka,chodzi o 5 kółek lub krzyżyków pod rząd ale plansza jest większa.Otóż stworzyłem za pomocą tablicy 10x10 buttonów.Teraz po naciśnięciu dowolnego przycisku chciałbym żeby w zależności kogo kolej wyświetlało kółko lub krzyżyk i dodatkowo zapisywało np. coPole[a]=1 lub 2. W takim wypadku mógłbym sprawdzić czy jest 5 kółek lub krzyżyków pod rząd.Jest możliwość aby takie coś zrobić?Proszę o pomoc. Z góry dziękuje. Dołączam kawałek kodu jak zrobiłem pola.

import java.applet.;
import java.awt.
;
import java.awt.event.*;

import javax.swing.*;

public class kolko3 extends Applet implements ActionListener{

JButton pole[];
int a,gracz;
JLabel napis[];
Color kolor1,kolor2;
int copole[];

public void init(){
	gracz=1;
kolor1= Color.blue;
kolor2 = Color.red;
//int [] copole= new int[9];

setLayout(new GridLayout(3,3));	
//setLayout(null);	

JButton []pole=new JButton[9];	
for(a=0;a<9;a++){
pole[a]= new JButton("");
//pole[a].setBounds(10,20,100+a+40,100+a+40);
add(pole[a]);
pole[a].setVisible(true);
pole[a].setBackground(kolor1);
pole[a].addActionListener(this);
//pole[a].addActionListener(new ActionListener() {
}
}
0

co do tego żeby na zmiane pojawiało sie O i X to wstawiasz funkcję:

public void actionPerformed(ActionEvent e) {
                       //System.out.println("kliknalem guzik");
                        if(((AbstractButton)e.getSource()).getLabel()==""){
                       JButton guzik = (JButton)e.getSource();
                        if(gracz==1){
                        	guzik.setLabel("O");
                        gracz=2;
                        }else if(gracz==2){
                        	guzik.setLabel("X");
                        gracz=1;
                        }
                        }   
        }

natomiast co do sprawdzania czy trafiłeś linie 5 z rzędu...cóż, tak na szybko nie przychodzi mi nic na mysl poza dość łopatologicznym rozwiązaniem:
po kazdym kliknieciu przelatujesz listę guzików dla każdego znich rozpatrując warunki:

  1. trafiles pierwsze O
  2. trafiles kolejne O
  3. trafiles pierwszy X
  4. trafiles kolejny X
  5. nie trafiles nic (pole nie zaznaczone)

dla kazdego z tych przypadkow nalezaloby ustawic jakąś flagę ( np. zacząłem serię O ) no i zliczac te O czy X w tej serii. jesli majac trzy O trafisz na X to zerujesz flage 'seriaO' zerujesz licznik O. i zaczynasz liczyc X... itd az do konca tablicy. sprawdzasz czy LiczbaX lub liczbaO nie jest == 5 jesli tak to wyswietlasz odpowiedni komunikat.

pzdr.

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