Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.event.*;
- import javax.swing.*;
- public class Board extends JPanel implements ActionListener {
- static final long serialVersionUID = 1;
- boolean isFirst = true;
- int finI;
- int finJ;
- int finPos;
- int startPos;
- int startI;
- int startJ;
- WhiteChecker w;
- BlackChecker b;
- WhiteCheckerWW ww;
- BlackCheckerBB bb;
- public Image img;
- Timer time;
- static boolean nextTurn = false;
- public Board() {
- w = new WhiteChecker();
- b = new BlackChecker();
- ww = new WhiteCheckerWW();
- bb = new BlackCheckerBB();
- addMouseListener(new MouseAdapter() {
- public void mousePressed(MouseEvent e) {
- if (isFirst == true
- && (Checker.hist[e.getX() / 44][e.getY() / 44] == 2 || Checker.hist[e
- .getX() / 44][e.getY() / 44] == 3)) {
- pressed(e.getX(), e.getY());
- isFirst = false;
- nextTurn = true;
- }
- if (nextTurn == false
- && (Checker.hist[e.getX() / 44][e.getY() / 44] == 2 || Checker.hist[e
- .getX() / 44][e.getY() / 44] == 3)) {
- pressed(e.getX(), e.getY());
- nextTurn = true;
- }
- if (isFirst == false
- && nextTurn == true
- && (Checker.hist[e.getX() / 44][e.getY() / 44] == 1 || Checker.hist[e
- .getX() / 44][e.getY() / 44] == 5)) {
- pressed(e.getX(), e.getY());
- nextTurn = false;
- }
- }
- public void mouseReleased(MouseEvent e) {
- finI = e.getX() / 44;
- finJ = e.getY() / 44;
- startPos = Checker.hist[startI][startJ];
- finPos = Checker.hist[finI][finJ];
- if (((quarter(finI, finJ) == 1 || quarter(finI, finJ) == 2) && startPos == 2)
- || ((quarter(finI, finJ) == 4 || quarter(finI, finJ) == 3) && startPos == 1)) {
- if (Math.abs(startI - finI) == 1
- && Math.abs(startJ - finJ) == 1) {
- move(finI, finJ);
- }
- }
- if ((startPos == 3 || startPos == 5)
- && Math.abs(startI - finI) == Math.abs(startJ - finJ)) {
- move(finI, finJ);
- }
- remove(finI, finJ);
- }
- });
- setFocusable(true);
- ImageIcon i = new ImageIcon("src/1.gif");
- img = i.getImage();
- time = new Timer(5, this);
- time.start();
- }
- public void actionPerformed(ActionEvent e) {
- repaint();
- }
- public void pressed(int x, int y) {
- for (int j = 0; j < 8; j++) {
- for (int i = 0; i < 8; i++) {
- if (i == x / 44 && j == y / 44) {
- startI = i;
- startJ = j;
- }
- }
- }
- }
- public void move(int finI, int finJ) {
- if (Checker.hist[finI][finJ] == 4) {
- int temp;
- temp = Checker.hist[finI][finJ];
- Checker.hist[finI][finJ] = Checker.hist[startI][startJ];
- Checker.hist[startI][startJ] = temp;
- if (finJ == 7 && startPos == 1)
- Checker.hist[finI][finJ] = 5;
- if (finJ == 0 && startPos == 2)
- Checker.hist[finI][finJ] = 3;
- }
- }
- public int quarter(int finI, int finJ) {
- int rez = 0;
- if (finI < startI && finJ < startJ) {
- rez = 1;
- }
- if (finI > startI && finJ < startJ) {
- rez = 2;
- }
- if (finI > startI && finJ > startJ) {
- rez = 3;
- }
- if (finI < startI && finJ > startJ) {
- rez = 4;
- }
- return rez;
- }
- public void remove(int finI, int finJ) {
- if (Math.abs(startI - finI) == 2 && Math.abs(startJ - finJ) == 2) {
- if (quarter(finI, finJ) == 1
- && startPos != Checker.hist[finI + 1][finJ + 1]) {
- Checker.hist[finI + 1][finJ + 1] = 4;
- move(finI, finJ);
- }
- if (quarter(finI, finJ) == 2
- && startPos != Checker.hist[finI - 1][finJ + 1]) {
- move(finI, finJ);
- Checker.hist[finI - 1][finJ + 1] = 4;
- }
- if (quarter(finI, finJ) == 3
- && startPos != Checker.hist[finI - 1][finJ - 1]) {
- move(finI, finJ);
- Checker.hist[finI - 1][finJ - 1] = 4;
- }
- if (quarter(finI, finJ) == 4
- && startPos != Checker.hist[finI + 1][finJ - 1]) {
- move(finI, finJ);
- Checker.hist[finI + 1][finJ - 1] = 4;
- }
- }
- if (startPos == 3 && quarter(finI + 1, finJ) == 1) {
- int dead = 0;
- int tempI = 0;
- int tempJ = 0;
- for (int i = finI + 1; i < startI; i++) {
- for (int j = finJ + 1; i < startJ; j++) {
- if (Checker.hist[i][j] == 1 || Checker.hist[i][j] == 5) {
- if (i == j) {
- dead++;
- tempI = i;
- tempJ = j;
- }
- }
- }
- }
- if (dead == 1) {
- Checker.hist[tempI][tempJ] = 4;
- move(finI, finJ);
- }
- }
- }
- public void paint(Graphics g) {
- Graphics g2d = g;
- g2d.drawImage(img, 0, 0, null);
- for (int j = 0; j < 8; j++) {
- for (int i = 0; i < 8; i++) {
- if (Checker.hist[i][j] == 1) {
- g2d.drawImage(b.getImage(), i * 44, j * 44, null);
- }
- if (Checker.hist[i][j] == 2) {
- g2d.drawImage(w.getImage(), i * 44, j * 44, null);
- }
- if (Checker.hist[i][j] == 3) {
- g2d.drawImage(ww.getImage(), i * 44, j * 44, null);
- }
- if (Checker.hist[i][j] == 5) {
- g2d.drawImage(bb.getImage(), i * 44, j * 44, null);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment