2012-02-11 16 views
0

私はTic-Tac-Toeコンソールゲームを作成する課題がありますが、私はちょっと立ち往生しています。インストラクターは、TicTacToe.javaをテストするために、コーディングの基準とドライバクラスを提供しました。 PlayTicTacToe.javaのドライバクラスで次のコードを実行すると、すべてうまくいきます。Javaドライバクラスのエラー

TicTacToe ttt = new TicTacToe(); 
ttt.playGame(); 

しかし、インストラクタが提供するもの(下)を使用するとエラーが発生し、理由がわかりません。

Scanner s = new Scanner(System.in); 
TicTacToe tictactoe = new TicTacToe('Sally', 'John'); 
System.out.print(“Would you like to play a game? Y/N: ”); 
String play = s.nextLine(); 
while(play.equals('Y')) 
{ 
tictactoe.playGame(); 
System.out.print(“Would you like to play a game? Y/N: ”); 
play = s.nextLine(); 
} 
TicTacToe tictactoe1 = new TicTacToe(“Sally”, “John”); 
TicTacToe tictactoe2 = new TicTacToe(“Sally”, “John”); 

// this will show true 
System.out.println(tictactoe1.equals(tictactoe2)); 
// this will invoke the toString as shown above 
System.out.println(tictactoe1); 

私が手にエラーがライン三目並べの三目並べ=新三目並べ(「サリー」、「ジョン」)です。 'Sally'に赤い下線を付けてエラー '無効な定例のチャーター'を生成します

推奨事項はありますか?

+0

単一文字は一重引用符「y」で表されます。文字列は二重引用符 '' John "'を使用します。したがって、一重引用符を二重引用符に置き換えてください。 –

答えて

2

Javaでは、単一引用符は文字(文字列ではない)を表すために使用されるため、一重引用符で囲むことができる文字は1つだけです。

変更二重引用符を使用するためのライン:

new TicTacToe("Sally", "John"); 
+0

引用符で囲んだ場合、System.out.printなどの行が破損します(「ゲームをしますか?Y/N:」); 「トークンの構文エラー、これらのトークンを削除する」というエラーが表示され、System.out.print全体が赤く下線付きになりました。 – David

+0

スマート引用符(Microsoft Word)を使用しているようです。それらは動作しません - あなたは定期的な引用符を使用していることを確認します。 –

+0

ビンゴ!私は単語から日食にカットアンドペーストするよりもよく知っているべきです。 – David

1

コードは名前('Sally', 'John')周りの単一引用符ではなく二重引用符("Sally", "John")を持っていること。いくつかの言語はこれでOKですが(例えばPython)、Javaはそれを許可しません。 Javaでは

1

、対に包まれたもの "しながら、文字を表し、「文字列を表す。

あなたが供給している『に変更し、間違っているサリー』を『サリー』。

すなわち「S」は有効なですが、「Ssが」ではありません。

  • あなたのエラーは、おそらく「無効な文字定数」ではなく「無効な定数文字」
0

CHであり、アンジュ:

TicTacToe tictactoe = new TicTacToe('Sally', 'John'); 

へ:

TicTacToe tictactoe = new TicTacToe("Sally", "John"); 

はおそらくTicTacToeコンストラクタは、文字列を期待しています。 'Sally'Stringではありません。

0

sallyは、一重引用符(')でマークされています。二重引用符で囲む必要があります(")。

関連する問題