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

📄 mazedepthfirstsearch.java

📁 人工智能代码JAVA程序,包括神经网络,遗传算法
💻 JAVA
字号:
import javax.swing.*;import java.awt.*;import java.awt.image.*;import java.awt.event.*;/** * Title:        MazeDepthFirstSearch<p> * Description:  Demo program for Java AI Programming<p> * Copyright:    Copyright (c) Mark Watson, Released under Open Source Artistic License<p> * Company:      Mark Watson Associates<p> * @author Mark Watson * @version 1.0 */public class MazeDepthFirstSearch extends javax.swing.JFrame {    JPanel jPanel1 = new JPanel();    DepthFirstSearchEngine currentSearchEngine = null;    public MazeDepthFirstSearch() {        try {          jbInit();        } catch (Exception e) {          System.out.println("GUI initilization error: " + e);        }        currentSearchEngine = new DepthFirstSearchEngine(10, 10);        repaint();    }    public void paint(Graphics g_unused) {        if (currentSearchEngine == null) return;        Maze maze = currentSearchEngine.getMaze();        int width = maze.getWidth();        int height = maze.getHeight();        System.out.println("Size of current maze: " + width + " by " + height);        Graphics g = jPanel1.getGraphics();        BufferedImage image = new BufferedImage(320, 320, BufferedImage.TYPE_INT_RGB);        Graphics g2 = image.getGraphics();        g2.setColor(Color.white);        g2.fillRect(0, 0, 320, 320);        g2.setColor(Color.black);        for (int x=0; x<width; x++) {            for (int y=0; y<height; y++) {                short val = maze.getValue(x,y);                if ( val == Maze.OBSTICLE) {                    g2.setColor(Color.lightGray);                    g2.fillRect(6 + x * 28, 3 + y * 29, 29, 30);                } else if (val == Maze.START_LOC_VALUE || val == 1) {                    g2.setColor(Color.blue);                    g2.drawString("S", 16 + x * 28, 19 + y * 29);                } else if (val == Maze.GOAL_LOC_VALUE) {                    g2.setColor(Color.red);                    g2.drawString("G", 16 + x * 28, 19 + y * 29);                } else if (val > 0) {                    //g2.setColor(Color.green);                    //g2.drawString("" + val, 16 + x * 28, 19 + y * 29);                }            }        }        // redraw the path in black:        g2.setColor(Color.black);        Dimension [] path = currentSearchEngine.getPath();        for (int i=1; i< path.length; i++) {          int x = path[i].width;          int y = path[i].height;          short val = maze.getValue(x,y);          g2.drawString("" + val, 16 + x * 28, 19 + y * 29);        }        g.drawImage(image, 30, 40, 320, 320, null);    }    public static void main(String[] args) {        MazeDepthFirstSearch mazeSearch1 = new MazeDepthFirstSearch();    }    private void jbInit() throws Exception {        this.setContentPane(jPanel1);        this.setCursor(null);        this.setDefaultCloseOperation(3);        this.setTitle("MazeDepthFirstSearch");        this.getContentPane().setLayout(null);        jPanel1.setBackground(Color.white);        jPanel1.setDebugGraphicsOptions(DebugGraphics.NONE_OPTION);        jPanel1.setDoubleBuffered(false);        jPanel1.setRequestFocusEnabled(false);        jPanel1.setLayout(null);        this.setSize(370, 420);        this.setVisible(true);    }}

⌨️ 快捷键说明

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