2017-10-04 5 views
0

Je suis en train de remplir un tableau 2D avec la variable de référence appelé lettres avec des lettres majuscules générées au hasard à l'aide de l'objet aléatoire. J'ai essayé de le faire dans les deux classes maintenant mais j'ai quand même quelques erreurs que je n'ai jamais rencontrées auparavant. Toute aide à ce sujet est grandement appréciée.Comment imprimer des lettres générées au hasard à l'aide de l'objet aléatoire dans un tableau 2D

Voici les erreurs que je reçois dans la classe WordSearch et où ils se trouvent:

  • Je reçois une erreur qui dit: « char someChar = (char) (rand.nextInt (26) + 65); " L'erreur lit "Erreur de syntaxe sur le jeton"; ", {attendu après ce jeton."

  • Je reçois également une erreur à la fin de ma boucle for où le} est. L'erreur indique "Erreur de syntaxe, insérer"} "pour terminer le blocage." Enfin, je reçois une erreur sur la ligne qui dit, "public search() {" L'erreur lit, "Type de retour pour la méthode est manquant."


import java.util.Random; 
import java.util.Scanner; 

public class WordSearchTest { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    int seed; 
    String word = " "; 
    String again = "y"; 

    Scanner keyboard = new Scanner(System.in); 

    System.out.print("Enter a number from 1 - 9999:\n"); 
    seed = keyboard.nextInt(); 
    keyboard.nextLine();  //Consume the remaining new line 
    while(seed < 1 || seed > 9999) { 
     System.out.print("You must choose a number between 1 and 9999:\n"); 
     seed = keyboard.nextInt(); 
     keyboard.nextLine(); //Consume the remaining new line 
    } 

    while(again.equalsIgnoreCase("y")) { 
     System.out.print("Choose a word to search for:\n"); 
     word = keyboard.nextLine(); 
     System.out.print("Would you like to search for another word? (Y = Yes and N = No)\n"); 
     again = keyboard.nextLine(); 
     System.out.print(again); 
     while(!again.equals("Y") && !again.equals("y") && !again.equals("N") && !again.equals("n")) { 
      System.out.print("Invalid response. Y or N?\n"); 
      again = keyboard.nextLine(); 
      } 
     } 

    //Random rand = new Random(seed); 

    //char someChar = (char)(rand.nextInt(26) + 65);  

    //Instantiates a WordSearch object with reference variable puzzles and passes the arguments to the WordSearch constructor 
    WordSearch puzzles = new WordSearch(seed, word); 

    puzzles.search(); 

    System.out.print("Terminating..."); 
    System.exit(0); 

    } 

} 


import java.util.Random; 

public class WordSearch { 

private int seedNum; 
private String wordGiven; 
private int index = 0; 
private char someCharz; 
char[][] letters; 
private char[][] lettersFound; 


public WordSearch(int seeded, String wordUser) { 
    seedNum = seeded; 
    wordGiven = wordUser; 
    //someCharz = charz; 
} 


Random rand = new Random(seedNum); 

char someChar = (char)(rand.nextInt(26) + 65);  

letters = new char[4][4]; 

lettersFound = new char[4][4]; 


for(int col = 0; col < letters[0].length; col++) 
{ 
    for(int rowz = 0; rowz < letters.length; rowz++) 
    { 
     System.out.print(someCharz); 
    } 
    index++; 
} 


public search() { 
    System.out.print(letters); 
} 


/** 
* @return the seedNum 
*/ 
public int getSeedNum() { 
    return seedNum; 
} 


/** 
* @param seedNum the seedNum to set 
*/ 
public void setSeedNum(int seedNum) { 
    this.seedNum = seedNum; 
} 


/** 
* @return the wordGiven 
*/ 
public String getWordGiven() { 
    return wordGiven; 
} 


/** 
* @param wordGiven the wordGiven to set 
*/ 
public void setWordGiven(String wordGiven) { 
    this.wordGiven = wordGiven; 
} 

} 
+2

Vous ne pouvez pas écrire du code en dehors d'une méthode et votre classe 'WordSearch' a un tas de code en dehors des méthodes. – csmckelvey

+1

Vous avez une section entière de votre code (Dans votre classe 'WordSearch' commençant dans Random rand = new Random (seedNum);' et quelques lignes de plus) en dehors d'une méthode ou d'un constructeur. Cela ne compilera pas. –

+0

"Le type de retour pour la méthode est manquant" - donc, quel devrait être le type de retour pour cette méthode? L'avez-vous spécifié? Le message est assez explicite –

Répondre

1

Je cherche à voir si je peux trouver la cause de vos premières erreurs, mais d'abord, l'erreur sur le type de retour est facile; chaque méthode en Java doit spécifier un type de retour. Si la méthode ne renvoie rien et indique - dans ce cas - imprime simplement quelque chose à la console, le type de retour sera void.

Modifier la déclaration de méthode à public void search() {} et il éliminera cette erreur.

+0

J'ai essayé void comme le type de retour et il a effacé l'erreur dans la classe WordSearch, mais maintenant j'ai une erreur dans ma classe WordSearchTest lorsque j'essaie d'appeler la méthode. L'erreur indique: "La méthode search() n'est pas définie pour le type WordSearch." Les deux premières erreurs que j'ai eues sont maintenant éclaircies. Merci! –

+1

J'ai supprimé l'appel de méthode et l'ai retapé, puis j'ai redémarré Eclipse et je n'ai plus d'erreurs. Je vous remercie! –