案例 QuickHit:游戏输出字符串

主讲教师:王少华   QQ群号:483773664

学习目标

完成游戏输出字符串

一、需求说明

在控制台输出随机字符串


二、思路分析

生成字符串

输出字符串

返回字符串

三、难点提示

Game类中的player属性,代表玩家,查询player的级别号,根据级别号到LevelParam类中获取该级别的字符串长度

字符串长度固定可以通过for循环来实现,而随机内容可以通过获取随机数,而不同随机数对应不同字符来实现    

四、参考代码

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
/**
     * 输出指定级别规定长度的字符串。
     * @return 输出的字符串,用于和用户输入比较
     */
    public String printStr() {
        int strLength = LevelParam.levels[player.getLevelNo() - 1].getStrLength();
        StringBuffer buffer = new StringBuffer();
        Random random = new Random();
        // 1、通过循环生成要输出的字符串
        for (int i = 0; i < strLength; i++) {
            // 1.1、产生随机数
            int rand = random.nextInt(strLength);
            // 1.2、根据随机数拼接字符串
            switch (rand) {
            case 0:
                buffer.append(">");
                break;
            case 1:
                buffer.append("<");
                break;
            case 2:
                buffer.append("*");
                break;
            case 3:
                buffer.append("&");
                break;
            case 4:
                buffer.append("%");
                break;
            case 5:
                buffer.append("#");
                break;
            }
        }
        // 2、输出字符串
        System.out.println(buffer);
        // 3、返回字符串用于和玩家输入相比较
        return buffer.toString();
    }

五、测试

1
2
3
4
5
6
7
8
public class Test {
    public static void main(String[] args) {
        Player player = new Player();
        player.setLevelNo(2);
        Game game = new Game(player);
        game.printStr();
    }
}