簡単に言うと、gameplayWord はハングマン ゲーム用の単語のリストからランダムに決定された単語です (この場合は簡単な単語ファイル)。easyContentList は、そのファイル内のすべてのデータの ArrayList です。ファイルは 2 列で、最初の列 - 使用できる単語、2 番目の列 - 単語が使用された回数を表す数値です。(初期ファイルでは 0) ゲームの反復ごとに、この数を追跡する必要があります。easyFileUpdateList は、クラス レベルで宣言された String ArrayList です。問題は、これが基本的に機能しないことです:
public void updateEasyFile(String gameplayWord, ArrayList<String> easyContentList) {
Integer used = 0; // represents used word count
String strUsed = "";
for (int i = 0; i < easyContentList.size() - 1; i++) {
String oneLine;
oneLine = easyContentList.get(i);
tokenizer = new StringTokenizer(oneLine);
String firstToken = tokenizer.nextToken();
if (firstToken.equals(gameplayWord)) {
used = Integer.parseInt(tokenizer.nextToken());
used++;
strUsed = used.toString();
easyFileUpdateList.add(gameplayWord + " " + strUsed + " " + "TODO");
}
if (!firstToken.equals(tokenizer.nextToken())) // add the first token of every line except the first
easyFileUpdateList.add(oneLine);
}
try {
PrintWriter printWriter = new PrintWriter(new FileOutputStream(new File("hmeasy.txt")));
for (String oneLine : easyFileUpdateList) {
printWriter.println(oneLine);
}
printWriter.close();
}
catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
}
}
アップデート
ありがとう、ハッシュセットを調べてみます。もう少し明確にさせてください。私はまだ完全にはフォローしていません。
正しい、ファイルはあなたが言ったようになるので、単語が犬、猫、霧の場合、ファイルは次のようになります。
dog 0
cat 0
fog 0
ゼロの 3 番目の列があります。これは TODO の目的ですが、後で心配します。
私が抱えている問題は正しいです。単語を含む新しいエントリを追加し、2 番目の列に 1 を追加するだけです。したがって、フォグがランダムに 3 回続けて選択され、このメソッドが実行されると、次のようになります。
dog 0
cat 0
fog 1
dog 0
cat 0
fog 1
fog 1
dog 0
cat 0
fog 1
fog 1
fog 1
私が探しているのは: 最初のラウンド:
dog 0
cat 0
fog 1
第 2 ラウンド:
dog 0
cat 0
fog 2
等...
単語がランダムに選択されるたびに、ファイル内の番号を更新する必要があります。