基本的に、私はAP Comp Sciクラスで今行っているGridWorld Projectを持っています。私はパックマンをやっている。ここではactメソッドのために私のコードです(GridWorldに慣れていない人のためには、actメソッドは、俳優が新しい動きを作ることが予想されるたびに呼ばれている):IllegalArgumentExceptionをスローしてキャッチするにはどうすればよいですか?
public void act()
{
Location loc = getLocation();
if(direction==null) {
}
else if(direction.equals("NORTH")) {
Location next = loc.getAdjacentLocation(loc.NORTH);
if(getGrid().isValid(next) && (getGrid().get(next)==null || getGrid().get(next) instanceof Food)) {
if(getGrid().get(next) instanceof Food)
addFood();
moveTo(next);
direction = "NORTH";
}
}
else if(direction.equals("SOUTH")) {
Location next = loc.getAdjacentLocation(loc.SOUTH);
if(getGrid().isValid(next) && (getGrid().get(next)==null || getGrid().get(next) instanceof Food)) {
if(getGrid().get(next) instanceof Food)
addFood();
moveTo(getLocation().getAdjacentLocation(getLocation().SOUTH));
direction = "SOUTH";
}
}
else if(direction.equals("EAST")) {
Location next = loc.getAdjacentLocation(loc.EAST);
if(getGrid().isValid(next) && (getGrid().get(next)==null || getGrid().get(next) instanceof Food)) {
if(getGrid().get(next) instanceof Food)
addFood();
moveTo(getLocation().getAdjacentLocation(getLocation().EAST));
direction = "EAST";
}
else if(getLocation().getCol()==20 && getLocation().getRow()==9) {
moveTo(new Location(9,0));
direction = "EAST";
}
}
else if(direction.equals("WEST")) {
Location next = loc.getAdjacentLocation(loc.WEST);
if(getGrid().isValid(next) && (getGrid().get(next)==null || getGrid().get(next) instanceof Food)) {
moveTo(getLocation().getAdjacentLocation(getLocation().WEST));
direction = "WEST";
}
else if(getLocation().getCol()==0 && getLocation().getRow()==9) {
moveTo(new Location(9,20));
direction = "WEST";
}
}
}
最後の二つで奇妙な言葉遣いの理由私はパックマンが実際のゲームでテレポートすることができるようにしたい。今私はゲームを実行すると、それは動作している時間の約90%が、他の10%で私はIllegalArgumentExceptionを取得するbcは、私はボード上にない場所に移動しようとしていると言う(例えば(9、-1 )および(9,21))。私はこのことが起こらないようにするために、どのように捕まえたり投げたりすることができるかを知りたい。私はキャッチやスローを使用したことがないので、あなたの推論のありがとうを説明しようとしてください!
ありがとうございます!だから、私はあなたのアドバイスを取ったが、しばらく時間がかかりましたが、最終的に私が間違っていたところで見つけられ、ちょうどそれを修正しました。 –
クール、最高のソリューションで終わった、あなたがそれを解決してうれしい! –