Java基础练习:猜单词

2017-12-26  本文已影响0人  孙竞博

题目:

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

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("恭喜您,游戏胜利!");
        }
    }
}

上一篇 下一篇

猜你喜欢

热点阅读