1. 程式人生 > >演算法競賽入門-劊子手遊戲(Hangman Judge )

演算法競賽入門-劊子手遊戲(Hangman Judge )

1、題目

遊戲規則,計算機想一個單詞讓你猜,你每次可以猜一個字母,如果單詞裡有那個字母,所有該字母都會顯示出來,如果沒有那個字母
則計算機會在一副“劊子手”畫上填一筆,這幅畫一共需要7筆就能完成,因此你最多隻能錯6次。注意猜一個已經猜過的字母也算錯。
在本題中,你的任務是編寫一個“裁判”程式,輸入單詞和玩家的猜測,判斷玩家贏了,(You win.)、輸了(You lose.)、還是放棄了(You chickened out.)
每組包含3行,第一行是遊戲編號(-1為輸入結束標記),第2行是計算機想的單詞,第3行是玩家的猜測。後兩行保證只含小寫字母。

2、思路

思路:直接用字串的replace即可

3、程式碼

package basic.第四章;

import java.util.Scanner;

/**
 * Created by Administrator on 2018/5/7.
 * 題目:
 * 遊戲規則,計算機想一個單詞讓你猜,你每次可以猜一個字母,如果單詞裡有那個字母,所有該字母都會顯示出來,如果沒有那個字母
 則計算機會在一副“劊子手”畫上填一筆,這幅畫一共需要7筆就能完成,因此你最多隻能錯6次。注意猜一個已經猜過的字母也算錯。
 在本題中,你的任務是編寫一個“裁判”程式,輸入單詞和玩家的猜測,判斷玩家贏了,(You win.)、輸了(You lose.)、還是放棄了(You chickened out.)
 每組包含3行,第一行是遊戲編號(-1為輸入結束標記),第2行是計算機想的單詞,第3行是玩家的猜測。後兩行保證只含小寫字母。
 思路:直接用字串的replace即可
 * 輸入:
1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1
 輸出:
 Round 1
 You win.
 Round 2
 You chickened out.
 Round 3
 You lose.
 * @author 春風吹又生
 */
public class HangmanJudge {
    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);

        while(true){
            int round = read.nextInt();
            if(round==-1)break;
            read.nextLine();
            String original = read.nextLine();
            String guess = read.nextLine();
            check(round,original,guess);
        }
    }

    private static void check(int round, String original, String guess) {
        char[] chs = guess.toCharArray();
        int length = chs.length;
        int wrongCount = 0;
        for(int i = 0; i<length;i++){
            int index = original.indexOf(chs[i]);
            if(index!=-1){
                original=  original.replaceAll(chs[i]+"","");
            }else{
                wrongCount++;
            }
        }
        System.out.println("Round "+round);
        if(original.equals("")&&wrongCount<6){
            System.out.println("You win.");
        }
       else if(wrongCount>6){
            System.out.println("You lose.");
        }else{
            System.out.println("You chickened out.");
        }
    }
}