По сути, мои основные проблемы связаны с двумя последними методами в моей программе, drawBlock и drawTiers. Он предназначен для вывода изображения торта, и в то время как он делает, он не делает это так, как он должен был. Например, программа допускает нечетные вводы от 3 до 9 (3,5,7,9) и использует их для определения размера печенья. Вход 3 должен получить нас
*
|
|
=========
|..xxx..|
/^^^^^^^^^^^^^^^^^^^^^^^^^^^\
[|_______||_______||_______|]
[|___||_______||_______|___|]
\===========================/
Пока 5 получит нас
*
|
|
=========
|..xxx..|
|..xxx..|
|........xxxxxxxxx........|
|........xxxxxxxxx........|
/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\
[|_______||_______||_______||_______||_______|]
[|___||_______||_______||_______||_______|___|]
[|_______||_______||_______||_______||_______|]
[|___||_______||_______||_______||_______|___|]
\=============================================/
соответственно. DrawTiers имеет один аргумент int, в то время как drawBlock имеет два. Уровни - это то, что должно определять, насколько широкими являются уровни, так как каждый раз, когда он вызывает drawBlock, предполагается, что второй аргумент увеличивается, что расширяет уровни. Дело в том, что, хотя моя программа содержит значение уровня, она ничего не делает, так как игнорируется, поскольку я кодировал для каждого возможного сценария. Это не то, как это должно быть сделано, и мне интересно, как заставить его правильно использовать значение уровней. Извините, если я не объяснил должным образом, но я был бы признателен за любую помощь. Также «sizeParam» - это то, что пользовательский ввод отправляет в метод.
public static void drawBlock (int sizeParam, int tierParam) {
if (sizeParam == 3) {
System.out.printf("%20s", "|..xxx..|\n");
}
else if (sizeParam == 5) {
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%29s", "|..xxx..|\n");
}
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%38s", "|........xxxxxxxxx........|\n");
}
}
else if (sizeParam == 7) {
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%38s", "|..xxx..|\n");
}
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%47s", "|........xxxxxxxxx........|\n");
}
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%56s", "|..............xxxxxxxxxxxxxxx..............|\n");
}
}
else if (sizeParam == 9) {
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%47s", "|..xxx..|\n");
}
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%56s", "|........xxxxxxxxx........|\n");
}
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%65s", "|..............xxxxxxxxxxxxxxx..............|\n");
}
for (int count = 0; count < sizeParam/2; count++) {
System.out.printf("%74s", "|....................xxxxxxxxxxxxxxxxxxxxx....................|\n");
}
}
}
public static void drawTiers (int tiersParam) {
for (int count = 0; count <= tiersParam/10; count++) {
int size = tiersParam;
drawBlock(size, tiersParam + 1);
}
}