Java課程設計html
開始
java
悔棋功能
git
從新開始
網絡
public Chess() { board = new ChessBoard(45, 45, 9, 10); record = board.record; setTitle("中國象棋:默認紅棋先行"); con = getContentPane(); JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, board, record); split.setDividerSize(5); split.setDividerLocation(460); con.add(split, BorderLayout.CENTER); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); setVisible(true); setBounds(60, 20, 670, 540); con.validate(); validate(); }
public void paintComponent(Graphics g)// 畫棋盤 { super.paintComponent(g); for (int j = 1; j <= yaxislength; j++) { g.drawLine(point[1][j].x, point[1][j].y, point[xaxislength][j].x, point[xaxislength][j].y);// 直線的起點座標,終點座標 } for (int i = 1; i <= xaxislength; i++) { if (i != 1 && i != xaxislength) { g.drawLine(point[i][1].x, point[i][1].y, point[i][yaxislength - 5].x, point[i][yaxislength - 5].y); g.drawLine(point[i][yaxislength - 4].x, point[i][yaxislength - 4].y, point[i][yaxislength].x, point[i][yaxislength].y);// 豎直畫線,多減一個格子整體向上平移一行 } else { g.drawLine(point[i][1].x, point[i][1].y, point[i][yaxislength].x, point[i][yaxislength].y); } } g.drawLine(point[4][1].x, point[4][1].y, point[6][3].x, point[6][3].y); g.drawLine(point[6][1].x, point[6][1].y, point[4][3].x, point[4][3].y); g.drawLine(point[4][8].x, point[4][8].y, point[6][yaxislength].x, point[6][yaxislength].y); g.drawLine(point[4][yaxislength].x, point[4][yaxislength].y, point[6][8].x, point[6][8].y); g.setFont(new Font("Serif", 6, 22)); g.drawString("楚 河 漢 界", point[2][5].x, point[2][6].y); }
public ChessDo(ChessBoard board, ChessPoint[][] point) { this.board = board; this.point = point; scroll = new JScrollPane(); ChessManual = new LinkedList<MoveStep>(); EatPiece = new LinkedList<Object>(); buttonStart = new JButton("從新開始"); buttonStart.setFont(new Font("平體", Font.PLAIN, 20)); buttonUndo = new JButton("悔棋"); buttonUndo.setFont(new Font("平體", Font.PLAIN, 20)); buttonExit = new JButton("退出"); buttonExit.setFont(new Font("平體", Font.PLAIN, 20)); setLayout(new BorderLayout()); add(buttonStart, BorderLayout.CENTER); add(buttonUndo, BorderLayout.NORTH); add(buttonExit, BorderLayout.SOUTH); buttonStart.addActionListener(this); buttonUndo.addActionListener(this); buttonExit.addActionListener(this); } public void recordChessManual(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); ChessManual.add(step); } public void recordPieceEaten(Object object) { EatPiece.add(object); } public LinkedList<MoveStep> getChessManual() { return ChessManual; } public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonStart) { ...... } }
(1)讓用戶能夠任意選擇先手 (2)悔棋規定悔棋步數 (3)勝利時彈出勝利窗口 (4)界面的美化 (5)從新開始時不用彈出一個窗口而是消除原先的全部步驟。
團隊成員 | 我的博客連接 | 任務分配 |
---|---|---|
吳慧婷[組長] | 吳慧婷的博客 | Chess類,ChessDo類,ChessRule類 |
姚佳希 | 姚佳希的博客 | ChessBoard類,ChessPoint類,ChessPiece類 |