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

📄 goboard.java

📁 java 开发的围棋打谱程序 可供大家做参考
💻 JAVA
字号:
package org.nebula.goapplet;

import java.util.*;
import java.awt.*;
import java.net.*;

import org.nebula.cwt.grid.*;
import org.nebula.cutil.*;


/**
 * GoBoard
 *
 * Description:
 *
 * @author harry
 *
 */
public class GoBoard extends Grid {

    GoApplet app = null;

//    Image back_img, black_img, white_img;

    String comment = null;
    Vector v = new Vector();
    Font font;

    public GoBoard(GoApplet app, GoBoardModel gm) {
        super(gm.getGridModel(), 12, 12, 24, 24);
        this.app = app;
/*        
        MediaTracker  mt  =  new  MediaTracker(this);  
        black_img  =  app.getImage(app.getCodeBase(),  "/img/black2.png");  
        white_img  =  app.getImage(app.getCodeBase(),  "/img/white2.png");  
                                                     
        mt.addImage(black_img,  0);  
        mt.addImage(white_img,  0);  
        try    
        {  
           mt.waitForAll();  //??????  
        }  
        catch  (Exception  ex)    
        {  
           Logger.debug(ex.toString());  
        }
*/        
//        white_img  =  app.getImage(this.getClass().getResource("/img/white2.png"));
//        black_img  =  app.getImage(this.getClass().getResource("/img/black2.png"));
    }

    public void setComment(String c) {
//        repaint();
    }

    public void drawBackground(Graphics g){
        if (font == null) font = g.getFont();

	    int b = getLeftBorder();
        int cb = getCubicWidth();

        g.setColor(new Color(255, 255, 255));
        g.fillRect(0, 0, getWidth(), getHeight());
        
        g.setColor(new Color(0xffd020));
//        g.fillRect(0, 0, getWidth(), getHeight());
        g.fillRect(0, 0, cb * model.getColumns() + 2*b, cb * model.getColumns() + 2*b);

//        g.setColor(Color.BLACK);
//	    g.fillArc(0, 0, cb, cb, 0, 360);

        g.setColor(new Color(0));
        g.translate(b+cb/2, b+cb/2);

        for (int i = 0 ; i < model.getRows() ; i++){
			g.drawLine(0, i * cb, cb * (model.getColumns()-1), i * cb);
            g.drawLine(i * cb, 0, i * cb , cb * (model.getColumns()-1));
		}

        g.translate(-(b+cb/2), -(b+cb/2));
    }

	public void drawCustom(Graphics g) {
    }

    public void drawCubic(Graphics g, int col, int row){
//        Logger.debug("showing cubic: [" + col + "," + row + "]");

        GoPoint p = (GoPoint) getModel().getObject(col, row);

        int cb = getCubicWidth();
        boolean isEmpty = false;
        
        if (p.getState() == GoPoint.BLACK) {
        	Logger.debug("showing black [" + col + "," + row + "," + cb+ "]");
            g.setColor(Color.BLACK);
    	    g.fillArc(cb / 12, cb / 12, 5*cb / 6, 5*cb / 6, 0, 360);
        }
        else if (p.getState() == GoPoint.WHITE) {
        	Logger.debug("showing white [" + col + "," + row + "," + cb + "]");
            g.setColor(Color.WHITE);
    	    g.fillArc(cb / 12, cb / 12, 5*cb / 6, 5*cb / 6, 0, 360);
            g.setColor(Color.BLACK);
    	    g.drawArc(cb / 12, cb / 12, 5*cb / 6, 5*cb / 6, 0, 360);
        }
        else {
            isEmpty = true;
            if (((col == 3) || (col == 9) || (col == 15)) && ((row == 3) || (row == 9) || (row == 15)))
            {
                g.setColor(new Color(0));
    	        g.fillArc(cb / 2 - 2, cb / 2 - 2, 4, 4, 0, 360);
            }
        }

        if (p.getStyle() == GoPoint.HIGHLIGHT) {
                g.setColor(new Color(255, 0, 0));
    	        g.fillArc(cb / 3, cb / 3, cb / 3, cb / 3, 0, 360);
        }

        if (p.getTip() != GoPoint.NONE) {
            g.setColor(Color.red);
            int c = p.getTip();
            if (c == GoPoint.TRIANGLE) {
                int[] xx = {cb/2, cb * 3/4, cb/4};
                int[] yy = {cb/5, cb * 3/5, cb * 3/5};
                g.fillPolygon(xx, yy, 3);
            }
            else if (c == GoPoint.SQUARE) {
                g.fillRect(cb/4, cb/4, cb/2, cb/2);
            }
            else if (c == GoPoint.CIRCLE) {
                g.drawOval(cb/4, cb/4, cb/2, cb/2);
            }
            else if (c == GoPoint.CROSS) {
                g.drawLine(cb/4, cb/4, cb * 3/4, cb * 3/4);
                g.drawLine(cb/4, cb * 3/4, cb * 3/4, cb/4);
            }
            else {
                if (isEmpty) {
                    g.setColor(new Color(206,207, 250));
                    g.drawLine(cb/4, cb/2, cb * 3/4, cb/2);
                    g.drawLine(cb/2, cb/4, cb/2, cb * 3/4);
                    g.setColor(Color.red);
                }
                char cp = (char)c;
                Logger.debug("show tip [" + col + "," + row + "," + cp + "]");
                Font ft = g.getFont();
                g.setFont(new Font(ft.getName(), ft.getStyle(), 12));
                g.drawString("" + cp, cb * 2/5, cb * 2/3);
            }
        }        
        
    }

}

⌨️ 快捷键说明

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