Choinka z kolorowymi bombkami

Kolory w konsoli - Podstawy Javy (Java)

Choinka z kolorowymi bombkami: każdy rząd to spacje i coraz więcej gwiazdek (1, 3, 5, ...). Część gwiazdek zamieniamy na bombki w innych kolorach, a pień jest żółty. Każdy znak dostaje swój kolor i reset, więc kolory się nie mieszają. Pomysł pochodzi z artykułu autora o choince w Pythonie (brylka.net).

import java.util.Random;

public class Main {
  static final int HEIGHT = 8;
  static final String GREEN = "\u001B[32m";
  static final String YELLOW = "\u001B[33m";
  static final String RESET = "\u001B[0m";
  static final String[] BAUBLE_COLORS = {"\u001B[31m", "\u001B[34m", "\u001B[35m", "\u001B[36m", "\u001B[93m"};
  static final String[] BAUBLES = {"o", "@", "$"};

  public static void main(String[] args) {
    Random random = new Random();
    for (int row = 0; row < HEIGHT; row++) {
      StringBuilder line = new StringBuilder(" ".repeat(HEIGHT - row - 1));
      for (int i = 0; i < 2 * row + 1; i++) {
        if (random.nextDouble() < 0.15) {
          line.append(BAUBLE_COLORS[random.nextInt(BAUBLE_COLORS.length)]);
          line.append(BAUBLES[random.nextInt(BAUBLES.length)]).append(RESET);
        } else {
          line.append(GREEN).append("*").append(RESET);
        }
      }
      System.out.println(line);
    }
    for (int i = 0; i < 2; i++) {
      System.out.println(" ".repeat(HEIGHT - 2) + YELLOW + "###" + RESET);
    }
  }
}

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Podstawy Javy·Zaloguj się, aby zapisać postęp na koncie.