2017-02-21 9 views
0

Редактировать: Поскольку для очистки консоли в java нет команды, это должно быть реализовано через графический интерфейс.Consolebased Game, «обновить матрицу в той же позиции»?

Я пишу небольшую консольную игру, и я хочу спросить, как мне распечатать мою матрицу в том же месте на консоли? Я хочу, чтобы это выглядело так, как изменения в матрице появляются в «реальном времени», что означает, что пользователь не видит, что была нарисована новая матрица.

уровень функция создает новую матрицу и отображения распечатывает текущей матрицы:

/** 
* 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

Вы можете попробовать распечатать несколько новых строк, чтобы переместить весь контент, а затем распечатать то, что вам нужно снова. – Arqan

+1

Вы не можете сделать это в консоли. Вам нужно использовать классы GUI. – progyammer

ответ

0

Я не являюсь экспертом по этой теме, но я просто была идея. Я помню, когда я был ребенком, и мы работали на консоли (не помню, какую операционную систему), когда вы нажимаете clrscr, она LITERALLY прокручивает весь путь вниз и толкает все, что вы напечатали из своего представления. Используя эту концепцию,
1. У вас есть функция, которая вызывается, когда пользователь делает то, что он делает для изменения матрицы? 2. Если да, то очищается экран в начале функции.
3. Распечатайте матрицу в верхней части экрана.
4. Позвольте пользователю выполнить свою задачу, которая в конечном итоге приведет к изменению матрицы.
5. Снова очистить экран и перепечатать матрицу?
Таким образом, матрица находится в верхней части экрана до и после изменения?

Прошу прощения, если это звучало действительно глупо. У меня была эта идея, когда я читал ваш вопрос.

+0

Это звучит просто, я попробую! И для меня нет глупых ответов/вопросов (если человек хочет вам помочь :)) –

+2

Они говорят о «java». Java не имеет опции «clrscr». – progyammer

+0

Но может ли быть функция очистки консоли? –

Смежные вопросы