Ascii Art with Java - Создание квадрата / прямоугольника с разными символическими краями

Я работаю над распечаткой ascii art, которая берет два целых числа, введенных из консоли, а затем отображает прямоугольник или квадрат из этих двух целых чисел (тогда размеры). Но углы должны быть другим символом, чем основной символ... но хитрость в том, что на короткой стороне должно быть только 1 или 2 исходных символа (из-за нечетного или четного).

Вот два примера:

6x9:

001111100
011111110
111111111
111111111
011111110
001111100

9x6:

001100
011110
111111
111111
111111
111111
111111
011110
001100

Я дошел до этого (так как консоль идет только от 0 до 9, верно?) Что нужно добавить, чтобы учесть углы? Будет ли заявление If работать или что-то еще? И да, я знаю, что это только для "квадрата". Как бы я добавил второе измерение? Могу ли я получить помощь?

class Main {
public static void printSquare(int size) {
    if(size > 9) {
       size = 9;
    }
    int line = 1;

        while (line <= size) { 
            int width = size; 
            int i = 1; 

            while (i <= width) {
                System.out.print("*");
                i = i + 1;
            }

            System.out.println(); // Newline
            line = line + 1;
        }
    }
}

Спасибо!

1 ответ

Решение

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

 Scanner keys = new Scanner(System.in);

 int x = 0;
 int y = 0;

 public void getInput() {

 x = keys.nextInt();
 y = keys.nextInt();
 createart();

 }

 public void createart() {

 System.out.print("00");

 int counter = 0;

 while (counter < x - 4) {

 System.out.print(1);

 counter++;

 }
 System.out.println("00");

 counter = 0;
 System.out.print("0");
 while (counter < x - 2) {

 System.out.print(1);
 counter++;

 }
 System.out.print("0");
 counter = 0;
 int counter2 = 0;
 while (counter < y - 4) {
 System.out.println("");

 while  (counter2 < x) {

 System.out.print(1);

 counter2++;
 }
 counter++;
 } 
 System.out.println("");
 counter = 0;
 while (counter < x - 2) {

 System.out.print(1);

 counter++;

 }

 counter = 0;
 System.out.println("0");
 System.out.print("00");
 while (counter < x - 4) {

 System.out.print(1);

 counter++;

 }

 System.out.print("00"); 

 }   

Простая логика.

Другие вопросы по тегам