当前位置: 首页 > 知识库问答 >
问题:

java中的策划游戏

郜谦
2023-03-14
package edu.blastermind.model;

import java.util.Random;

/**
 * Text-based version of the Mastermind game. The hints are simpler in that you
 * know the position of correct pegs (but you know nothing at all about
 * correctly-colored pegs in wrong positions).
 * 
 * @author
 * 
 */
public class BlasterMindGame {

    private static final int NUM_PEGS = 5;
    private String secret;

    /**
     * Creates a new game with a randomized secret consisting of some
     * combination of the letters: A, B, C, D, and/or E
     */
    public BlasterMindGame() {
        Random rng = new Random();

        this.secret = "ABCDE";
        // TODO 7: for-loop to create the secret string
        StringBuffer guess = new StringBuffer("");
        for (int i = 0; i < NUM_PEGS - 1; i++) {
            char currentChar = guess.charAt(i);
            String cs = currentChar + "";
            currentChar = (char) ((char) (currentChar));
            Character A = guess.charAt(0);
            Character B = guess.charAt(1);
            Character C = guess.charAt(2);
            Character D = guess.charAt(3);
            Character E = guess.charAt(4);
            if (cs.matches("0")) {
                guess.append(secret.charAt(A));
            }else if (cs.matches("1")) {
                guess.append(secret.charAt(B));
            }else if (cs.matches("2")) {
                guess.append(secret.charAt(C));
            }else if (cs.matches("3")) {
                guess.append(secret.charAt(D));
            }else if (cs.matches("4")) {
                guess.append(secret.charAt(E));
            }
        }
    }

    /**
     * Tries to guess the secret.
     * 
     * @param guess
     *            a 5-character string made up of only A, B, C, D, or E. Must be
     *            exactly 5 characters long.
     * 
     * @return a 5-character string made up of the characters - and O,
     *         indicating: '-' for an incorrect match in that position 'O' for a
     *         correct match in that position
     */
    public String getEasyHint(String guess) {

        String hint = "";

        return hint;
    }

    /**
     * Lets us know if we've guessed the secret or not.
     * 
     * @param guess
     *            our guess (must be exactly 5 characters long)
     * @return true if correct, false otherwise.
     */
    public boolean isGuessCorrect(String guess) {

        return this.secret.equals(guess);
    }
}
package edu.westga.blastermind.controllers;

import java.util.Scanner;

import edu.westga.blastermind.model.BlasterMindGame;

public class BlasterMind {

    public static void main(String[] args) {

        BlasterMindGame game = new BlasterMindGame();
        Scanner kb = new Scanner(System.in);
        int turns = 1;

        while(true){
        System.out.println("Enter a guess:");
        String guess = kb.next();
        if (!game.isGuessCorrect(guess)){
            System.out.println("You guessed incorrect!");
            String input = kb.next();
            turns++;
        } else if  (game.isGuessCorrect(guess)) break;
        }
        // TODO 6: write the game simulation loop


        System.out.printf("You won in %d turns\n", turns);
    }

}

大家好,我正在用java编写mastermind游戏,这是一个字符串猜谜游戏。这个游戏中的秘密不是一个数字,而是一个由大写字母a、B、C、D和E组成的5个字符的字符串。当我运行main方法时,我得到以下结果:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.StringBuffer.charAt(Unknown Source)
    at edu.westga.blastermind.model.BlasterMindGame.<init>(BlasterMindGame.java:29)
    at edu.westga.blastermind.controllers.BlasterMind.main(BlasterMind.java:11)

while循环假定为:•只要主体中的猜测不正确就运行:

    null

共有1个答案

袁波
2023-03-14

您需要将字符串传递到字符串缓冲区。

 StringBuffer guess = new StringBuffer("BCDEA");//Exception Won't occur
 类似资料:
  • 不知道为啥在****上投了一万个数据分析岗没回应,结果多益的hr直接找上来问我对游戏玩的多不多,对游戏策划感不感兴趣,莫名其妙的就投了简历,填完了测评(看别人都说有些都乱填,就我兢兢业业填了快一千多个字?),明天笔试不知道考啥 多益很缺策划?鼠鼠就一破打游戏的能面游戏策划吗? 8.5一面(面试官的麦经常会听不清,反问了好几次,然后回答问题的时候眼睛不由自主往左下瞄,我也不知道为啥,下次屏幕中间贴个

  • 因为临时更换面试的项目组,准备不是很充分,面试官基本没有问引擎之类的问题,针对游戏理解问了很多,关于付费,关于这款游戏的改善点,如何吸引竞品玩家等等。我当时玩家视角严重,加上时间紧对这款没怎么拆解过,面试官说我准备时间比较紧,先不给我进二面,如果想来这个岗位写一份提案给他看。这种情况是被面试官婉拒了吗,还是想看我的意愿和态度。

  • 自我介绍 为什么跨考计算机 绩点排名 学校是否一本 能否立即实习 实习经历 (看是测试和开发就没有深入问了,此时应该提一嘴,自己接触过需求评审会议,到具体实现的业务逻辑流程) 挑一款游戏 一个方面来分析优缺点 (说的明日方舟的PVE系统,说的不是很好,没有说出优缺点是什么,来回几个车咕噜话,就说策略,吸引用户,增加游玩性等。应该从塔防关卡和角色养成相融合的点进行剖析) 关卡要素有哪些 (说的地图要

  • 这是我第一次面试来着,简单写点 首先自我介绍 问平时都玩哪些游戏 老滚骑砍挑一个讲讲 (挑了老滚) 对老滚有什么认识和理解 (脑袋空空,阿巴阿巴了一些,大概就代入感,游戏内容丰富,剑与魔法) 说说老滚代入感 (主要说了npc与你的互动,路上遇到的路人劫匪) 老滚还有什么你比较喜欢的 (升级系统,阿巴阿巴大概就是,比较少见的升级系统,通过做一件事情来增加这件事情的熟练度,增加经验,反馈到总的经验条上

  • 月初投递,目前笔试+一面 ——40分钟左右—— 深挖实习经历:两段实习期间的工作流是什么样的,有什么不同;主要负责过哪些方面的工作;为什么实习跳槽; 介绍一个你喜欢的游戏;这个游戏你觉得最好的一个系统是什么; mmo里线性成长跟概率成长的区别是什么; 原神,聊一下圣遗物的养成系统;圣遗物如果要做养成深挖该怎么挖; 你对首充礼包和通行证怎么看,如果让你设计你会考虑什么因素; 如果需要你控制pvp游戏

  • 投递之后第三天就约面,约第四天下午线上,总共持续25分钟左右。 自我介绍 大学期间玩过的游戏 氪了多少 哪个游戏玩的最多 为什么他能让你一直玩下去 挑原神让你谈看法。我讲了游戏内容相关的,问还有吗,讲了玩法相关的,问还有吗,似乎一直不太满意。我反问,可以指一个方向来回答吗。hr:角色养成,战斗系统,数值方向都可以。 我选了角色养成方向,结果憋了半天说不出什么来 hr:没有准备这个吗 我:我准备的是