一个简单的猜字母游戏在java中

时间:2018-05-12 07:04:46

标签: java replace replaceall

我刚刚开始写一个(猜字母游戏)作为一个赋值..在java中(第一个玩家输入10个单词,然后3个随机字符将被隐藏,之后第二个玩家将猜测每个角色,如果他猜对了然后将显示来自第一个玩家的新单词猜测隐藏的字符,直到所有10个单词都被正确猜到..如果他猜错了>>>>问题,他只有10次尝试退出程序是用第二个玩家猜到的隐藏角色替换隐藏的角色

这里我如何隐藏3个随机字符形成一个字符串:

Scanner s = new Scanner(System.in);


       Random r= new Random();
  String word= null;
    for (int i=0; i<10;i++){
                 word= s.nextLine();

    }
    int wordlength = word.length();
    int a=0, b=0,c=0;
    while(a==b||b==c||a==c){
    a= r.nextInt( wordlength);
     b= r.nextInt( wordlength);
    c= r.nextInt( wordlength);        
    }

    char[] wordsArray = word.toCharArray();
    wordsArray [a]='-';
            wordsArray [b]='-';
    wordsArray [c]='-';

    String modwords =new String (wordsArray);
    System.out.println(modwords );

1 个答案:

答案 0 :(得分:-1)

读取StringBuilder的用户输入并比较abc位置,如果用户输入char等于原始单词char而非替换它,类似的东西

public static void main(String[] args) {
    String word = "hello";
    StringBuilder obscureWord = new StringBuilder("h-l-o");
    Scanner s = new Scanner(System.in);

    while (true){
        int pos = obscureWord.indexOf("-");
        if (pos == -1)
            break;

        System.out.println("guess the letter " + obscureWord + " : ");
        char c = s.nextLine().charAt(0);
        if (c == word.charAt(pos)){
            obscureWord.replace(pos,pos+1, word.substring(pos,pos+1));
            System.out.println("correct guess! " + obscureWord);
        }
        else {
            System.out.println("incorrect, try again");
        }
    }
}

当然,您可以将while替换为for loop以进行限制尝试