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

## はじめに
こんにちは。もうすぐでクリスマスがやってきますね。
そこで今回は、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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3943860/48aba96c-55a0-04cb-268e-a0935ebfad06.png)
実行結果１　　　　　　　　　　実行結果２　　　　　　　　　　実行結果３

実行してみるとこのようにランダムにクリスマスツリーが形成されました！
## 追加のコード
先ほどのクリスマスツリーもよかったのですが、少し物足りない気もしたので葉っぱや飾りに色を付けようと思います。
```
//色の定義
       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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3943860/4924de26-515d-cb43-ad18-b1d7cfde7e9c.png)
実行結果１　　　　　　　　　　実行結果２　　　　　　　　　　実行結果３

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

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