2

I am trying to print some ASCII art from a System.out.println in Java. When I do this though all the spacing in place in the source code goes away. What is printed out is a mess of nonsense that does not make any sense. Figure 1 shows what the source code looks like and what the ASCII art should look like. Figure 2 shows what the banner actually looks like when the program is run.

My question is how can I print the ASCII art as expected? How can I print the ASCII art with the formatting that makes the banner readable?

For instance with Python I could easily have this work by using triple quotes. Does Java have a similar text mechanism?

Figure 1: How the ASCII Art should look, how it is in the source code. Figure 1: What the ASCII art should look like

enter image description here Figure 2: What the ASCII art looks like when the program is run

Please see my source code as follows:

package Boring;

import java.util.Scanner;

public class EnchantedBoringLevel {


    public EnchantedBoringLevel () {
        System.out.println("\n\n\n\n\n\n\n\n\n\n\n");
    /*  System.out.println("\n" + 
"EEEE           h              t         d     BBBB                          FFFF                  t  " +
"E              h              t         d     B   B         ii              F                     t  " +
"EEE  nnn   ccc hhh   aa nnn  ttt eee  ddd     BBBB  ooo rrr    nnn  ggg     FFF  ooo rrr eee  ss ttt " +
"E    n  n c    h  h a a n  n  t  e e d  d     B   B o o r   ii n  n g g     F    o o r   e e  s   t  " +
"EEEE n  n  ccc h  h aaa n  n  tt ee   ddd     BBBB  ooo r   ii n  n ggg     F    ooo r   ee  ss   tt " +
"                                                                      g                              " +
"                                                                     ggg                             " 
);
*/
        System.out.println("***Enchanted Boring Forest***");
        System.out.println("Welcome to another boring level of this video game!\n\n\n\n");
        this.enchant();
    }

    public void enchant() {

        System.out.println("You find yourself in a magical forest all alone.\nYou hear music in the distance.\n" +
        "An elf appears and takes you to their tree house mansion.");

        System.out.print("The elf prince offers you three choices 1) invisible ring, 2) galactic sunglasses, 3) a map of the enchanted forest. Which do you choose?");
        Scanner enchanted_choice = new Scanner(System.in);
        String choice;
        choice = enchanted_choice.next();

        switch(new Integer(choice)) {

            case 1:
                System.out.println("You chose the invisible ring");
                new BoringInvisibleRing();
                break;
            case 2:
                System.out.println("You chose the galactic sunglasses");
                new BoringGalacticSunglasses();
                break;
            case 3:
                System.out.println("You chose the map of the enchanted forest");
                break;
            default:
                System.out.println("You shot yourself in the face.");

        }
    }





}
1
  • 1
    Ah, excellent point. I have added my source code with the ASCII art in comments. Commented Mar 26, 2018 at 17:00

2 Answers 2

1

Console wraps your text. Set heigher column number in console settings

Sign up to request clarification or add additional context in comments.

Comments

0

The problem is that java treats your text as a single line and cmd wraps it, so it becomes unreadable. To make a new line, use the newline character \n.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.