Witam!
Mam za zadanie napisać konsolę tekstową do gry w java, no wiecie taka w której wydaje się polecenia typu "Idź w lewo" itd.
Wszystko poszło bez problemu i mam minimum czyli odczytywanie jako stringa wprowadzonego polecenia przez gracza i wyświetlenie komunikatu np. "Idę w lewo"/"Nie zrozumiałem polecenia".
Teraz chciałbym to trochę rozbudować. Aktualnie polecenie jest rozpoznane jeżeli użytkownik wpisze 100% identyczne do konsoli (może jedynie wpisać różną wielkość liter, bo używam funkcji lowercase). A samo szukanie wygląda tak:
public boolean inArray(String in,String[] str){
boolean match=false;
for(int i=0;i<str.length;i++){
if(str[i].equals(in)){
match=true;}
Chcę by konsola, wyszukała polecenie nawet gdy gracz wprowadzi je trochę inaczej/popełni drobny błąd przy wpisywaniu. Wymyśliłem tylko coś takiego:
public boolean inArray(String in,String[] str){
boolean match=false;
for(int i=0;i<str.length;i++){
if(str[i].compareToIgnoreCase(in)>=-2&&str[i].compareToIgnoreCase(in)<=2){
match=true;
}
}
return match;
}
Jednakże funkcja compareTo zwróci mi małe wartości tylko gdy stringi różnią się końcowymi znakami, wystarczy jeden inny znak na początku i mam 10/-10. Tak więc działa to gdy wpiszę "Idź w lew" zamiast "Idź w lewo" jednak jak wpiszę "Idś w lewo" to klapa.
Proszę o pomoc, bo sam już nie mam pomysłów...