演算法競賽入門-劊子手遊戲(Hangman Judge )
阿新 • • 發佈:2019-02-19
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."); } } }