2013-02-22 2 views
1

мне нужно сделать таблицу, в которой пользователь вводит количество звездочек в столбцах и строках, до сих пор у меня есть это:сетки и х и у координаты

import java.util.Scanner; 

public class Grid { 

public void run(){ 

     Scanner scan = new Scanner(System.in); 

     System.out.println("Enter the grid width (1-9):"); 
     double num = scan.nextDouble(); 


     System.out.println("Enter the grid length (1-9)"); 
     double numLength = scan.nextDouble(); 


     for(int i = 0; i < num; i++){ 
      for(int j = 0; j < numLength; j++){ 
      System.out.print("*"); 
      } 
     System.out.println(""); 

, но я не знаю, как вставьте символ «X» в (0,0) сетки, в верхнем левом углу или как заставить его перемещаться и даже зацикливаться. пользователь должен поставить «вверх» «вниз» «влево» и «вправо», чтобы он мог двигаться, и я очень смущен тем, как иметь координаты x и y в java.

+0

Внутри вашего цикла 'x' является' j' и 'y' является' я '. Так просто. –

ответ

0

System.out Простой выходной поток. Вы не можете анимировать текст там, и вы также не можете зарегистрировать направленные клавиши в командной строке.

Вам нужен графический интерфейс. Это не самое лучшее, но посмотрите на Swing.

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

Scanner scan = new Scanner(System.in); 

System.out.println("Enter the grid width (1-9):"); 
int w = scan.nextInt(); 

System.out.println("Enter the grid length (1-9):"); 
int h = scan.nextInt(); 

int x = 0, y = 0; 
while (true) 
{ 
    for(int i = 0; i < w; i++){ 
     for(int j = 0; j < h; j++){ 
     if (i != x || j != y) 
      System.out.print("*"); 
     else 
      System.out.print("X"); 
     } 
     System.out.println(""); 
    } 
    System.out.println("Enter direction (u,d,l,r):"); 
    char c = scan.next().charAt(0); 
    switch (c) 
    { 
     case 'u': x = Math.max(0, x-1); break; 
     case 'd': x = Math.min(w-1, x+1); break; 
     case 'l': y = Math.max(0, y-1); break; 
     case 'r': y = Math.min(h-1, y+1); break; 
     case 'x': System.out.println("Exiting..."); System.exit(0); 
    } 
} 
Смежные вопросы