5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IIT(Iwate Industrial Tecnology)Advent Calendar 2024

Day 16

javaでクリスマスツリーを作ろう!

Posted at

はじめに

こんにちは。もうすぐでクリスマスがやってきますね。
そこで今回は、visual studio codeでjavaを使って簡単に出力できるクリスマスツリーを作っていこうと思います。

ソースコード

import java.util.Random;

public class tree {
    public static void main(String[] args) {
        int height = 10;
        Random random = new Random();

        for (int i = 0; i < height; i++) {
            for (int j = height - i; j > 1; j--) {
                System.out.print(" ");
            }

            // ツリーの葉を描画
            for (int j = 0; j <= i * 2; j++) {
                if (random.nextInt(5) == 0) {
                    // ランダムに飾り付け
                    System.out.print("O");
                } else if (random.nextInt(20) == 0) {
                    // ランダムに星を追加
                    System.out.print("*");
                } else {
                    // ツリーの葉
                    System.out.print("^");
                }
            }
            System.out.println();
        }

        // ツリーの幹を描画
        for (int i = 0; i < height / 2.5; i++) {
            for (int j = 0; j < height - 2; j++) {
                System.out.print(" ");
            }
            System.out.println("|||");
        }
    }
}

今回は実行すると、毎回異なるクリスマスツリーを表示できるプランを作りたいと思い、Randomクラスを使用しました。また、height変数でツリーの高さを設定しています。

--実行結果--
結果.png
実行結果1          実行結果2          実行結果3

実行してみるとこのようにランダムにクリスマスツリーが形成されました!

追加のコード

先ほどのクリスマスツリーもよかったのですが、少し物足りない気もしたので葉っぱや飾りに色を付けようと思います。

//色の定義
       String green = "\u001B[32m";       //緑色を定義
       String red = "\u001B[31m";        //赤色を定義
       String yellow = "\u001B[33m";      //黄色を定義
       String brown = "\u001B[38;5;94m"; //茶色を定義
       String reset = "\u001B[0m"; 

まず色を定義して、

System.out.print(red+"*"+reset);

色を変更したい部分にこのようなコードを追加しました。

import java.util.Random;

public class tree {
    public static void main(String[] args) {
        int height = 10;
        Random random = new Random();

       //色の定義
       String green = "\u001B[32m";      //緑色を定義
       String red = "\u001B[31m";        //赤色を定義
       String yellow = "\u001B[33m";     //黄色を定義
       String brown = "\u001B[38;5;94m"; //茶色を定義
       String reset = "\u001B[0m";

        for (int i = 0; i < height; i++) {
            for (int j = height - i; j > 1; j--) {
                System.out.print(" ");
            }

            // ツリーの葉を描画
            for (int j = 0; j <= i * 2; j++) {
                if (random.nextInt(5) == 0) {
                    // ランダムに飾り付け
                    System.out.print(red+"O"+reset);
                } else if (random.nextInt(20) == 0) {
                    // ランダムに星を追加
                    System.out.print(yellow+"*"+reset);
                } else {
                    // ツリーの葉
                    System.out.print(green+"^"+reset);
                }
            }
            System.out.println();
        }
        
        // ツリーの幹を描画
        for (int i = 0; i < height / 2.5; i++) {
            for (int j = 0; j < height - 2; j++) {
                System.out.print(" ");
            }
            System.out.println(brown+"|||"+reset);
        }
    }
}

最終的にこのようなコードになりました!

--実行結果--
スクリーンショット 2024-12-14 104605.png
実行結果1          実行結果2          実行結果3

実行してみるとこのようにクリスマスツリーがカラフルに色づきました!

まとめ

Randomクラスを活用すれば毎回違った実行結果を得ることができるので、面白いと思いました。また、今回作ったクリスマスツリーのほかにも面白い実行結果を得られるプログラムがあると思うのでそのようなプログラムも今後やっていきたいです。

5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?