diff --git a/src/calcul.java b/src/calcul.java deleted file mode 100644 index 93e81b5..0000000 --- a/src/calcul.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.wuziqi; -import java.awt.event.*; -import java.awt.*; -import javax.swing.*; - -public class ChessBord extends JPanel implements MouseListener{ - //继承面板类和鼠标事件接口 - public static int MARGIN=30;//定义边距 - public static int ROWS=15;//定义行数 - public static int COLS=15;//定义列数 - public static int GRID_SPAN=35;//网格间距 - Chess[] chessList=new Chess[(ROWS+1)*(COLS+1)];//定义一个棋子数组 - String[][] board=new String[MARGIN*2+GRID_SPAN*COLS][MARGIN*2+GRID_SPAN*COLS];//声明一个字符串数组,用来判断输赢 - int chessCount;//棋子数目 - int xindex,yindex;//棋子的坐标索引 - boolean start=true;//开始默认黑子先下 - boolean GameOver=false;//定义是否游戏结束 - public ChessBord() {//棋盘类构造函数 - setBackground(Color.LIGHT_GRAY);//设置背景颜色 - addMouseListener(this);//将棋盘类添加到鼠标事件监听器 - addMouseMotionListener(new MouseMotionListener() {//匿名内部类 - @Override - public void mouseMoved(MouseEvent e) {//根据鼠标的移动所在的坐标来设置鼠标光标形状 - int x1=(e.getX()-MARGIN+GRID_SPAN/2)/GRID_SPAN;//对鼠标光标的x坐标进行转换 - int y1=(e.getY()-MARGIN+GRID_SPAN/2)/GRID_SPAN;//对鼠标光标的y坐标进行转换 - if(x1<0||x1>ROWS||y1<0||y1>COLS||GameOver||findchess(x1, y1)) { - setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标光标为默认形状 - }else { - setCursor(new Cursor(Cursor.HAND_CURSOR));//设置鼠标光标为手型 - } - } - @Override - public void mouseDragged(MouseEvent e) { - } - }); - for(int i=0;iROWS||yindex<0||yindex>COLS) {//棋子在棋盘外不能下, - return ; - }else if(findchess( xindex, yindex)) {//所下位置已有棋子,不能下 - return ; - } - Chess po=new Chess(xindex,yindex,start?Color.black:Color.WHITE);//对棋子对象进行初始化 - chessList[chessCount++]=po;//将棋子对象添加到棋子数组中 - repaint();//重画图型 - if(win( xindex,yindex,start)) {//判断是否胜利 - String msg=String.format("恭喜 %s赢了",colorName); - JOptionPane.showMessageDialog(this, msg); - //gameOver=true; - GameOver=true; - }else if(chessCount==(COLS+1)*(ROWS+1)) {//判断是否全部下满 - String msg=String.format("恭喜 %s赢了",colorName); - JOptionPane.showMessageDialog(this, msg); - GameOver=true; - } - start=!start;//改变棋子先下棋状态 - } - @Override - public void mouseReleased(MouseEvent e) { - } - @Override - public void mouseEntered(MouseEvent e) { - } - @Override - public void mouseExited(MouseEvent e) { - } - @Override - protected void paintComponent(Graphics g) {//画棋盘和棋子 - super.paintComponent(g); - for(int i=0;i<=ROWS;i++) {//画横线 - g.drawLine(MARGIN, MARGIN+i*GRID_SPAN, MARGIN+COLS*GRID_SPAN, MARGIN+i*GRID_SPAN); - } - for(int j=0;j<=COLS;j++) {//画竖线 - g.drawLine(MARGIN+j*GRID_SPAN, MARGIN, MARGIN+j*GRID_SPAN, MARGIN+ROWS*GRID_SPAN); - } - for(int i=0;i= 4 && x + y <= 30) { - int i = (x + y <= 19) ? x + y : x + y - 20; - if (x + y <= 19) { - for (int k = 0; k <= i - 4; k++) { - if (board[k][i - k].equals(str) && board[k + 2][20 - k - 1].equals(str) && board[k + 2][20 - k - 2].equals(str) && board[k + 3][20 - k - 3].equals(str) && board[k + 4][20 - k - 4].equals(str)) - return true; - } - } - } - //棋子所在捺行是否有五子相连的情况 - if (y - x <= 15 && x - y <= 15) { - int i = (x < y) ? y - x : x - y; - if (x < y) { - for (int k = 0; k <= 10 - 4 - i; k++) { - if (board[k][i + k].equals(str) && board[k + 1][i + k + 1].equals(str) && board[k + 2][k + i + 2].equals(str) && board[k + 3][k + i + 3].equals(str) && board[k + 4][k + i + 4].equals(str)) - return true; - } - } - } - return false; - } - public void goback(){///悔棋函数 - if (chessCount==0){ - return ; - } - chessList[chessCount-1]=null; - chessCount--; - if (chessCount>0){ - xindex=chessList[chessCount-1].getX(); - yindex=chessList[chessCount-1].getY(); - } - start=!start; - repaint(); - } - public void restartGame(){ - //重新开始函数 - for (int i=0;i