viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427bd8477a16fb3dab004c86b6f858e30ebd71dc5052cdb20366504c73390505cc97907c6c934970259d7fb9b2fb8cfc7a1da56e661532433a6a177064fb4

//소스입니다//

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;


public class TMproject extends JFrame {

JLabel map[][] = new JLabel[14][14];

int mapcheck[][] = new int[14][14];

int gameset = 0;// 맵체크

int bcheck;// 블랙돌규칙체크

int wcheck;// 흰돌규칙체크


int mapRule[][] = new int[14][14];

int clickX, clickY;

// Object map[][] = new JLabel[14][14];

int i, j;


int oX, oY;

int stoncolor = 2;


ImageIcon white = new ImageIcon("image/whitebig.png");

ImageIcon black = new ImageIcon("image/blackbig.png");

// Image img = omokstone.getImage();


TMproject() {

setTitle("폴리텍 오목킹");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container c = getContentPane();


JPanel panel = new omokBoard();

c.add(panel);

panel.setLayout(null);


for (i = 0; i <= 13; i++) {

for (j = 0; j <= 13; j++) {

oX = 35 + i * 60;

oY = 35 + j * 60;

mapcheck[i][j] = 1;

map[i][j] = new JLabel();


map[i][j].setVisible(true);

map[i][j].setLocation(oX, oY);

map[i][j].setSize(50, 50);


/*

 * map [i][j].getX(); map [i][j].getY();

 */

System.out.println(map[i][j].getX() + " ~~~~" + map[i][j].getY());

}

}


for (i = 0; i <= 13; i++) {

for (j = 0; j <= 13; j++) {

panel.add(map[i][j]);

}

}

panel.addMouseListener(new moveListener());


System.out.println(clickX);


// panel.addMouseListener(arg0);

setSize(1300, 900);

setVisible(true);

}


class omokBoard extends JPanel {

ImageIcon icon = new ImageIcon("image/brown.jpg");

Image img = icon.getImage();


public void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(Color.black);

g.drawImage(img, 40, 40, this);

for (int i = 1; i <= 14; i++) {

g.drawLine(60, i * 60, 840, i * 60);

g.drawLine(i * 60, 60, i * 60, 840);

}

}

}


class moveListener extends MouseAdapter {


public void mousePressed(MouseEvent e) {


if (gameset != 1 && gameset != 2) {


int x = e.getX();

int y = e.getY();

if (x < 840 && y < 840 && x > 60 && y > 60) {


for (int i = 14; i > -1; i--) {

if (x < 35 + i * 60) {

clickX = i - 1;


}

if (y < 35 + i * 60) {

clickY = i - 1;

}


}

if (mapcheck[clickX][clickY] == 1) {

System.out.println(clickX + "----------" + clickY);

if (stoncolor % 2 == 1) {

map[clickX][clickY].setIcon(white);

mapRule[clickY][clickX] = 1;

} else if (stoncolor % 2 == 0) {

map[clickX][clickY].setIcon(black);

mapRule[clickY][clickX] = -1;


}

// x축 규칙 시작

if (clickX < 10) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY][clickX + 1] == -1 && mapRule[clickY][clickX + 2] == -1

&& mapRule[clickY][clickX + 3] == -1 && mapRule[clickY][clickX + 4] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY][clickX + 1] == 1 && mapRule[clickY][clickX + 2] == 1

&& mapRule[clickY][clickX + 3] == 1 && mapRule[clickY][clickX + 4] == 1) {

wcheck++;

}

}


}

if (clickX > 3) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY][clickX - 1] == -1 && mapRule[clickY][clickX - 2] == -1

&& mapRule[clickY][clickX - 3] == -1 && mapRule[clickY][clickX - 4] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY][clickX - 1] == 1 && mapRule[clickY][clickX - 2] == 1

&& mapRule[clickY][clickX - 3] == 1 && mapRule[clickY][clickX - 4] == 1) {

wcheck++;

}

}

}

// x축 규칙 끝

// y축 규칙 시작

if (clickY < 10) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY + 1][clickX] == -1 && mapRule[clickY + 2][clickX] == -1

&& mapRule[clickY + 3][clickX] == -1 && mapRule[clickY + 4][clickX] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX] == 1 && mapRule[clickY + 2][clickX] == 1

&& mapRule[clickY + 3][clickX] == 1 && mapRule[clickY + 4][clickX] == 1) {

wcheck++;

}

}


}

if (clickY > 3) {

if (stoncolor % 2 == 0) {


if (mapRule[clickY - 1][clickX] == -1 && mapRule[clickY - 2][clickX] == -1

&& mapRule[clickY - 3][clickX] == -1 && mapRule[clickY - 4][clickX] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX] == 1 && mapRule[clickY - 2][clickX] == 1

&& mapRule[clickY - 3][clickX] == 1 && mapRule[clickY - 4][clickX] == 1) {

wcheck++;

}

}


}

// y축규칙끝


if (clickX < 10 && clickY < 10) {// z축규칙

if (stoncolor % 2 == 0) {


if (mapRule[clickY + 1][clickX + 1] == -1 && mapRule[clickY + 2][clickX + 2] == -1

&& mapRule[clickY + 3][clickX + 3] == -1

&& mapRule[clickY + 4][clickX + 4] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX + 1] == 1 && mapRule[clickY + 2][clickX + 2] == 1

&& mapRule[clickY + 3][clickX + 3] == 1

&& mapRule[clickY + 4][clickX + 4] == 1) {

wcheck++;

}

}

}

if (clickX > 3 && clickY > 3) {

if (stoncolor % 2 == 0) {


if (mapRule[clickY - 1][clickX - 1] == -1 && mapRule[clickY - 2][clickX - 2] == -1

&& mapRule[clickY - 3][clickX - 3] == -1

&& mapRule[clickY - 4][clickX - 4] == -1) {

bcheck++;

} // 흑의 z축규칙

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX - 1] == 1 && mapRule[clickY - 2][clickX - 2] == 1

&& mapRule[clickY - 3][clickX - 3] == 1

&& mapRule[clickY - 4][clickX - 4] == 1) {

wcheck++;

} // 흑의 z축규칙

}

}

if (clickX > 3 && clickY < 10) {

if (stoncolor % 2 == 0) {


if (mapRule[clickY + 1][clickX - 1] == -1 && mapRule[clickY + 2][clickX - 2] == -1

&& mapRule[clickY + 3][clickX - 3] == -1

&& mapRule[clickY + 4][clickX - 4] == -1) {

bcheck++;

} // 흑의 z축규칙

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX - 1] == 1 && mapRule[clickY + 2][clickX - 2] == 1

&& mapRule[clickY + 3][clickX - 3] == 1

&& mapRule[clickY + 4][clickX - 4] == 1) {

wcheck++;

} // 흑의 z축규칙

}

}

if (clickX < 10 && clickY > 3) {

if (stoncolor % 2 == 0) {


if (mapRule[clickY - 1][clickX + 1] == -1 && mapRule[clickY - 2][clickX + 2] == -1

&& mapRule[clickY - 3][clickX + 3] == -1

&& mapRule[clickY - 4][clickX + 4] == -1) {

bcheck++;

} // 흑의 z축규칙

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX + 1] == 1 && mapRule[clickY - 2][clickX + 2] == 1

&& mapRule[clickY - 3][clickX + 3] == 1

&& mapRule[clickY - 4][clickX + 4] == 1) {

wcheck++;

} // 흑의 z축규칙

}

}

// 2대2

if (clickX < 12 && clickX > 1) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY][clickX + 1] == -1 && mapRule[clickY][clickX + 2] == -1

&& mapRule[clickY][clickX - 1] == -1 && mapRule[clickY][clickX - 2] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY][clickX + 1] == 1 && mapRule[clickY][clickX + 2] == 1

&& mapRule[clickY][clickX - 1] == 1 && mapRule[clickY][clickX - 2] == 1) {

wcheck++;

}

}


}

if (clickY < 12 && clickY > 1) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY + 1][clickX] == -1 && mapRule[clickY - 1][clickX] == -1

&& mapRule[clickY + 2][clickX] == -1 && mapRule[clickY - 2][clickX] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX] == 1 && mapRule[clickY + 2][clickX] == 1

&& mapRule[clickY - 1][clickX] == 1 && mapRule[clickY - 2][clickX] == 1) {

wcheck++;

}

}


}

if ((clickY < 12 && clickY > 1) && (clickX < 12 && clickX > 1)) {

if (stoncolor % 2 == 0) {


if (mapRule[clickY - 1][clickX + 1] == -1 && mapRule[clickY - 2][clickX + 2] == -1

&& mapRule[clickY + 1][clickX - 1] == -1

&& mapRule[clickY + 2][clickX - 2] == -1) {

bcheck++;

} // 흑의 z축규칙

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX + 1] == 1 && mapRule[clickY - 2][clickX + 2] == 1

&& mapRule[clickY + 1][clickX - 1] == 1

&& mapRule[clickY + 2][clickX - 2] == 1) {

wcheck++;

} // 흑의 z축규칙

}

}

if ((clickY < 12 && clickY > 1) && (clickX < 12 && clickX > 1)) {

if (stoncolor % 2 == 0) {


if (mapRule[clickY - 1][clickX - 1] == -1 && mapRule[clickY - 2][clickX - 2] == -1

&& mapRule[clickY + 1][clickX + 1] == -1

&& mapRule[clickY + 2][clickX + 2] == -1) {

bcheck++;

} // 흑의 z축규칙

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX - 1] == 1 && mapRule[clickY - 2][clickX + 2] == 1

&& mapRule[clickY + 1][clickX + 1] == 1

&& mapRule[clickY + 2][clickX + 2] == 1) {

wcheck++;

} // 흑의 z축규칙

}

} // 2대2끝


// 1대3 3대1x축 규칙 시작

if (clickX < 11 && clickX > 0) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY][clickX + 1] == -1 && mapRule[clickY][clickX + 2] == -1

&& mapRule[clickY][clickX + 3] == -1 && mapRule[clickY][clickX - 1] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY][clickX + 1] == 1 && mapRule[clickY][clickX + 2] == 1

&& mapRule[clickY][clickX + 3] == 1 && mapRule[clickY][clickX - 1] == 1) {

wcheck++;

}

}


}

if (clickX > 2 && clickX < 13) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY][clickX - 1] == -1 && mapRule[clickY][clickX - 2] == -1

&& mapRule[clickY][clickX - 3] == -1 && mapRule[clickY][clickX + 1] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY][clickX - 1] == 1 && mapRule[clickY][clickX - 2] == 1

&& mapRule[clickY][clickX - 3] == 1 && mapRule[clickY][clickX + 1] == 1) {

wcheck++;

}

}


}


// x축끝

if (clickY < 11 && clickY < 0) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY + 1][clickX] == -1 && mapRule[clickY + 2][clickX] == -1

&& mapRule[clickY + 3][clickX] == -1 && mapRule[clickY - 1][clickX] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX] == 1 && mapRule[clickY + 2][clickX] == 1

&& mapRule[clickY + 3][clickX] == 1 && mapRule[clickY - 1][clickX] == 1) {

wcheck++;

}

}


}

if (clickY > 2 && clickY < 13) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY - 1][clickX] == -1 && mapRule[clickY - 2][clickX] == -1

&& mapRule[clickY - 3][clickX] == -1 && mapRule[clickY + 1][clickX] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX] == 1 && mapRule[clickY - 2][clickX] == 1

&& mapRule[clickY - 3][clickX] == 1 && mapRule[clickY + 1][clickX] == 1) {

wcheck++;

}

}


}

// y축끝

// Z축시작

if (clickY < 11 && clickX < 11) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY + 1][clickX + 1] == -1 && mapRule[clickY + 2][clickX + 2] == -1

&& mapRule[clickY + 3][clickX + 3] == -1

&& mapRule[clickY - 1][clickX - 1] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX + 1] == 1 && mapRule[clickY + 2][clickX + 2] == 1

&& mapRule[clickY + 3][clickX + 3] == 1

&& mapRule[clickY - 1][clickX - 1] == 1) {

wcheck++;

}

}


}

if (clickY > 2 && clickX > 2) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY - 1][clickX - 1] == -1 && mapRule[clickY - 2][clickX - 2] == -1

&& mapRule[clickY - 3][clickX - 3] == -1

&& mapRule[clickY + 1][clickX + 1] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX - 1] == 1 && mapRule[clickY - 2][clickX - 2] == 1

&& mapRule[clickY - 3][clickX - 3] == 1

&& mapRule[clickY + 1][clickX + 1] == 1) {

wcheck++;

}

}


}

if (clickX < 11 && clickY > 2) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY - 1][clickX + 1] == -1 && mapRule[clickY - 2][clickX + 2] == -1

&& mapRule[clickY - 3][clickX + 3] == -1

&& mapRule[clickY + 1][clickX - 1] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY - 1][clickX + 1] == 1 && mapRule[clickY - 2][clickX + 2] == 1

&& mapRule[clickY - 3][clickX + 3] == 1

&& mapRule[clickY + 1][clickX - 1] == 1) {

wcheck++;

}

}


}

if (clickX > 2 && clickY < 11) {

if (stoncolor % 2 == 0) {

if (mapRule[clickY + 1][clickX - 1] == -1 && mapRule[clickY + 2][clickX - 2] == -1

&& mapRule[clickY + 3][clickX - 3] == -1

&& mapRule[clickY - 1][clickX + 1] == -1) {

bcheck++;

}

} else if (stoncolor % 2 == 1) {

if (mapRule[clickY + 1][clickX - 1] == 1 && mapRule[clickY + 2][clickX - 2] == 1

&& mapRule[clickY + 3][clickX - 3] == 1

&& mapRule[clickY - 1][clickX + 1] == 1) {

wcheck++;

}

}


}


// Z축끝


if (bcheck == 1 || wcheck == 1) {

if (bcheck == 1) {


gameset = 1;

}

if (wcheck == 1) {


gameset = 2;

}

}

if (gameset == 1) {

JOptionPane.showMessageDialog(getParent(), "흑돌우승!!");

}

if (gameset == 2) {

JOptionPane.showMessageDialog(getParent(), "백돌우승!!");

}


stoncolor++;


mapcheck[clickX][clickY] = 0;

}

}


}


}

}


public static void main(String[] args) {

new TMproject();

}

}

//소스끝//







일단 제가 만든 오목알고리즘인데요..

실행창은 저렇게뜨고 여기 오목판 옆에 라벨을 붙이고싶은데 패널에 라벨을 아무리붙일려고 해봐도 안되더라고요.. 어떻게해야 오목판옆에 라벨을 달수있을까요