【问题标题】:Consolebased Game, "update matrix at the same position"?基于控制台的游戏,“在同一位置更新矩阵”?
【发布时间】:2017-02-21 15:09:55
【问题描述】:

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

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

函数级创建一个新矩阵并显示打印出当前矩阵:

/**
 * 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();
    }
}

【问题讨论】:

  • 您可以尝试打印一些空白的新行以将所有内容向上移动,然后再次打印您需要的内容。
  • 您不能在控制台中执行此操作。您需要使用 GUI 类。

标签: java matrix printing console


【解决方案1】:

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

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

【讨论】:

  • 这听起来很简单,我会试试谢谢!对我来说,没有愚蠢的答案/问题(如果这个人想帮助你:))
  • 他们在谈论'java'。 Java 没有clrscr 选项。
  • 不,没有。在 C 和 C++ 中有一个,但在 Java 中没有。
  • 您不能只在运行时擦除控制台。当你重新运行程序时,你只能得到一个新的控制台。
  • @CrazyCucumber 除非您安装了特定的驱动程序或自己创建了一个允许 java 程序执行此操作的平台,否则这些技术不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-24
  • 2020-06-12
相关资源
最近更新 更多