猜單詞

package caidanci;

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

/**
 * Created by ttc on 2018/1/5.
 */

public class MyGuessWord {

    public static void printWords(char[] wordNow)
    {
        for(int i = 0; i < wordNow.length; i++)
        {
            System.out.print(wordNow[i]);
        }
    }

    public static void main(String[] args) {
        //1隨機(jī)從題庫中挑出一個單詞給用戶猜
        //題庫怎么表達(dá)---字符串?dāng)?shù)組
        String[] words = {"static","abstract","extends","implements","throw","orange","student","select","group","interface"};
        //隨機(jī)選出一個單詞
        Random random =  new Random();
        int randomIndex = random.nextInt(words.length);//隨機(jī)下標(biāo)

        String selectWord = words[randomIndex];
        System.out.println(selectWord);

        //定義一個字符數(shù)組保存用戶當(dāng)前單詞的猜中部分
         char[] wordNow = new char[selectWord.length()];

         //將字符數(shù)組中的每個字符初始設(shè)置成-
        for(int i = 0; i < wordNow.length; i++)
        {
            wordNow[i] = '-';
        }

       printWords(wordNow);
        //2.向用戶輸出和選出單詞同等數(shù)量的橫線-
        //需要知道單詞有多少個字符 selectWord.length()


       int userTimes = 5;//用戶可以猜5次;
       //讓用戶開始猜,接受用戶輸入一個字符,判斷用戶輸入的字符是否在單詞中
        //如果不在,機(jī)會減一;如果猜對了,就在字符對應(yīng)的位置將該字符顯示出來

        //上述步驟循環(huán)執(zhí)行,有2種情況跳出循環(huán)
        //1.用戶猜出了單詞的全部字符,用戶贏了
        //2.用戶的機(jī)會減為0了,用戶輸了
        while(true)
        {
            Scanner scanner = new Scanner(System.in);
            System.out.println();
            String strGuess = scanner.next();//用戶輸入的字符z
//        boolean bIsContains = selectWord.contains(strGuess);
            int nIndex = selectWord.indexOf(strGuess);//interface
            if(nIndex < 0)//如果不在,機(jī)會減一;輸出還剩多少次機(jī)會,并且輸出當(dāng)前單詞的猜中部分
            {
                userTimes--;
                if(userTimes == 0)
                {
                    break;
                }
                System.out.println("還剩"+userTimes+"次機(jī)會");
                printWords(wordNow);
            }
            else//如果猜對了,就在字符對應(yīng)的位置將該字符顯示出來,其他的位置依然打印-
            {
                //在字符對應(yīng)的位置將該字符顯示出來,其他的位置依然打印-(有可能該字符在單詞中出現(xiàn)多次,都要變身)
                for(int i = 0; i < selectWord.length(); i++)
                {
                    //取出單詞的每一個字符
                    char tempC = selectWord.charAt(i);
                    if(tempC == strGuess.charAt(0))
                    {
                        wordNow[i] = tempC;
                    }
                }

                printWords(wordNow);
                //如果wordNow數(shù)組中不在包含-,說明所有的字符全部被猜出來了
                String strWordNow = String.valueOf(wordNow);//字符數(shù)組轉(zhuǎn)為字符串
                if(!strWordNow.contains("-"))
                {
                    break;
                }

            }
        }

        //判斷最終結(jié)果
        //1.用戶猜出了單詞的全部字符,用戶贏了
        //2.用戶的機(jī)會減為0了,用戶輸了
        if(userTimes > 0)//說明不是因為機(jī)會沒了跳出的循環(huán)
        {
            System.out.println("恭喜,你猜對啦");
        }
        else
        {
            System.out.println("你輸了,正確答案是");
            System.out.println(selectWord);

        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容