0
私の学校では、私たちは「バトルシップの完璧なゲーム」をコーディングすることを任されています。これを行うために、ファイル、ships.txtが与えられます。このファイルは、スキャンしてA、P、B、S、Cのいずれかの船を探して、その場所をプリントアウトする必要があります。これは、ファイル(10×10)である:ファイルスキャナが行間をスキップ
(0,2)
(0,3)
(0,4)
(2,3)
(2,9)
(3,3)
(3,5)
(3,6)
(3,7)
(3,9)
(4,3)
(4,9)
(5,3)
(5,9)
(6,3)
(8,7)
(8,8)
問題はEclipseの版画ということです:私は答えがあることを知っている
import java.util.Scanner;
import java.io.*;
public class BattleShip{
public static void main(String[] args)throws IOException{
Scanner scf = new Scanner(new File("ships.txt"));
String line = "p";
for(int c = 0; c<10;c++){
line = scf.nextLine() + " ";
for(int h = 0;h<10;h++){
boolean isShip = line.substring(h,h+1).equalsIgnoreCase(".");
if(isShip == false){
System.out.println(c + "," + h);
}
}
}
}
}
:ここ
..CCC.....
..........
...A.....B
...A.SSS.B
...A.....B
...A......
..........
.......PP.
..........
..........
私が持っているコードです。アウト:
(0,2)
(0,3)
(0,4)
(2,3)
(2,9)
(3,3)
(3,5)
(3,6)
(3,7)
(3,9)
(4,3)
(4,9)
(5,3)
(7,7)
(7,8)
私の最高の推測はtですスキャナが5行目をスキップしていますが、私の人生のために、それを修正する理由や方法を理解できません。誰かが助けてくれますか?コードを少し微調整して
予想される出力を再度確認してください。そして、あなたのコードは** 0ベースの**(ループインデックス)で動作することを覚えておいてください! – Paul
プログラムが正しい座標を印刷しています。あなたが「知っている」答えは間違っています。 – Joe
それはほぼ正しいですが、1)17の船があり、2)パトロールボート(PP)が第8列にあり、最後に3)0が第1列ですと列。 – Jason