⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makechessmanual.java

📁 这是关于java编程的一本书书的源代码 一共有15章
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.LinkedList;

public class MakeChessManual extends JPanel implements ActionListener
{
  JTextArea text=null;
  JScrollPane scroll=null;
  ChessBoard board=null;
  ChessPoint[][] point;
  LinkedList 棋谱=null;
  LinkedList 吃掉的棋子=null;    
  JButton buttonUndo;
  int i=0;
  public MakeChessManual(ChessBoard board,ChessPoint[][] point)   
  {
   this.board=board;
   this.point=point;
   text=new JTextArea();
   scroll=new JScrollPane(text);
   棋谱=new LinkedList();
   吃掉的棋子=new LinkedList();
   buttonUndo=new JButton("悔棋");
   buttonUndo.setFont(new Font("隶书",Font.PLAIN,18));
   setLayout(new BorderLayout());
   add(scroll,BorderLayout.CENTER);
   add(buttonUndo,BorderLayout.SOUTH);
   buttonUndo.addActionListener(this);
  }
  public char numberToLetter(int n)   
  { 
    char c='\0';
    switch(n)
     {
       case 1 : c='A'; break;
       case 2 : c='B'; break;
       case 3 : c='C'; break;
       case 4 : c='D'; break;
       case 5 : c='E'; break;
       case 6 : c='F'; break;
       case 7 : c='G'; break;
       case 8 : c='H'; break;
       case 9 : c='I'; break;
       case 10 : c='J'; break;
     } 
    return c;
  }
  public void 记录棋谱(ChessPiece piece,int startI,int startJ,int endI,int endJ)
  { 
     Point pStart=new Point(startI,startJ);
     Point pEnd=new Point(endI,endJ);
     MoveStep step=new MoveStep(pStart, pEnd);
     棋谱.add(step);
     
     String 棋子类别=piece.棋子类别();
     String name=piece.getName();
     String m="#"+棋子类别+name+": "+
              startI+numberToLetter(startJ)+" 到 "+endI+numberToLetter(endJ);
     text.append(m);
     if(piece.棋子类别().equals(board.黑方颜色))
        text.append("\n");
  }
 public void 记录吃掉的棋子(Object object)
  {
     吃掉的棋子.add(object);
  }
 
  public LinkedList 获取棋谱()
  {
     return 棋谱;
  }
 public void actionPerformed(ActionEvent e)
  { 
   int position=text.getText().lastIndexOf("#");
   if(position!=-1)
     text.replaceRange("",position,text.getText().length());
   if(棋谱.size()>0)
     {
      MoveStep lastStep=(MoveStep)棋谱.getLast();
      棋谱.removeLast();
      Object qizi=吃掉的棋子.getLast();
      吃掉的棋子.removeLast();
      String temp=qizi.toString();
     if(temp.equals("没吃棋子"))
      {
        int startI=lastStep.pStart.x;
        int startJ=lastStep.pStart.y; 
        int endI=lastStep.pEnd.x;
        int endJ=lastStep.pEnd.y; 
        ChessPiece piece=point[endI][endJ].getPiece();
        
        point[startI][startJ].setPiece(piece,board);
        (point[endI][endJ]).set有棋子(false);
 
        if(piece.棋子类别().equals(board.红方颜色))
         {
           board.红方走棋=true;
           board. 黑方走棋=false;
         }
        if(piece.棋子类别().equals(board.黑方颜色))
         {
           board.黑方走棋=true;
           board.红方走棋=false;
         }
       }
     else
       {
         ChessPiece removedPiece=(ChessPiece)qizi;
         int startI=lastStep.pStart.x;
         int startJ=lastStep.pStart.y; 
         int endI=lastStep.pEnd.x;
         int endJ=lastStep.pEnd.y; 
         ChessPiece piece=point[endI][endJ].getPiece();
         point[startI][startJ].setPiece(piece,board);     
         point[endI][endJ].setPiece(removedPiece,board);  
         (point[endI][endJ]).set有棋子(true);
 
        if(piece.棋子类别().equals(board.红方颜色))
         {
           board.红方走棋=true;
           board. 黑方走棋=false;
         }
        if(piece.棋子类别().equals(board.黑方颜色))
         {
           board.黑方走棋=true;
           board.红方走棋=false;
         }
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -