Jeg skal have lavet en begrænsning på accept af brugerinput. Pt. kan brugeren indtaste f.eks. "go south", hvor "go" er et kommandoord og "south" en præ-defineret streng. Men pt. understøtter programmet at man indtaster f.eks. "go south south south south bent yrsa orla" - dvs. at den ignorerer alt ud over de to første ord og dermed udfører handlingen for de to første ord.
Det virker naturligvis helt hen i vejret... Nogen der har en idé til hvordan det kan løses? :-)
// Find up to two words on the line. Scanner tokenizer = new Scanner(inputLine); if(tokenizer.hasNext()) { word1 = tokenizer.next(); // get first word if(tokenizer.hasNext()) { word2 = tokenizer.next(); // get second word // note: we just ignore the rest of the input line. if(tokenizer.hasNext()) { // if player has entered a 3rd word! word3 = tokenizer.next(); System.out.println("Only 2 words are accepted!\n"); } } }
// Now check whether this word is known. If so, create a command // with it. If not, create a "null" command (for unknown command). if(commands.isCommand(word1)) { return new Command(word1, word2); } else { return new Command(null, word2); }
En simpel og hurtig løsning, omend måske ikke så pæn kunne være at sætte word1 til null, eftersom den nederste kommentar giver udtryk for at det så vil være en "unknown command"
// Now check whether this word is known. If so, create a command // with it. If not, create a "null" command (for unknown command).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.