微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

遍历列表以替换 Java 中的随机元素

如何解决遍历列表以替换 Java 中的随机元素

首选结果:向用户询问板的宽度和长度。使用给定的维度创建网格。在打印网格之前,将随机元素从“ ”替换为“F”。

当前结果:成功地向用户询问宽度和长度但不替换元素。而是打印空白网格。

我在下面尝试过的:我使用 ListIterator 遍历列表并检查是否有任何元素处于隐藏状态(空白),如果是,则将选择 1-10 中的随机数,如果该数字低于5,元素将被替换,允许50%的棋盘是炸弹

如何修复此代码,以便在应用时将空白框替换为“F”?

import java.util.*;

public class GameBoard {

List<String> rows;
List<String> rowSeparator;
String hiddenState = " ";
String foundState = "F";
Scanner scanner;
Random randomBox;

public static void main(String[] args){
        GameBoard main = new GameBoard();
        main.generateGrid();
        main.printGrid();
    }
GameBoard(){
        scanner = new Scanner(system.in);
        randomBox = new Random();
    }
String getState(){
        return this.state;
    }
    void setState(String state){
        this.state = state;
    }

    void generateGrid() {
        int width;
        rows = new ArrayList<>(20);
        rowSeparator = new ArrayList<>();

        System.out.print("Width?: ");
        width = scanner.nextInt();

        for (int i = 0; i < width; i++) {
            rows.add("|");
            setState(hiddenState);
            rows.add(getState());
            rowSeparator.add("-");
            rowSeparator.add("-");
            int number = randomBox.nextInt(11);
            ListIterator<String> rowListIterator = rows.listIterator();
            while (rowListIterator.hasNext()) {
                String bombLocation = rowListIterator.next();
                if (bombLocation.equals(hiddenState)) {
                    if (number < 5) {
                        bombLocation.replace(hiddenState,foundState);

                    }
                }

            }
        }
    }

    void printGrid(){
        int length;

        System.out.print("Length?: ");
        length = scanner.nextInt();

        for(int i = 0; i < length; i++){
            System.out.println(rows.toString().replace("[","").replace("]","").replace(",","") + " |");
            System.out.println(rowSeparator.toString().replace("[","") + " -");
        }
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。