2017-11-02 13 views
1

私はハングマンゲームをJavaで作成し始めています。
私は、ユーザが文字を間違っているかどうかに基づいてメソッド状態を呼び出せます。
すべての状態が正しく表示されるようにすべての状態をテストしています。
状態1と2は正しく表示されますが、3-5では正しく表示されません。ここでJava Hangman ASCII Art奇妙な出力

はコードです:ここでは

public void state_1() { 
     System.out.println(" \n" 
       + " ------\n" 
       + "|  |\n" 
       + "|  O\n" 
       + "|\n" 
       + "|\n" 
       + "|\n" 
       + "|\n" 
       + "|\n" 
       + "|\n" 
       + "|"); 
     System.out.println("\n" 
       + ""); 
    } 
    public void state_2() { 
     System.out.println(" \n" 
       + " ------\n" 
       + "|  |\n" 
       + "|  O\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "|\n" 
       + "|\n" 
       + "|\n" 
       + "|"); 
     System.out.println("\n" 
       + ""); 
    } 
    public void state_3() { 
     System.out.println(" \n" 
       + " ------\n" 
       + "|  |\n" 
       + "|  O\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "| /\\n" 
       + "| / \\n" 
       + "| / \\"); 
     System.out.println("\n" 
       + ""); 
    } 
    public void state_4() { 
     System.out.println(" \n" 
       + " ------\n" 
       + "|  |\n" 
       + "|  O /\n" 
       + "|  | /\n" 
       + "|  |/\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "| /\\n" 
       + "| / \\n" 
       + "| / \\"); 
     System.out.println("\n" 
       + ""); 
    } 
    public void state_5() { 
     System.out.println(" \n" 
       + " ------\n" 
       + "|  |\n" 
       + "| \\ O /\n" 
       + "| \\ | /\n" 
       + "|  \\|/\n" 
       + "|  |\n" 
       + "|  |\n" 
       + "| /\\n" 
       + "| / \\n" 
       + "| / \\"); 
     System.out.println("\n" 
       + ""); 
    } 

は奇妙出力されます:

------ 
|  | 
|  O 
| 
| 
| 
| 
| 
| 
| 



------ 
|  | 
|  O 
|  | 
|  | 
|  | 
| 
| 
| 
| 



------ 
|  | 
|  O 
|  | 
|  | 
|  | 
|  | 
| /\n| / \n| / \ 



------ 
|  | 
|  O/
|  |/
|  |/ 
|  | 
|  | 
| /\n| / \n| / \ 



------ 
|  | 
| \ O/
| \ |/
|  \|/ 
|  | 
|  | 
| /\n| / \n| / \ 

私がやるべきシンプルなものがあると確信していますが、私が知っているように私は確かにだけではないです新しい行 "\ n"が作成される前に\ partに問題があります。
これを回避するには、私はあなたの助けが必要です。

答えて

4

"\\n"は、印刷出力では\nとなります。

\と改行("\\\n")が必要な場合は、スラッシュをエスケープして改行を入れます。

また、それぞれの行を個別にprintln()にすることもできます。私はあなただけ毎回のSystem.out.println行うことができます知っている

System.out.println(); 
    System.out.println(" ------ "); 
    System.out.println("|  |"); 
    System.out.println("|  O"); 
    ... 
    System.out.println("| / \\"); 
    System.out.println("| / \\"); 
+0

もののそれでも、バックスラッシュをエスケープする必要があり、私はもしかしたら、私はそれをやっていた方法のようにそれを行うためのより良い方法があると思いました。私が\\ nで試してみると、無効なシーケンスが返ってくるだけです。それは私が避けようとしていたもので、私は足をその問題を解決するために置いた。だから私は毎回system.out.printlnを実行するだけで修正できますか? –

+0

これは修正ではありません。文字列の最後に '\ n'を取り除き、改行がどこにあるかを保証します。 –

+0

無効なシーケンスはどこから手に入りますか? https://ideone.com/WqYHAb –