2016-03-25 21 views
0

Bilgisayarda bir txt dosyasından rastgele 5 harflik bir kelime seçtiği bir kelime tahmin oyunu yazıyorum. Tahmincinin hatasız olması durumunda, oyuncunun her turda 5 harflik bir kelime tahmin ettiği tahmin edilirse, "tahmin" kelimesinin "gizli" kelimeyle ortak olarak kaç tane mektup yazdığını söyler.Java Word Guess Oyun geçerli kelime kontrol et

Sözlüğün 'sözlük' (izin verilen sözcüklerin bir txt dosyası) olup olmadığı nasıl kontrol edilir?

// is word in the dictionary? 
public boolean isValidWord(String word) { 
    //see if string inputted is in the dictionary 

} 
+1

Gelecekte, lütfen sorununla bu sorunu çözmek için en iyi iyi niyetli girişimi gösteriniz. –

+0

Yea tamamen anlaşılabilir, hala java için yeni ve boş bir ekrana biraz baktım ve bir soru gönderme zamanı olduğuna karar verdim. Teşekkür ederim! –

+0

Kötü bir girişim bile denemekten daha iyidir - aksi halde yanlış yaptığınız varsayımları nasıl bilebiliriz? Aksi halde hangi mantık veya derleme hatalarının olabileceğini nasıl anlayacağız? Ayrıca, bu bilgi ev ödevi soruları için bu sitede gereklidir ve bu ev ödevi veya ev işi için olsun ya da olmasın, bu doğrudur. –

cevap

1

Bunu yapmanın birden çok yolu vardır: Bir kelime

Scanner scanner=new Scanner("FileNameWithPath"); 
List<String> list=new ArrayList<>(); 
while(scanner.hasNextLine()){ 
    list.add(scanner.nextLine()); 
} 
varsa görmek, bir kez sözlükte okumak şöyle bellekte tutmak ve sonra bir arama yapabilmesidir BufferedReader bir ile

Veya Benzer:

BufferedReader in = new BufferedReader(new FileReader("path/of/text")); 
String str; 

List<String> list = new ArrayList<String>(); 
while((str = in.readLine()) != null){ 
    list.add(str); 
} 

Şimdi yöntem basit bir kontroldür listede dize olduğunu.

+0

Zaten bir ArrayList'e tüm kelimeleri okumak için ayarlanmış bir tamponlu okuyucum var, bu yüzden tarayıcıya ihtiyacım var mı? –

+0

Hayır, bu sadece iyi çalışıyor. – chsbellboy

+0

Bu yüzden tarayıcıyı kullanmam ve BufferedReader'ımı ayarlamam? –

1

java8'in yeni özelliklerini kullanın!

// read all lines 
return !Files.lines(Paths.get(fileName)) 

    // search matches 
    .filter(w -> w.equals(word)) 

    // any hit? 
    .findAny() 
    .isEmpty(); 
+0

ile neye benzeyeceğine dair genel fikri ekledim, ancak bu ev ödevi olarak java 8 kullanamıyorum. –

İlgili konular