2017-03-12 3 views
0

Also arbeite ich an einem einfachen Hangman-Spiel auf Java. Der Computer sollte ein zufälliges Wort aus einem Satz von Worten wählen:Hangman Spielecode:

public void setWords() { 
    words[0] = "notions"; 
    words[1] = "measure"; 
    words[2] = "product"; 
    words[3] = "foliage"; 
    words[4] = "garbage"; 
    words[5] = "minutes"; 
    words[6] = "chowder"; 
    words[7] = "recital"; 
    words[8] = "concoct"; 
    words[9] = "brownie";  
} 

Ich versuche, den Code zu schreiben, ein zufälliges Wort zu erzeugen, wenn der Spieler spielt: Ich habe dies als Vorspeise:

public class Hangman { 
private int numwords = 10; 
private String[] words = new String[numwords]; 
private String gameWord; 
private String dispWord = "-------"; 
private char[] dispArr = dispWord.toCharArray(); 



private static void main(String[] args) { 
    System.out.println("Welcome to Hangman!:"); 

    Random rand= new Random(); 
    char c = rand.nextChar(setWords); 
} 

Könnten Sie bitte mit der Syntax der Wahl eines zufälligen Wortes mit der selectGameWord() Methode helfen? Vielen Dank!

Antwort

-1

https://stackoverflow.com/a/5887745/6934695

können Sie diese benutzen für Zufallszahl bekommen.

import java.util.Random; 

Random rand = new Random();  
int n = rand.nextInt(words.length); 
String word=selectGameWord(n) 

und selectGameWord (int x);

sentence=words[x]; 
    return sentence; 

Edit:

import java.util.Random; 

public class Hangman{ 
    String words[]={"notions","measure","product","foliage"}; 



    public String selectGameWord(int x) 
    { 
     String sentence= words[x]; 
     return sentence; 
    } 
    public static void main (String[] args){ 
     System.out.println("Welcome to Hangman!:"); 
     Random rand=new Random(); 
     Hangman myhangman= new Hangman(); 
     int n= rand.nextInt(myhangman.words.length);   
     String word= myhangman.selectGameWord(n); 
     System.out.println(word); 
    } 
} 
+0

aber dann sollte ich den statischen Teil zu nur öffentlichen void main ändern (String [] args) {richtig? – Emily

+0

Wenn Sie nur eine Klasse haben, müssen Sie nicht. –

+0

weil, als ich diesen Code hatte, gab es mir einige Fehler, die sagen, dass ich "keinen statischen Verweis auf nicht statische Feldwörter machen kann" – Emily

-1

Ich glaube, Sie möchten ein zufälliges Wort von Ihrem Array bekommen? Sie müssen Random#nextInt() verwenden, um einen zufälligen Index von Ihrem Array zu erhalten.

Random random = new Random(); 
int index = random.nextInt(words.length); 
String randomWord = words[index]; 
+0

was bedeutet der Index beziehen sich auf? – Emily

+0

@Emily Es speichert eine zufällige Ganzzahl zwischen 0 und der Array-Länge - 1. Es ist eine Zufallszahl. –

+0

Ich verstehe. Aber ich muss selectGameWord() in meinem Code verwenden – Emily

0

In Ihrem Hauptmenü könnte das Wort so ausgewählt werden.

String gameWord = words[rand.nextInt(words.length)];

Die Ihre Zufallszahl gebunden von 0 < = x < = 9 sein wird, wenn Sie `.nextInt tun (10).‘ Weil Ihr Wort-Array nur zehn Auswahlmöglichkeiten hat.

+0

würde ich das nach meiner zwei Codezeile haben? oder einfach statt meiner: char C = rand.nextChar (setWords); – Emily

+0

Sie möchten das anstelle Ihrer Zeile mit der char C-Variable. –

+0

aber sollte es dann statisch sein? – Emily

Verwandte Themen