RSS feed
[root]
/
mazeexample
/
statespace
/
search
/
src
/
ai
/
document
login:
password:
title search:
Search this site
Enter your search terms
Web
www.carfield.com.hk
Submit search form
Prev
Next
Sat Jan 19 16:00:00 GMT 2002
MazeBreadthFirstSearch
import javax.swing.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; /** * Title: MazeBreadthFirstSearch<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 MazeBreadthFirstSearch extends javax.swing.JFrame { JPanel jPanel1 = new JPanel(); BreadthFirstSearchEngine currentSearchEngine = null; public MazeBreadthFirstSearch() { try { jbInit(); } catch (Exception e) { System.out.println("GUI initilization error: " + e); } currentSearchEngine = new BreadthFirstSearchEngine(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 || (x==0 && y==0)) { 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); } } } // redraw the path in black: g2.setColor(Color.black); Dimension [] path = currentSearchEngine.getPath(); for (int i=1; i< (path.length-1); i++) { int x = path[i].width; int y = path[i].height; short val = maze.getValue(x,y); g2.drawString("" + (path.length - i), 16 + x * 28, 19 + y * 29); } g.drawImage(image, 30, 40, 320, 320, null); } public static void main(String[] args) { MazeBreadthFirstSearch mazeSearch1 = new MazeBreadthFirstSearch(); } private void jbInit() throws Exception { this.setContentPane(jPanel1); this.setCursor(null); this.setDefaultCloseOperation(3); this.setTitle("MazeBreadthFirstSearch"); 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); } }
(google search)
(amazon search)
1
2
3
second
download zip of files only
Prev
Next