回归迷宫游戏如何放置计时器?
问题描述:
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class Backtrack
{
private JFrame frame;
private JPanel panel;
private JTable table;
public Backtrack()
{
table = new JTable(5, 5){
DefaultTableCellRenderer render = new DefaultTableCellRenderer();
{
render.setHorizontalAlignment(SwingConstants.CENTER);
}
@Override
public TableCellRenderer getCellRenderer(int arg0, int arg1)
{
return render;
}
};
table.setRowHeight(55);
table.setCellSelectionEnabled(false);
table.setFont(new Font("Segoe UI", Font.BOLD, 32));
table.setValueAt("X", 1, 0);
table.setValueAt("X", 1, 2);
table.setValueAt("X", 1, 3);
table.setValueAt("X", 3, 1);
table.setValueAt("X", 4, 0);
table.setValueAt("X", 4, 2);
table.setValueAt("X", 2, 3);
table.setValueAt("X", 3, 4);
panel = new JPanel();
panel.setPreferredSize(new Dimension(500, 350));
panel.add(table);
frame = new JFrame("Backtracking Algorithm");
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(500, 300);
frame.add(panel);
frame.pack();
frame.setVisible(true);
solve(0, 0, 5);
}
public boolean solve(int row, int col, int n)
{
table.setValueAt("O", row, col);
try
{
Thread.sleep(500);
}
catch (Exception ex){}
if (row == n - 1 && col == n - 1)
{
return true;
}
//table.setValueAt("", row, col);
if (validMove(row, col - 1, n))
{
if (solve(row, col - 1, n))
{
return true;
}
}
if (validMove(row - 1, col, n))
{
if (solve(row - 1, col, n))
{
return true;
}
}
if (validMove(row, col + 1, n))
{
if (solve(row, col + 1, n))
{
return true;
}
}
if (validMove(row + 1, col, n))
{
if (solve(row + 1, col, n))
{
return true;
}
}
table.setValueAt("", row, col);
return false;
}
public boolean validMove(int row, int col, int n)
{
if (row > n - 1 || col > n - 1 || row < 0 || col < 0)
{
return false;
}
if (table.getValueAt(row, col) != null)
{
return false;
}
return true;
}
public static void main(String[] args)
{
Backtrack backtrack = new Backtrack();
}
}
我会感谢您的帮助T_T – XNC
考虑给你的问题的一些介绍....,而不是仅仅代码 – j4rey89
我的迷宫需要一个定时器和一个分数,其中在后到达目的地它会自动获得100分 – XNC