服务器之家

服务器之家 > 正文

java实战之猜字小游戏

时间:2021-09-12 01:10     来源/作者:buptwhq

一、题目描述

java实战之猜字小游戏

二、思路

语法基础:StringBuilder 类似列表,可以更改元素。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package Practice;
 
public class tt {
    public static void main(String[] args) {
        String str = "banana";
        System.out.println(str.indexOf('z')); // -1
        System.out.println(str.indexOf('a', 2)); // 3
 
        StringBuilder words = new StringBuilder();
        for (int i = 0; i < 5; i++)
            words.append('*'); // "*****"
        System.out.println(words.length()); // 5
        System.out.println(words.indexOf("a"));// -1
        System.out.println(words.indexOf("*", 1)); // 1
        words.setCharAt(3, 'a'); // "***a*"
        System.out.println(words);
    }
}

三、代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package Practice;
 
import java.util.Scanner;
 
public class Guess {
    public static String words[] = {"banana", "telecommunication", "programming", "bupt"};
    public static boolean[] guessed = new boolean[words.length]; // 判断猜过
    public static int num_guessed = 0; // 猜过的单词数量
    public static char keep; // 是否继续y or n
 
    public static void main(String[] args) {
//        for(int i = 0; i < guessed.length; i ++ ) System.out.println(guessed[i]);
        Scanner scanner = new Scanner(System.in);
 
        do{
            // 随机产生要猜测的单词  ans
            int index = (int) (Math.random() * words.length);
            String ans = words[index];
            // 再来一次时的重复检测
            while(guessed[index] == true)
            {
                index = (int) (Math.random() * words.length);
                ans = words[index];
            }
 
            // 初始化,StringBuilder类似list
            StringBuilder guessedWord = new StringBuilder();
            for (int i = 0; i < ans.length(); i++)
                guessedWord.append('*');
 
            int numberOfCorrectLettersGuessed = 0, numberOfMisses = 0;
 
            // 模拟过程
            while (numberOfCorrectLettersGuessed < ans.length()) {
                System.out.print("(Guess) Enter a letter in word " + guessedWord
                        + " > ");
                String s = scanner.nextLine();
                char letter = s.charAt(0);
 
                if (guessedWord.indexOf(letter + "") >= 0) { // 猜中,但重复,不算错误次数
                    System.out.println("\t" + letter + " is already in the word");
                } else if (ans.indexOf(letter) < 0) { // 猜错
                    System.out.println("\t" + letter + " is not in the word");
                    numberOfMisses++;
                } else { // 猜中,进行标记与赋值
                    int k = ans.indexOf(letter);
                    while (k >= 0) {
                        guessedWord.setCharAt(k, letter);
                        numberOfCorrectLettersGuessed++;
                        k = ans.indexOf(letter, k + 1);
                    }
                }
            }
 
            System.out.println("The word is " + ans + ". You missed "
                    + numberOfMisses + ((numberOfMisses <= 1) ? " time" : " times"));
 
            guessed[index] = true;
            num_guessed += 1;
 
            if(num_guessed < words.length)
            {
                System.out.print("Do you want to guess for another word? Enter y or n> ");
                keep = scanner.nextLine().charAt(0);
            }
 
        }while(keep == 'y' && num_guessed < words.length);
 
        if(keep == 'y')
            System.out.println("Perfect!!!");
        else
            System.out.println("You have guessed " + num_guessed + ((num_guessed <= 1) ? " word~" : " words~"));
 
 
    }
}

四、效果图

全部猜完

java实战之猜字小游戏
java实战之猜字小游戏

中途退出

java实战之猜字小游戏

到此这篇关于java实战之猜字小游戏的文章就介绍到这了,更多相关java猜字游戏内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/whq___/article/details/115861711

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部