?? nqueens.java
字號(hào):
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
//import java.awt.Frame;
public class doanver2 extends JFrame implements ActionListener {
private Image img=null ;
public doanver2()
{
super("DO AN CAU TRUC DU LIEU");
JButton button1;
button1=new JButton("CLICK DAY DE BAT DAU CHUONG TRINH");
button1.setBounds(0,580,650,40);
button1.addActionListener(this);
add(button1);
URL url = getClass().getResource("picture/gioithieu.jpg");
img = Toolkit.getDefaultToolkit().getImage(url);
}
public void paint(Graphics g)
{
g.drawImage(img,0,10,this);
}
public static void main (String args[]) {
doanver2 mywindow=new doanver2();
//mywindow.getContentPane();
mywindow.setLayout(null );
mywindow.setBounds(100,50,650,650);
mywindow.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent event){
System.exit(0);
}
}
) ;
//mywindow.setSize(new Dimension(650,650));
//mywindow.setVisible(true);
mywindow.show();
}
public void actionPerformed(ActionEvent event)
{
}
}
/* class NQUEEN2 extends JApplet implements ActionListener{
/*****************************
* SU DUNG GIAI THUAT QUAY LUI
*
******************************
JTextField Text1;
JTextField Text2=new JTextField(5);
int count=0; //So giai phap
int value;;//lay gia tri tu TextField
int N=50;
//Mang chua vi tri thoa man cua cac con hau
int m[][]=new int[8000*N][50];
int R[]=new int[N];
//Cot va 2 duong cheo, =1 nghia la khong co hau nao
boolean C[]=new boolean[N], T1[]=new boolean[2*N], T2[]=new boolean[2*N];
Container RequiredChessBoards; //Man hinh chua ket qua
JLabel nhan2;
ChessBoard Banco=new ChessBoard(m,1,8);
public void init()
{
for (int i=0; i<N; i++)
{
C[i] = true;
R[i] = -1;
}
for (int i=0; i<2*N-1; i++)
{
T1[i] = true;
T2[i] = true;
}
RequiredChessBoards = new JPanel();
add(RequiredChessBoards);
RequiredChessBoards.setLayout(null );
RequiredChessBoards.setSize(new Dimension(600,600));
Color xanh2=new Color(5,102,170) ;
RequiredChessBoards.setBackground(xanh2);
JLabel de1=new JLabel("SINH VIEN THUC HIEN:LE QUOC DUNG & LUU HOANG LONG");
de1.setFont(new java.awt.Font("Arial",1,16));
de1.setBounds(30,10,500,20);
RequiredChessBoards.add(de1);
JLabel de2=new JLabel("DE TAI:BAI TOAN DAT N QUAN HAU TREN BAN CO KICH THUOC N");
de2.setFont(new java.awt.Font("Arial",3,16));
de2.setBounds(30,30,550,40);
RequiredChessBoards.add(de2);
setFont(new java.awt.Font("Arial", 0, 16));
JLabel nhan=new JLabel("Nhap vao kich thuoc N cua ban co:");
nhan.setBounds(50,80,240,25);
RequiredChessBoards.add(nhan);
Text1=new JTextField(5);
Text1.setBounds(300,80,60,20);
RequiredChessBoards.add(Text1);
Text1.setText("8");
Text1.addActionListener(this);
nhan2=new JLabel(" ");
nhan2.setBounds(50,120,200,25);
RequiredChessBoards.add(nhan2);
RequiredChessBoards.add(Banco);
}
public void start()
{
//bien dem count=0 de bat dau dem
count=0;
String s=Text1.getText();
value=Integer.parseInt(s);
TryNextQueen(value,0);
RequiredChessBoards.remove(nhan2);
nhan2=new JLabel("Co "+count+" giai phap");
nhan2.setBounds(50,120,200,20);
RequiredChessBoards.add(nhan2);
if(count>=1)
{
JLabel nhan3=new JLabel("Chon giai phap muon hien thi");
nhan3.setBounds(50,150,220,25);
RequiredChessBoards.add(nhan3);
//Text2=new TextField(5);
Text2.setText("1");
Text2.addActionListener(this);
Text2.setBounds(300,150,60,20);
RequiredChessBoards.add(Text2);
DrawBoard();
}
if(count==0)
{
RequiredChessBoards.remove(Banco);
// RequiredChessBoards.remove(nhan3);
RequiredChessBoards.remove(Text2);
}
}
public void DrawBoard()
{
int value2;
String s2=Text2.getText();
value2=Integer.parseInt(s2);
RequiredChessBoards.remove(Banco);
Banco=new ChessBoard(m,value2,value);
Banco.setBounds(50,200,value*30+2,value*30+2);
RequiredChessBoards.add(Banco);
}
//GIAI THUAT QUAY LUI
public void TryNextQueen(int a,int NumRequiredQueen)
{
for (int col=0; col<a; col++) //Voi 1 dong i cho truoc ta cho cac cot chay
{
if (C[col]==true && T1[NumRequiredQueen+col]==true && T2[NumRequiredQueen-col+a]==true)
{
//Thu dat vi tri con hau o day
R[NumRequiredQueen] = col;
C[col] = false;
T1[NumRequiredQueen+col] = false;
T2[NumRequiredQueen-col+a] = false;
//Neu da tim du thi sang hang moi, neu khong tim tiep
if (NumRequiredQueen<a-1)
TryNextQueen(a,NumRequiredQueen + 1);
else
{
count++;
for(int i=0;i<a;i++)
m[count][i]=R[i];
}
//Cat bot hau
C[col] = true;
T1[NumRequiredQueen+col] = true;
T2[NumRequiredQueen-col+a] = true;
}
}
}
public void actionPerformed(ActionEvent event)
{ Object source=event.getSource();
if(source==Text1) start();
if(source==Text2) DrawBoard();
}
}
//LOP DUNG DE VE BAN CO
class ChessBoard extends Canvas
{
int giatri;
public ChessBoard(int poQueens[][],int b,int a)
{ giatri=a;
Queens = new int[a];
for(int i = 0; i < a; i++)
Queens[i] = poQueens[b][i];
}
public void paint(Graphics g)
{
Color xanh=new Color(0,0,100);
Color trang=new Color(255,255,200);
Color red1=new Color(255,30,30);
for(int i=0;i<giatri;i++)
for(int j=0;j<giatri;j++)
{ if(i%2==0)
{if(j%2==0) g.setColor(xanh);
else g.setColor(trang);
g.fillRect(j*30,i*30,30,30);
}
else {
if(j%2==0) g.setColor(trang);
else g.setColor(xanh);
g.fillRect(j*30,i*30,30,30);
}
}
g.setColor(red1);
for(int i=0;i<giatri;i++)
g.fillOval(i*30+4,Queens[i]*30+4,23,23);
}
int Queens[];
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -