Consolebased Game,"更新矩阵在同一位置"?

时间:2017-02-21 15:09:55

标签: java matrix printing console

编辑:由于在java中没有清除控制台的命令,因此必须通过GUI实现。

我正在编写一个基于游戏机的小游戏,我想问一下如何在控制台的同一位置打印我的矩阵? 我想让它看起来像矩阵中的变化出现在" realtime",这意味着用户没有看到绘制了新矩阵。

功能级别创建一个新矩阵,显示打印出当前矩阵:

/**
 * creates a new gameworld(matrix of size mxn)
 * @param m
 * @param n
 * @return
 */
public int[][] level(int m, int n){
    //initialize gameworld
    int[][] lGW = new int[m][n];

    //fill matrix with 0
    for(int i = 0; i <= m-1; i++ ){
        for(int j = 0; j <= n-1; j++ ){
            lGW[i][j] = 0;
        }
    }
    return lGW;
}

/**
 * show the gameworld in the console
 */
public void displayGameWorld(){
    for(int i = 0; i <= gameworld.length-1; i++){
        for(int j = 0; j <= gameworld[0].length-1; j++){
            System.out.printf("%3d", gameworld[i][j]);
        }
        System.out.println();
    }
}

1 个答案:

答案 0 :(得分:0)

我不是这个主题的专家,但我只是有个主意。我记得当我还是小孩的时候,我们曾经在一个控制台上工作(不记得什么是操作系统),当你点击clrscr时,它会一直向下滚动并将你输入的所有内容都推出视图。使用这个概念,
1.当用户做矩阵改变时,你是否有一个被调用的函数? 2.如果是,则在功能开始时清除屏幕 3.在屏幕顶部打印矩阵 4.让用户执行他的任务,最终导致矩阵发生变化 5.再次清除屏幕并重新打印矩阵?
这样,矩阵在变化之前和之后都在屏幕的顶部?

我很抱歉,如果这听起来真的很愚蠢。当我在阅读你的问题时,我才有了这个想法。