Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.* ;
- import java.awt.event.* ;
- import javax.swing.* ;
- import java.util.ArrayList ;
- import java.util.Collections ;
- class ruutu
- {
- public ruutu(int x, int y) {
- x_koordinaatti = x;
- y_koordinaatti = y;
- tyhja = true;
- rasti = true;
- }
- boolean lue_tyhja () {
- return tyhja;
- }
- void paivita_tyhja (boolean onko_tyhja) {
- tyhja = onko_tyhja;
- }
- boolean lue_rasti () {
- return rasti;
- }
- void paivita_rasti (boolean onko_rasti) {
- rasti = onko_rasti;
- }
- int lue_x () {
- return x_koordinaatti;
- }
- int lue_y () {
- return y_koordinaatti;
- }
- void paivita_koordinaatit(int x, int y) {
- x_koordinaatti = x;
- y_koordinaatti = y;
- }
- int x_koordinaatti;
- int y_koordinaatti;
- boolean tyhja; // onko ruutu tyhjä
- boolean rasti; // risti vai nolla
- }
- public class Ristinolla extends JApplet implements MouseListener
- {
- ArrayList<ruutu> ruudut = new ArrayList<ruutu>() ;
- Image kentta, risti, nolla;
- boolean ristin_vuoro;
- int perakkaiset;
- public void init()
- {
- kentta = getImage(getCodeBase(),"kentta.png");
- risti = getImage(getCodeBase(),"risti.png");
- nolla = getImage(getCodeBase(),"nolla.png");
- addMouseListener(this);
- ristin_vuoro = true;
- perakkaiset = 1;
- for (int x = 0 ; x < 20 ; x++)
- {
- for (int y = 0 ; y < 20 ; y++)
- {
- lisaa_ruutu(new ruutu(x, y));
- }
- }
- }
- void lisaa_ruutu(ruutu uusi_ruutu) {
- ruudut.add(uusi_ruutu);
- }
- int indeksin_haku(int yhaku, int xhaku) // palauttaa ruudun indeksin halutuille koordinaateille
- {
- int palautus = 0;
- palautus = 20 * yhaku + xhaku - 21;
- return palautus;
- }
- void tarkistus(int yy, int xx)
- {
- int i;
- for(i = 1 ; i < 6 ; i++)
- {
- if (ruudut.get(indeksin_haku(yy - i, xx - i)).lue_tyhja() == false)
- {
- if (ruudut.get(indeksin_haku(yy - i, xx - i)).lue_rasti() == !ristin_vuoro)
- {
- perakkaiset++;
- }
- else
- {
- break;
- }
- }
- else
- {
- break;
- }
- }
- for(i = 1 ; i < 6 ; i++)
- {
- if (ruudut.get(indeksin_haku(yy + i, xx + i)).lue_tyhja() == false)
- {
- if (ruudut.get(indeksin_haku(yy + i, xx + i)).lue_rasti() == !ristin_vuoro)
- {
- perakkaiset++;
- }
- else
- {
- break;
- }
- }
- else
- {
- break;
- }
- }
- }
- public void paint(Graphics graphics)
- {
- super.paint(graphics );
- graphics.drawImage(kentta, 0, 0, this);
- //graphics.drawImage(risti, 17, 12, this);
- for (int i = 0 ; i < 400 ; i++)
- {
- if (ruudut.get(i).lue_tyhja() == false)
- {
- if (ruudut.get(i).lue_rasti() == true)
- {
- graphics.drawImage(risti, 17 + (30 * (ruudut.get(i).lue_y())), 12 + (30 * (ruudut.get(i).lue_x())), this);
- }
- else
- {
- graphics.drawImage(nolla, 17 + (30 * (ruudut.get(i).lue_y())), 12 + (30 * (ruudut.get(i).lue_x())), this);
- }
- }
- }
- if (perakkaiset >= 5)
- {
- graphics.drawString("Viisi putkeen!", 300, 300);
- }
- perakkaiset = 1;
- if (! hasFocus())
- {
- requestFocus();
- }
- }
- public void mouseClicked(MouseEvent e)
- {
- int i;
- int x_click = e.getX() - 12;
- int y_click = e.getY() - 17;
- int x_naatti = -1 , y_naatti = -1;
- for (i = 0 ; i < 20 ; i++)
- {
- if (x_click > i * 30 && x_click < i * 30 + 30)
- {
- x_naatti = i + 1;
- }
- }
- for (i = 0 ; i < 20 ; i++)
- {
- if (y_click > i * 30 && y_click < i * 30 + 30)
- {
- y_naatti = i + 1;
- }
- }
- ruudut.get(indeksin_haku(y_naatti, x_naatti)).paivita_tyhja(false);
- if (ristin_vuoro == true)
- {
- ruudut.get(indeksin_haku(y_naatti, x_naatti)).paivita_rasti(true);
- ristin_vuoro = false;
- }
- else
- {
- ruudut.get(indeksin_haku(y_naatti, x_naatti)).paivita_rasti(false);
- ristin_vuoro = true;
- }
- tarkistus(y_naatti, x_naatti);
- repaint();
- }
- public void mouseEntered(MouseEvent e) { }
- public void mouseExited(MouseEvent e) { }
- public void mousePressed(MouseEvent e) { }
- public void mouseReleased(MouseEvent e) { }
- }
Add Comment
Please, Sign In to add comment