
import java.util.Scanner;

public class SchiffeVersenken {

    // ANSI-Farbcodes
    public static final String ANSI_RESET = "\u001B[0m";
    public static final String ANSI_BLUE = "\u001B[34m";
    public static final String ANSI_RED = "\u001B[31m";
    public static final String PURPLE = "\033[0;35m";
    public static final String GREEN = "\033[0;32m";

    public static void main(String[] args) throws InterruptedException {

        // Einleitung des Spiels
        System.out.println();
        System.out.println(PURPLE + " Das Spiel Schiffeversenken wird gestartet..." + ANSI_RESET);
        System.out.println();
        System.out.println();
        Thread.sleep(3000);
    
        System.out.println(GREEN + "..." + ANSI_RESET);
        System.out.println();
        Thread.sleep(300);
    
        System.out.println(GREEN + "Du bist Kapitän mit deinem Schiff auf See. Es ist dunkel... sehr dunkel.." + ANSI_RESET);
        Thread.sleep(3200);
        System.out.println();
        Thread.sleep(3200);

        System.out.println(GREEN + "Du kannst kaum etwas sehen. Du bekommst Angst." + ANSI_RESET);
        System.out.println();
        Thread.sleep(3200);

        System.out.println(GREEN + "Die Wellen schlagen hoch, deine Crew ist total erschöpft ." + ANSI_RESET);
        System.out.println();
        Thread.sleep(3200);

        System.out.println(GREEN + "Dein Ziel ist es, deine Crew zu beschützen und die Seeschlacht zu gewinnen." + ANSI_RESET);
        System.out.println();
        Thread.sleep(3200);

        System.out.println(GREEN + "Los jetzt, positioniere die Schiffe bevor der Gegner zuschlägt." + ANSI_RESET);
        System.out.println();
        Thread.sleep(3200);

        System.out.println(GREEN + "Vor dir liegt eine stürmische See. Bereite dich auf den Kampf vor!" + ANSI_RESET);
        System.out.println();
        Thread.sleep(3200);

        System.out.println( "Deine Reise beginnt jetzt... Drücke eine beliebige Taste zum Start");
        System.out.println();

        // Benutzer muss eine beliebige Taste drücken
        Scanner scanner = new Scanner(System.in);
        scanner.nextLine();

        // Konversation
        System.out.println();
        System.out.println(ANSI_BLUE + "Mann (über Funk):");
        System.out.println("\"Kapitän! Es ist stockdunkel... die Wellen schlagen höher. Wir verlieren Sicht!\"" + ANSI_RESET);
        Thread.sleep(3000);

        System.out.println();
        System.out.println(ANSI_RED + "Kapitän:");
        System.out.println("\"Bleib dran, was sagt das Radar? Irgendwas?\"" + ANSI_RESET);
        Thread.sleep(3000);

        System.out.println();
        System.out.println(ANSI_BLUE + "Mann:");
        System.out.println("\"Da... da ist etwas! Bewegung—\"" + ANSI_RESET);
        Thread.sleep(3000);

        System.out.println();
        System.out.println(ANSI_RED + "Kapitän:");
        System.out.println("\"Wie Bewegung?! WAS IST LOS?? \"" + ANSI_RESET);
        Thread.sleep(3000);

        System.out.println();
        System.out.println(ANSI_BLUE + "Mann:");
        System.out.println("\"Sie kommen! Es sind—\"" + ANSI_RESET);
        Thread.sleep(2000);

        System.out.println();
        System.out.println("*Funkgerät knackt, dann Stille.*");
        Thread.sleep(2000);

        System.out.println();
        System.out.println(ANSI_RED + "Letzte Nachricht (verzerrt):");
        System.out.println("\"Der Gegner kommt... HILFE!\"" + ANSI_RESET);
        Thread.sleep(3000);

        // Spielfeld anzeigen
        System.out.println();
        System.out.println("Spielfeld wird jetzt angezeigt...");
        Thread.sleep(3000);

        System.out.println();
        System.out.println("Das ist dein Spielfeld! Du kannst jetzt deine Schiffe platzieren. Präge dir dein Schlachtfeld gut ein. Viel Glück :)");
        Thread.sleep(3000);
        System.out.println();
    

    

        // Spielfeldgröße 10x10
        char[][] spielfeld = new char[10][10];

        // Spielfeld mit Wasser ('~') füllen
        for (int x = 0; x < 10; x++) {
            for (int y = 0; y < 10; y++) {
                spielfeld[x][y] = '~';
            }
        }

        // Spielfeld ausgeben
        System.out.println( GREEN + "      1     2     3     4     5     6     7     8     9     10" + ANSI_RESET);
        for (int x = 0; x < 10; x++) {
            System.out.print(GREEN + (x + 1) + ANSI_RESET + "     "); // Zeilennummer ausgeben (y-Achse)
            for (int y = 0; y < 10; y++) {
                if (spielfeld[x][y] == '~') {
                    System.out.print(ANSI_BLUE + spielfeld[x][y] + ANSI_RESET + "     ");
                } else if (spielfeld[x][y] == 'X') {
                    System.out.print(ANSI_RED + spielfeld[x][y] + ANSI_RESET + "     ");
                } else {
                    System.out.print(spielfeld[x][y] + "     ");
                }
            }
            System.out.println();
            System.out.println();

            // Verzögerung nach jeder Zeile hinzufügen
            Thread.sleep(500);
        }
    



        // Frage den Benutzer nach der Richtung des ersten Schiffes (3er Schiff)
        System.out.println("Deine Aufgabe ist es, die Schiffe so zu legen, dass dein Gegner sie nicht findet...");
        System.out.println();
        Thread.sleep(6000); // 6000 Millisekunden Pause
        System.out.println("Du legst jetzt dein 3er Schiff");
        Thread.sleep(4000); // 4000 Millisekunden Pause
        System.out.println("Möchtest du dein Schiff horizontal (links/rechts) (0) oder vertikal (oben/unten) (1) platzieren? Überlege genau...");
        System.out.println();
        int richtung = scanner.nextInt();
        System.out.println();

        // Eingabe speichern und ausgeben
        if (richtung == 0) {
            System.out.println("Du hast horizontal gewählt.");
            Thread.sleep(800); // 800 Millisekunden Pause
            System.out.println("Möchtest du dein Schiff nach links (0) oder nach rechts (1) platzieren?");
            System.out.println();
        } else {
            System.out.println("Du hast vertikal gewählt.");
            Thread.sleep(800); // 800 Millisekunden Pause
            System.out.println("Möchtest du dein Schiff nach oben (0) oder nach unten (1) platzieren?");
            System.out.println();
        }
        int orientierung = scanner.nextInt();

        if (richtung == 0) {
            if (orientierung == 0) {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff horizontal nach links.");
            } else {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff horizontal nach rechts.");
            }
        } else {
            if (orientierung == 0) {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff vertikal nach oben.");
            } else {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff vertikal nach unten.");
            }
        }

        // Frage den Benutzer nach der Position des ersten Schiffs (3er Schiff)
        System.out.println("Wo möchtest du dein erstes Schiff platzieren? Gebe die Zeile (y-Achse) (1-10) ein:");
        System.out.println();
        int zeile = scanner.nextInt() - 1;

        System.out.println();
        System.out.println("Gebe die Spalte (x-Achse) (1-10) ein:");
        System.out.println();
        int spalte = scanner.nextInt() - 1;

        // Schiff platzieren, falls gültige Eingabe
        if (zeile >= 0 && zeile < 10 && spalte >= 0 && spalte < 10) {
            if (richtung == 0) { // Horizontal
                if (orientierung == 0) { // Nach links
                    for (int i = 0; i < 3; i++) {
                        if (spalte - i >= 0) {
                            spielfeld[zeile][spalte - i] = 'X';
                        }
                    }
                } else { // Nach rechts
                    for (int i = 0; i < 3; i++) {
                        if (spalte + i < 10) {
                            spielfeld[zeile][spalte + i] = 'X';
                        }
                    }
                }
            } else { // Vertikal
                if (orientierung == 0) { // Nach oben
                    for (int i = 0; i < 3; i++) {
                        if (zeile - i >= 0) {
                            spielfeld[zeile - i][spalte] = 'X';
                        }
                    }
                } else { // Nach unten
                    for (int i = 0; i < 3; i++) {
                        if (zeile + i < 10) {
                            spielfeld[zeile + i][spalte] = 'X';
                        }
                    }
                }
            }
        } else {
            System.out.println("Ungültige Position. Bitte starte das Programm neu und versuche es erneut.");
        }

        // 1 Aktualisiertes Spielfeld ausgeben
        System.out.println();
        System.out.println("Aktualisiertes Spielfeld:");
        System.out.println();
        System.out.println("      1     2     3     4     5     6     7     8     9     10"); // 5 Leerzeichen zwischen den Zahlen
        for (int x2 = 0; x2 < 10; x2++) {
            System.out.print((x2 + 1) + "     "); // Zeilennummer ausgeben (y-Achse)
            for (int y2 = 0; y2 < 10; y2++) {
                if (spielfeld[x2][y2] == '~') {
                    System.out.print(ANSI_BLUE + spielfeld[x2][y2] + ANSI_RESET + "     ");
                } else if (spielfeld[x2][y2] == 'X') {
                    System.out.print(ANSI_RED + spielfeld[x2][y2] + ANSI_RESET + "     ");
                } else {
                    System.out.print(spielfeld[x2][y2] + "     ");
                }
            }
            System.out.println();
            System.out.println();

            // Verzögerung nach jeder Zeile hinzufügen
               
            Thread.sleep(400); // 400 Millisekunden Pause
        }
            System.out.println();
            System.out.println();

            // Frage den Benutzer nach der Richtung des zweiten Schiffes (5er Schiff)
            System.out.println("Dein 3er Schiff wurde erfolgreich platziert");
            System.out.println();
            Thread.sleep(3000); // 3000 Millisekunden Pause
            System.out.println("Du legst jetzt dein 5er Schiff");
            Thread.sleep(1000); // 1000 Millisekunden Pause
            System.out.println("Möchtest du dein Schiff horizontal (links/rechts) (0) oder vertikal (oben/unten) (1) platzieren? Platziere mit Bedacht... :) ");
            System.out.println();
            int richtung2 = scanner.nextInt();
            System.out.println();

            // Eingabe speichern und ausgeben
            if (richtung2 == 0) {
                System.out.println("Du hast horizontal gewählt.");
                Thread.sleep(1000); // 1000 Millisekunden Pause
                System.out.println("Möchtest du dein Schiff nach links (0) oder nach rechts (1) platzieren?");
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println();
            } else {
                System.out.println("Du hast vertikal gewählt.");
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Möchtest du dein Schiff nach oben (0) oder nach unten (1) platzieren?");
                System.out.println();
            }
            int orientierung2 = scanner.nextInt();

            if (richtung2 == 0) {
                if (orientierung2 == 0) {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff horizontal nach links.");
                } else {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff horizontal nach rechts.");
                }
            } else {
                if (orientierung2 == 0) {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff vertikal nach oben.");
                } else {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff vertikal nach unten.");
                }
            }

            // Frage den Benutzer nach der Position des zweiten Schiffs (5er Schiff)
            Thread.sleep(1000); // 1000 Millisekunden Pause
            System.out.println("Wo möchtest du dein zweites Schiff platzieren? Gebe die Zeile (y-Achse) (1-10) ein:");
            System.out.println();
            int zeile2 = scanner.nextInt() - 1;

            System.out.println();
            System.out.println("Gebe die Spalte (x-Achse) (1-10) ein:");
            System.out.println();
            int spalte2 = scanner.nextInt() - 1;

            // Schiff platzieren, falls gültige Eingabe
            if (zeile2 >= 0 && zeile2 < 10 && spalte2 >= 0 && spalte2 < 10) {


            // Schiff platzieren, falls gültige Eingabe
            if (zeile2 >= 0 && zeile2 < 10 && spalte2 >= 0 && spalte2 < 10) {
                if (richtung2 == 0) { // Horizontal
                    if (orientierung2 == 0) { // Nach links
                        for (int i = 0; i < 5; i++) {
                            if (spalte2 - i >= 0) {
                                spielfeld[zeile2][spalte2 - i] = 'X';
                            }
                        }
                    } else { // Nach rechts
                        for (int i = 0; i < 5; i++) {
                            if (spalte2 + i < 10) {
                                spielfeld[zeile2][spalte2 + i] = 'X';
                            }
                        }
                    }
                } else { // Vertikal
                    if (orientierung2 == 0) { // Nach oben
                        for (int i = 0; i < 5; i++) {
                            if (zeile2 - i >= 0) {
                                spielfeld[zeile2 - i][spalte2] = 'X';
                            }
                        }
                    } else { // Nach unten
                        for (int i = 0; i < 5; i++) {
                            if (zeile2 + i < 10) {
                                spielfeld[zeile2 + i][spalte2] = 'X';
                            }
                        }
                    }
                }
            } else {
                System.out.println("Ungültige Position. Bitte starte das Programm neu und versuche es erneut.");
            }

            // 2 Aktualisiertes Spielfeld ausgeben
            System.out.println();
            System.out.println("2 Aktualisiertes Spielfeld:");
            System.out.println();
            System.out.println("      1     2     3     4     5     6     7     8     9     10"); // 5 Leertaste zwischen Zahlen
            for (int x3 = 0; x3 < 10; x3++) {
                System.out.print((x3 + 1) + "     ");
                for (int y3 = 0; y3 < 10; y3++) {
                    if (spielfeld[x3][y3] == '~') {
                        System.out.print(ANSI_BLUE + spielfeld[x3][y3] + ANSI_RESET + "     ");
                    } else if (spielfeld[x3][y3] == 'X') {
                        System.out.print(ANSI_RED + spielfeld[x3][y3] + ANSI_RESET + "     ");
                    } else {
                        System.out.print(spielfeld[x3][y3] + "     ");
                    }
                }
                System.out.println();
                System.out.println();

                // Verzögerung nach jeder Zeile hinzufügen
                
                Thread.sleep(400); // 400 Millisekunden Pause
            }
                System.out.println();
                System.out.println();


    

            // Frage den Benutzer nach der Richtung des dritten Schiffes (4er Schiff)
            System.out.println("Dein 5er Schiff wurde erfolgreich platziert");
            System.out.println("Du legst jetzt dein 4er Schiff");
            Thread.sleep(800); // 800 Millisekunden Pause
            System.out.println("Möchtest du dein Schiff horizontal (links/rechts) (0) oder vertikal (oben/unten) (1) platzieren? Wähle schlau...");
            System.out.println();
            int richtung3 = scanner.nextInt();
            System.out.println();

            // Eingabe speichern und ausgeben
            if (richtung3 == 0) {
                System.out.println("Du hast horizontal gewählt.");
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Möchtest du dein Schiff nach links (0) oder nach rechts (1) platzieren?");
                System.out.println();
            } else {
                System.out.println("Du hast vertikal gewählt.");
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Möchtest du dein Schiff nach oben (0) oder nach unten (1) platzieren?");
                System.out.println();
            }
            int orientierung3 = scanner.nextInt();

            if (richtung3 == 0) {
                if (orientierung3 == 0) {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff horizontal nach links.");
                } else {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff horizontal nach rechts.");
                }
            } else {
                if (orientierung3 == 0) {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff vertikal nach oben.");
                } else {
                    System.out.println();
                    Thread.sleep(800); // 800 Millisekunden Pause
                    System.out.println("Du legst dein Schiff vertikal nach unten.");
                }
            }
            
            // Frage den Benutzer nach der Position des dritten Schiffs (4er Schiff)
                System.out.println("Wo möchtest du dein drittes Schiff platzieren? Gebe die Zeile (y-Achse) (1-10) ein:");
                Thread.sleep(1000); // 1000 Millisekunden Pause
                System.out.println();
                int zeile3 = scanner.nextInt() - 1;

                System.out.println();
                System.out.println("Gebe die Spalte (x-Achse) (1-10) ein:");
                System.out.println();
                int spalte3 = scanner.nextInt() - 1;

            // Schiff platzieren, falls gültige Eingabe
            if (zeile3 >= 0 && zeile3 < 10 && spalte3 >= 0 && spalte3 < 10) {
                if (richtung3 == 0) { // Horizontal
                    if (orientierung3 == 0) { // Nach links
                        for (int i = 0; i < 4; i++) {
                            if (spalte3 - i >= 0) {
                                spielfeld[zeile3][spalte3 - i] = 'X';
                            }
                        }
                    } else { // Nach rechts
                        for (int i = 0; i < 4; i++) {
                            if (spalte3 + i < 10) {
                                spielfeld[zeile3][spalte3 + i] = 'X';
                            }
                        }
                    }
                } else { // Vertikal
                    if (orientierung3 == 0) { // Nach oben
                        for (int i = 0; i < 4; i++) {
                            if (zeile3 - i >= 0) {
                                spielfeld[zeile3 - i][spalte3] = 'X';
                            }
                        }
                    } else { // Nach unten
                        for (int i = 0; i < 4; i++) {
                            if (zeile3 + i < 10) {
                                spielfeld[zeile3 + i][spalte3] = 'X';
                            }
                        }
                    }
                }
            } else {
                System.out.println("Ungültige Position. Bitte starte das Programm neu und versuche es erneut.");
            }

            //  3 Aktualisiertes Spielfeld ausgeben
            System.out.println();
            System.out.println(" 3 Aktualisiertes Spielfeld:");
            System.out.println();
            System.out.println("      1     2     3     4     5     6     7     8     9     10"); // 5 Leerzeichen zwischen Zahlen
            for (int x4 = 0; x4 < 10; x4++) {
                System.out.print((x4 + 1) + "     ");
                for (int y4 = 0; y4 < 10; y4++) {
                    if (spielfeld[x4][y4] == '~') {
                        System.out.print(ANSI_BLUE + spielfeld[x4][y4] + ANSI_RESET + "     ");
                    } else if (spielfeld[x4][y4] == 'X') {
                        System.out.print(ANSI_RED + spielfeld[x4][y4] + ANSI_RESET + "     ");
                    } else {
                        System.out.print(spielfeld[x4][y4] + "     ");
                    }
                }
                System.out.println();
                System.out.println();
           

                // Verzögerung nach jeder Zeile hinzufügen
                
                Thread.sleep(400); // 400 Millisekunden Pause

            }
                System.out.println();
                System.out.println();
                
            
        System.out.println("Du legst jetzt dein 2er Schiff");
        System.out.println("Dein 4er Schiff wurde erfolgreich platziert");
        Thread.sleep(4000); // 4000 Millisekunden Pause
        System.out.println("Möchtest du dein Schiff horizontal (links/rechts) (0) oder vertikal (oben/unten) (1) platzieren? Überlege genau...");
        System.out.println();
        int richtung4 = scanner.nextInt();
        System.out.println();

        // Eingabe speichern und ausgeben
        if (richtung4 == 0) {
            System.out.println("Du hast horizontal gewählt.");
            Thread.sleep(800); // 800 Millisekunden Pause
            System.out.println("Möchtest du dein Schiff nach links (0) oder nach rechts (1) platzieren?");
            System.out.println();
        } else {
            System.out.println("Du hast vertikal gewählt.");
            Thread.sleep(800); // 800 Millisekunden Pause
            System.out.println("Möchtest du dein Schiff nach oben (0) oder nach unten (1) platzieren?");
            System.out.println();
        }
        int orientierung4 = scanner.nextInt();

        if (richtung4 == 0) {
            if (orientierung4 == 0) {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff horizontal nach links.");
            } else {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff horizontal nach rechts.");
            }
        } else {
            if (orientierung4 == 0) {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff vertikal nach oben.");
            } else {
                System.out.println();
                Thread.sleep(800); // 800 Millisekunden Pause
                System.out.println("Du legst dein Schiff vertikal nach unten.");
            }
        }

        // Frage den Benutzer nach der Position des ersten Schiffs (2er Schiff)
        System.out.println("Wo möchtest du dein viertes Schiff platzieren? Gebe die Zeile (y-Achse) (1-10) ein:");
        System.out.println();
        int zeile4 = scanner.nextInt() - 1;

        System.out.println();
        System.out.println("Gebe die Spalte (x-Achse) (1-10) ein:");
        System.out.println();
        int spalte4 = scanner.nextInt() - 1;

        // Schiff platzieren, falls gültige Eingabe
        if (zeile4 >= 0 && zeile4 < 10 && spalte4 >= 0 && spalte4 < 10) {
            if (richtung4 == 0) { // Horizontal
                if (orientierung4 == 0) { // Nach links
                    for (int i = 0; i < 2; i++) {
                        if (spalte4 - i >= 0) {
                            spielfeld[zeile4][spalte4 - i] = 'X';
                        }
                    }
                } else { // Nach rechts
                    for (int i = 0; i < 2; i++) {
                        if (spalte4 + i < 10) {
                            spielfeld[zeile4][spalte4 + i] = 'X';
                        }
                    }
                }
            } else { // Vertikal
                if (orientierung4 == 0) { // Nach oben
                    for (int i = 0; i < 2; i++) {
                        if (zeile4 - i >= 0) {
                            spielfeld[zeile4 - i][spalte4] = 'X';
                        }
                    }
                } else { // Nach unten
                    for (int i = 0; i < 2; i++) {
                        if (zeile4 + i < 10) {
                            spielfeld[zeile4 + i][spalte4] = 'X';
                        }
                    }
                }
            }
        } else {
            System.out.println("Ungültige Position. Bitte starte das Programm neu und versuche es erneut.");
        }

        // 4 Aktualisiertes Spielfeld ausgeben
        System.out.println();
        System.out.println(" 4 Aktualisiertes Spielfeld:");
        System.out.println();
        System.out.println("      1     2     3     4     5     6     7     8     9     10"); // 5 Leerzeichen zwischen den Zahlen
        for (int x5 = 0; x5 < 10; x5++) {
            System.out.print((x5 + 1) + "     "); // Zeilennummer ausgeben (y-Achse)
            for (int y5 = 0; y5 < 10; y5++) {
                if (spielfeld[x5][y5] == '~') {
                    System.out.print(ANSI_BLUE + spielfeld[x5][y5] + ANSI_RESET + "     ");
                } else if (spielfeld[x5][y5] == 'X') {
                    System.out.print(ANSI_RED + spielfeld[x5][y5] + ANSI_RESET + "     ");
                } else {
                    System.out.print(spielfeld[x5][y5] + "     ");
                }
            }
            System.out.println();
            System.out.println();
            System.out.println("Dein 2er Schiff wurde erfolgreich platziert");

            // Verzögerung nach jeder Zeile hinzufügen
               
            Thread.sleep(300); // 300 Millisekunden Pause
        }
            System.out.println();
            System.out.println();
      
            System.out.print("Du hast alle Schiffe platziert");
            Thread.sleep(2000); // 300 Millisekunden Pause
      
            System.out.println("Part 2 des Spiels ab dem 01.02.2025 für unschlagbare 4,99 verfügbar");
            
            
            scanner.close();
}
    }
        }
        
    