题目:
给定单词数组(不少于10个),程序随机选择其中的一个,并显示单词字符长度个横线(-),用户有5次猜测机会,用户每次猜一个字母,如果正确,则将在相应的位置上显示出来;如错误则猜测机会减一,重复该过程,直至单词的全部字母全部猜出或者猜测次数用完,最后宣布用户胜利或失败。
-
目前还没试出错,应该是对的
TIM图片20171226210429.png
import java.util.Scanner;
public class GuessWordsTest {
public static void main(String[] args) {
String[] wordsLibrary={"teacher","school","library","construction","apple","average","computer","freedom","general","common"};//单词库
int wordsLibraryIndex=(int)(Math.random()*wordsLibrary.length);//生成单词库元素数量的随机数作为下标
String theWord=wordsLibrary[wordsLibraryIndex];//随机的单词
int wordLength=theWord.length();//单词的长度
String hiddenWord="";//创建一个空字符串为"----"用
char[] theWordSplit=theWord.toCharArray();//将单词字符串变为字符数组
for(int i=0;i<wordLength;i++)//初始化单词长度为"----"
{
hiddenWord=hiddenWord+"-";
}
char[] hiddenWordSplit=hiddenWord.toCharArray();//将"----"变为字符数组
System.out.println("欢迎来到猜单词游戏,您一共有5次机会,单词的字母数量如下");
System.out.println(hiddenWord);
System.out.println("开始游戏");
int guessCount=5;//初始5次猜测机会
while(guessCount>0)//开始游戏,当机会等于0次时,游戏结束
{
Scanner input=new Scanner(System.in);
System.out.println("请输入字母:");
String inputLetter = input.next();
char letter = inputLetter.toCharArray()[0];//用户输入的字母
int i;
if(theWord.indexOf(letter)>=0)//如果用户输入字母在此单词中,为"----"循环赋值
{
for ( i = 0; i < theWord.length(); i++)
{
if(letter==theWordSplit[i])
{
hiddenWordSplit[i] = letter;
}
}
System.out.println(hiddenWordSplit);
}
else//如果用户输入字母不在此单词中,减少1次机会
{
guessCount--;
System.out.println("您还有"+guessCount+"次机会");
System.out.println(hiddenWordSplit);
}
if(String.valueOf(hiddenWordSplit).equals(String.valueOf(theWordSplit)))//将字符数组转换为字符串,如果"----"已经被填充满,并且与单词相同,就跳出循环,宣布胜利
{
break;
}
}
if(guessCount==0)
{
System.out.println("您输了,该单词为"+theWord);
}
else
{
System.out.println("恭喜您,游戏胜利!");
}
}
}
网友评论