Чертеж местности Java - PullRequest
0 голосов
/ 20 января 2020

Я хочу создать программу, которая производит что-то вроде этого (с подчеркиванием, перевернутым вверх дном): output1

Примечание: я бы предпочел не использовать UNICODE.

Но вместо этого у меня получился следующий вывод (с подчеркиванием внизу): output2

public class Landscape {

    String terrainString;

    Landscape(){
        terrainString = "";
    }

    public void flat(int lengthOfFlatPortion){
        for (int count = 0; count < lengthOfFlatPortion; count++) {
            terrainString += "_";
        }
    }

    public void hill(int lengthOfHillTop){
        terrainString += "/";
        for (int count = 0; count < lengthOfHillTop; count++) {
            terrainString += "_";
        }
        terrainString += "\\";

    }

    public void print(){
        System.out.println(terrainString);
    }
}

public class Main {
    public static void main(String[] args){
        Landscape landscape = new Landscape();
        //BUILD Landscape Script
        landscape.flat(3);
        landscape.hill(4);
        landscape.flat(6);
        landscape.hill(1);
        landscape.flat(1);
        //END SCRIPT
        landscape.print();
    }
}

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Как я уже говорил в комментариях, используйте ( Юникод 203e ) вместо _ в методе hill(...).

Для печати символа Юникода в java, префикс его с \u. Таким образом, чтобы напечатать оверлайн, используйте строку "\u203e".

. Если вы не хотите использовать символы Юникода, вы должны напечатать вторую строку над первой. Это означает, что эта строка hill должна быть напечатана до печати остальных. Строка должна содержать только пробелы и подчеркивания, а подчеркивания следует печатать только там, где плоская поверхность холма.

Демо Ideone

0 голосов
/ 20 января 2020

используйте символ вместо _

public void hill(int lengthOfHillTop){
    terrainString += "/";
    for (int count = 0; count < lengthOfHillTop; count++) {
        terrainString += "‾";
    }
    terrainString += "\\";

}
...