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");
}
Простая логика.