Java でハングマンの簡単なゲームを作ろうとしています。英語辞書の 120,000 語を含む、dictionary.txt という名前のテキスト ファイルがあります。ユーザーに単語の長さを要求し、その特定の長さの単語数を表示しようとすると、問題が発生します。
ここでかなりの時間を費やしてグーグルで検索した後、ここまでたどり着きましたが、今は立ち往生しています:
import java.util.Scanner;
import java.io.*;
import java.io.IOException;
public class Hangman
{
public static void main(String[] args) throws IOException
{
// declaring variables
int wordLength;
int guessNumber;
// initiate the scanner
Scanner keyboard = new Scanner( System.in );
// read the dictionary file
File file = new File("dictionary.txt");
StringBuilder contents = new StringBuilder();
BufferedReader reader = null;
// prompt the user for word length
System.out.println("Welcome to Hangman. Let's play! ");
System.out.println("Please enter the desired word length: ");
wordLength = keyboard.nextInt();
while(wordLength < 0 || wordLength > 26)
{
System.out.println("This is not a valid word length. ");
System.out.println("Please enter the desired word length: ");
wordLength = keyboard.nextInt();
}
// prompt the user for number of guesses
System.out.println("How many guesses do you want to have? ");
guessNumber = keyboard.nextInt();
while(guessNumber < 0)
{
System.out.println("Number of guesses has to be a postive integer. ");
System.out.println("Please enter the desired number of guesses: ");
guessNumber = keyboard.nextInt();
}
}
}
私の目標は、ユーザーに単語の長さを要求することです。目的の単語の長さが Dictionary.txt ファイルに存在しない場合は、有効な応答が返されるまで尋ね続けます。
また、指定された単語の長さを持つ単語の数を出力できるようにしたいと考えています (たとえば、ユーザーが「10」と入力すると、dictionary.txt 内の単語の長さが 10 文字であることが表示されます。
コードの次の部分は、txt ファイルを読み取り、その後動作するコードに置き換えたいと考えている部分です。
while(wordLength < 0 || wordLength > 26)
{
System.out.println("This is not a valid word length. ");
System.out.println("Please enter the desired word length: ");
wordLength = keyboard.nextInt();
}
私が間違ったアプローチを取っている可能性があるので、すべてのフィードバックは大歓迎です!