Aggiunto il package logica e il file dizionario.txt con 660000 parole
This commit is contained in:
parent
ab9cf96094
commit
943167afe0
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,4 @@
|
||||||
|
package com.mrsl1d3r.wordle.logica;
|
||||||
|
|
||||||
|
public class Parola {
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package com.mrsl1d3r.wordle.logica;
|
||||||
|
|
||||||
|
public class Partita {
|
||||||
|
}
|
|
@ -0,0 +1,112 @@
|
||||||
|
package com.mrsl1d3r.wordle.logica;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import com.mrsl1d3r.wordle.filtro.FiltroPerLunghezza;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Classe per gestire un vocabolario di parole.
|
||||||
|
* Consente l'aggiunta di parole e il caricamento da file di testo.
|
||||||
|
*
|
||||||
|
* @version 1.0
|
||||||
|
* @author Angelo Ciausu
|
||||||
|
*/
|
||||||
|
public class Vocabolario {
|
||||||
|
private String[] parole;
|
||||||
|
private int num;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Costruttore che inizializza il vocabolario con capacità iniziale.
|
||||||
|
*/
|
||||||
|
public Vocabolario(){
|
||||||
|
parole = new String[100];
|
||||||
|
num = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Aggiunge una parola al vocabolario se non è già presente
|
||||||
|
*
|
||||||
|
* @param parola La parola da aggiungere
|
||||||
|
*/
|
||||||
|
|
||||||
|
public void add(String parola, int lunghezza) {
|
||||||
|
// Converti la parola in minuscolo e rimuovi spazi
|
||||||
|
parola = parola.toLowerCase().trim();
|
||||||
|
|
||||||
|
// Crea un'istanza del filtro per lunghezza
|
||||||
|
FiltroPerLunghezza filtro = new FiltroPerLunghezza(lunghezza);
|
||||||
|
|
||||||
|
// Controlla se la lunghezza della parola corrisponde alla lunghezza specificata usando il filtro
|
||||||
|
if (filtro.accetta(parola) && !presente(parola)) {
|
||||||
|
// Ridimensiona l'array se pieno
|
||||||
|
if (num == parole.length) {
|
||||||
|
String[] newParole = new String[num * 2];
|
||||||
|
System.arraycopy(parole, 0, newParole, 0, num);
|
||||||
|
parole = newParole;
|
||||||
|
}
|
||||||
|
parole[num++] = parola;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifica se una parola è già presente nel vocabolario.
|
||||||
|
*
|
||||||
|
* @param parola La parola da cercare
|
||||||
|
* @return true se la parola è presente, false altrimenti
|
||||||
|
*/
|
||||||
|
private boolean presente(String parola) {
|
||||||
|
for (int i = 0; i < num; i++) {
|
||||||
|
if (parole[i].equals(parola)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Carica le parole da un file di testo.
|
||||||
|
*
|
||||||
|
* @param nomeFile Il percorso del file da leggere
|
||||||
|
*/
|
||||||
|
public void caricaDaFile(String nomeFile) {
|
||||||
|
try (BufferedReader reader = new BufferedReader(new FileReader(nomeFile))) {
|
||||||
|
String riga;
|
||||||
|
while ((riga = reader.readLine()) != null) {
|
||||||
|
// Rimuovi punteggiatura e converti in minuscolo
|
||||||
|
String[] words = riga.replaceAll("[^a-zA-Z\\s]", "")
|
||||||
|
.toLowerCase()
|
||||||
|
.split("\\s+");
|
||||||
|
for (String word : words) {
|
||||||
|
if (!word.isEmpty()) {
|
||||||
|
add(word, word.length()); // Passa la lunghezza della parola come secondo argomento
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.println("Errore nella lettura del file: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restituisce una rappresentazione in stringa del vocabolario.
|
||||||
|
*
|
||||||
|
* @return Stringa contenente tutte le parole
|
||||||
|
*/
|
||||||
|
public String toString(){
|
||||||
|
StringBuilder s = new StringBuilder();
|
||||||
|
for (int i = 0; i < num; i++) {
|
||||||
|
s.append(parole[i]).append(" "); // Aggiungi spazio tra le parole
|
||||||
|
}
|
||||||
|
return s.toString().trim(); // Rimuovi spazio finale 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restituisce il numero di parole nel vocabolario.
|
||||||
|
*
|
||||||
|
* @return Il numero di parole
|
||||||
|
*/
|
||||||
|
public int size(){
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue