2016-09-15 4 views
1

別々の場所に2つのシンボルがある100ドットのラインを作成する必要があります。 1つは実際の回答である「X」であり、もう1つはユーザーの推測を表す「O」です。実際の答え(「X」)はランダム変数であり、ユーザーは推測(「O」)はユーザーの入力です。ドットと2つの他のシンボルを印刷する

これは次のようになります。 .............................. O ....... ......................バツ........................... ............

私はちょっとした助けが必要です。プロジェクトの残りの部分はすでに終了していますが、これはちょうど仕上げのタッチであり、私はどのように続行するか分かりません。私は配列を使ってみましたが、成功しませんでした。ありがとう!

+1

質問をする方法についてhttp://stackoverflow.com/help/mcveを参照してください。 – Guenther

答えて

0

いくつかの疑似コードを使用して始めましょう。

int userGuess = ... user giving you input 
int randomTarget = ... some random number 

for (int i=0; i < 100; i++) { 
    if (i == userGuess) print "O" 
    else if (i == randomTarget) print "X" 
     else print "." 

そして記録のために、あなたはuserGuess == randomTargetのときに何を印刷するかを理解する必要があります。

練習としてJavaコードが読者に残されています。

0

これは、ループの代わりにJavaのIntStreamを使用します。

public static void main(String[] args) 
    { 
    int answer = 57; 
    int guess = 14; 

    IntStream.range(0, 100).forEach(i -> { 
     if (i == answer) 
     { 
     System.out.print('X'); 
     } 
     else if (i == guess) 
     { 
     System.out.print('O'); 
     } 
     else 
     { 
     System.out.print('.'); 
     } 
    }); 
    } 
+0

私は絶対初心者にストリームを提案しません。私は彼が通常のforループに対処するのに十分な難しさがあると思う。 – GhostCat

1

非常に歩行者、まっすぐ進むのソリューション:

String foo(int answer, int guess, int size) { 
    char[] line = new char[size]; 
    Arrays.fill(line, '.'); 
    line[answer] = 'X'; 
    line[guess] = 'O'; 
    return new String(line); 
} 
+0

ニース;命名を除いて - なぜそれを "generateDottedLine()"か何かと呼んではいけません。それが何をすべきかが非常にはっきりしているときになぜそれを呼び出すのですか? – GhostCat

+0

メソッド名は主観的で簡単に変更できます。 – Tibrogargan

+0

あなたは「永遠」の答えを出そうとしています。従って:例によるリード。 **命名**はプログラミングの最も重要な側面の1つです。 – GhostCat

関連する問題