特菜的鸟请教老鸟!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class HannoiTower(int number,int w,int h,char[] name,TextArea text)
{
towerName=name;
n=number;
width=w;
height=h;
text=text;
setLayout(null);
disk=new Disk[n];
point=new TowerPoint[3*n];
int space=20;
for(int i=0;i<n;i++)
{
point[i]=new TowerPoint(40+width,100+space,false);
space=space+height;
}
space=20;
for(int i=n;i<2*n;i++)
{
point[i]=new TowerPoint(160+width,100+space,false);
space=space+height;
}
space=20;
for(int i=2*n;i<3*n;i++)
{
point[i]=new TowerPoint(160+width,100+space,false);
space=space+height;
}
int tempwidth=width;
int sub=(int)(tempwidth*0.2);
for(int i=n-1;i>=0;i--)
{
disk[i]=new Disk(i,this);
disk[i].setSize(tempwidth,height);
tempwidth=tempwidth-sub;
}
for(int i=0;i<n;i++)
{
poin[i].putdisk(disk[i],this);
if(i>=1)
disk[i].setisshang(true);
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawLine(point[0].getX(),point[0].getY(),point[n-1].getX(),point[n-1].getY());
g.drawLine(point[n].getX(),point[n].getY(),point[2*n-1].getX(),point[2*n-1].getY());
g.drawLine(point[2*n-1].getX(),point[2*n-1].getY(),point[3*n-1].getX(),point[3*n-1].getY());
g.drawLine(point[n-1].getX()+width,point[n-1].getY(),point[3*n-1].getX()-width,point[3*n-1].getY());
int leftx=pont[n-1].getX()-width;
int lefty=point[n-1].getY();
int w=(point[3*n-1].getX()+width)-(point[n-1].getX().width);
int h=height/2;
g.setColor(Color.orange);
g.fillRect(letfx,lefty,w,h);
g.setColor(Color.red);
int Size=4;
for(int i=0;i<3*n;i++)
{
g.fillOval(point[i].getX()-size/2,point[i].getY().size/2,size,size);
}
g.drawString(""+towerName[0]+"塔",point[n-1].getX(),point[n-1].getY()+30);
g.drawString(""+towerName[1]+"塔",point[2*n-1].getX(),point[n-1].getY()+30);
g.drawString(""+towerName[0]+"塔",point[3*n-1].getX(),point[n-1].getY()+30);
g.drawString("将全部盘子从"+towerName[0]+"塔搬运到"+towerName[1]+"塔或"+towerName[2]+"塔",
point[n-1].getX(),point[n-1].getY(0+80);
}
public moveDisk(int number,char one,char two,char three)
{
if(n==1)
{
text.append(""+one+"dao:"+three+"ta/n");
Disk disk=getshmiandisk(one0;
int startI=getshmianposition(one);
int endI=geshmianshposition(three);
if(disk!=null)
{
point[endI].putdisk(disk,this);
point[startI].sethavedisk(false);
try{
thread.sleep(1000);
}
catch(Exception ee)
{
}
}
}
else {
movedisk(n-1,one,three,two);
text.append(""+one+"dao:"+three+"ta/n");
Disk disk=getshmiandisk(one);
int startI=getshmianposition(one);
int endI=getshmianshposition(three);
if(disk!=null)
{
point[endI].putdisk(disk,this);
point[startI].sethavedisk(false);
tyr{
thread.sleep(1000);
}
catch(Exception ee)
{}
movedisk(n-1,two,one,three);
}
}
}
public Disk getshmiandisk(char name)
{
Disk disk=null;
if(name==towerName[0])
{
for(int i=0;i<n;i++)
{
if(point[i].ishavedisk()==true)
{
disk=point[i].getdisk();
break;
}
}
}
if(name==towerName[1])
{
for(int i=n;i<2*n;i++)
{
if(point[i].ishavedisk()==true)
{
disk=point[i].getdisk();
break;
}
}
}
if(name==towerName[2])
{
for(int i=2*n;i<3*n;i++)
{
if(point[i].ishavedisk()==true)
{
disk=point[i].getdisk();
break;
}
}
}
return disk;
}
public int getshmianshposition(char name)
{
int position=0;
if(name==towerName[0])
{
int i=0;
for(i=0;i<n;i++)
{
if(point[i].sihavedisk()==true)
{
position=Math.max(i-1,0);
break;
}
}
if(i==n)
{
position=n-1;
}
}
if(name==towerName[1])
{
int i=0;
for(i=n;i<2*n;i++)
{
if(point[i].sihavedisk()==true)
{
position=Math.max(i-1,0);
break;
}
}
if(i==2*n)
{
position=2*n-1;
}
}
if(name==towerName[2])
{
int i=0;
for(i=2*;i<3*n;i++)
{
if(point[i].ishavedisk()==true)
{
position=Math.max(i-1,0);
break;
}
if(i==3*n)
{
position=3*n-1;
}
}
}
return position;
}
public int getshmianposition(char name)
{
int position=0;
if(name==towerName[0])
{
int i=0;
for(i=0;i<n;i++)
{
if(point[i].ishavedisk()==true)
{
position=i;
break;
}
}
if(i==n)
{
position=n-1;
}
}
if(name==towerName[1])
{
int i=0;
for(i=n;i<2n;i++)
{
if(point[i].ishavedisk()==true)
{
position=i;
break;
}
}
if(i==2*n)
{
position=2*n-1;
}
}
if(name==towerName[2])
{
int i=0;
for(i=2*n;i<3*n;i++)
{
if(point[i].ishavedisk()==true)
{
position=i;
break;
}
}
if(i==3*n)
{
position=3*n-1;
}
}
return position;
}
}
会出现以下错误:
C:\Documents and Settings\Administrator\My Documents\haonni\HannoiTower.java:5: '{' expected
public class HannoiTower(int number,int w,int h,char[] name,TextArea text)
^
1 error
Tool completed with exit code 1
很笨笨的鸟请教大虾:怎样改正这个错!
菜鸟表示感谢!
问题点数:0、回复次数:4Top
1 楼qjhaaaaa()回复于 2004-12-03 17:58:39 得分 0
这段代码不光是你贴出的错误,还有很多错误
有些变量都没有定义Top
2 楼tom2005(随海奔跑)回复于 2004-12-03 18:35:27 得分 0
(int number,int w,int h,char[] name,TextArea text)
这个没有见过
放在构造函数里
错误很多,代码不全,没法调试Top
3 楼index_2004(云飘飘)回复于 2004-12-03 20:34:32 得分 0
对不起,我挺粗心的!Top
4 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-04 10:38:47 得分 0
太长了,自己先整理一下,不要一下子全帖上来,别人也不好帮你Top




