美文网首页
Java基础练习:猜单词

Java基础练习:猜单词

作者: 孙竞博 | 来源:发表于2017-12-26 20:58 被阅读0次

    题目:

    给定单词数组(不少于10个),程序随机选择其中的一个,并显示单词字符长度个横线(-),用户有5次猜测机会,用户每次猜一个字母,如果正确,则将在相应的位置上显示出来;如错误则猜测机会减一,重复该过程,直至单词的全部字母全部猜出或者猜测次数用完,最后宣布用户胜利或失败。

    • 目前还没试出错,应该是对的


      TIM图片20171226210429.png
    TIM截图20171226210449.png image.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("恭喜您,游戏胜利!");
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Java基础练习:猜单词

          本文链接:https://www.haomeiwen.com/subject/ypyegxtx.html