Java 如何以不同的方法从数组列表中选择大小写
我目前正在用java制作一个hang man游戏,我有一个按难度排列的单词列表,在一个方法中,然后在另一个方法中,我有一个if语句,询问用户想玩哪个难度。我该怎么做呢?我的代码如下:Java 如何以不同的方法从数组列表中选择大小写,java,arrays,if-statement,Java,Arrays,If Statement,我目前正在用java制作一个hang man游戏,我有一个按难度排列的单词列表,在一个方法中,然后在另一个方法中,我有一个if语句,询问用户想玩哪个难度。我该怎么做呢?我的代码如下: public static int word(){ String words[] = new String[26]; switch(diff){ case 1: words[0] = "cat"; words[1] = "dog"; words[2] = "bo
public static int word(){
String words[] = new String[26];
switch(diff){
case 1:
words[0] = "cat";
words[1] = "dog";
words[2] = "book";
words[3] = "breakfeast";
words[4] = "telephone";
words[5] = "mixture";
words[6] = "music";
words[7] = "animal";
words[8] = "school";
words[9] = "plant";
words[10] = "pen";
words[11] = "pencil";
words[12] = "paper";
words[13] = "note";
words[14] = "fog";
words[15] = "smoke";
words[16] = "bake";
words[17] = "alone";
words[18] = "drive";
words[19] = "town";
words[20] = "city";
words[21] = "sunny";
words[22] = "shine";
words[23] = "polish";
words[24] = "cap";
words[25] = "hat";
break;
case 2:
words[0] = "president";
words[1] = "exclamation";
words[2] = "statement";
words[3] = "television";
words[4] = "physics";
words[5] = "algebra";
words[6] = "geometry";
words[7] = "difficult";
words[8] = "extreme";
words[9] = "procedure";
words[10] = "ship";
words[11] = "soldier";
words[12] = "lunch";
words[13] = "hockey";
words[14] = "tennis";
words[15] = "soccer";
words[16] = "football";
words[17] = "basketball";
words[18] = "bias";
words[19] = "magazine";
words[20] = "computer";
words[21] = "internet";
words[22] = "allegedly";
words[23] = "system";
words[24] = "unison";
words[25] = "excited";
break;
case 3:
words[0] = "amalgamation";
words[1] = "proclomation";
words[2] = "establishment";
words[3] = "rehabilitation";
words[4] = "rhinoceros";
words[5] = "velociraptor";
words[6] = "declaration";
words[7] = "announcement";
words[8] = "binomial";
words[9] = "polynomial";
words[10] = "congregation";
words[11] = "obligation";
words[12] = "structure";
words[13] = "description";
words[14] = "perscription";
words[15] = "subscribe";
words[16] = "address";
words[17] = "township";
words[18] = "mischievous";
words[19] = "bewildered";
words[20] = "accusation";
words[21] = "designation";
words[22] = "disgusting";
words[23] = "prolonged";
words[24] = "restoration";
words[25] = "regeneration";
}
int i = words.length;
Random rng = new Random(); //This block of code chooses random word from array list
int choice = rng.nextInt(words.length); //Varible storing random word
String wd = words[choice];
out.println(wd);
}
public static int gameStart(){
Scanner qwe = new Scanner(in);
out.println("Welcome to my Hang Man game!\n");
out.println("What difficulty would you like to play on?\t1-3");
int diff = qwe.nextInt();
if (diff == 1){
//not sure what would go here
}
else if (diff == 2){
//not sure what would go here
}
else{
//not sure what would go here
}
}
String[]getWords(int难度)
,该方法将返回从给定难度的文件加载的单词列表word()
方法中所做的那样。创建一个单词列表,选择随机单词并显示在屏幕上,这听起来像三个不同的方面。这意味着大约有3种方法在
word()
方法上需要一个参数,并且需要将该方法中的单词作为字符串(而不是int)返回。例程的其余部分(case语句和随机单词选择)是可以的,所以我没有在下面重复。也许是这样的:
public static String word(int diff) {
....
return wd;
}
然后在你有if块的地方,你不需要if块,只要把难度传递到例程中就行了。比如:
String myWord = word(diff);
+1用于提示将应用程序逻辑与数据分开。好的,假设我制作了3个不同的文本文件,分别命名为words1、words2和words3。在IF语句中,如果用户输入“1”,它将使用名为words1的文本文件,并从该列表中随机选择一个单词。我该怎么做?此外,在文本文件中,每个单词是否都应该在新行中?在
getWords()
中,您需要一个iff,它将选择正确的文件进行读取。然后你需要从那个文件中获取所有单词。是的,如果最简单的布局,我会说每行一个工作。这三个建议是相当好的建议,但它们没有回答如何接收随机单词的问题。真正的问题是,单词被打印到屏幕上,无法通过case语句将难度变量传递到方法中。@AgilePro可以说,我们来这里不仅是为了提供现成的解决方案,而且是为了引导人们自己找到正确的解决方案。特别是如果问题一开始似乎是由于糟糕的代码造成的。