<html>

<head>
    <title>JavaScript</title>
    <style>
        .letter {
            display: inline-block;
            padding: 5px;
            border: 1px solid #ddd;
            border-radius: 15px;
            margin-left: 10px;
            cursor: pointer;
            font-size: 1.5em;
        }
        
        .letter2 {
            display: inline-block;
            padding: 5px;
            margin-left: 10px;
            font-size: 3em;
        }
        
        .done {
            cursor: default;
            color: #ddd;
            border: 1px solid white;
        }
        button{
            background-color: red;
            width:200px;
            text-align: center;
            padding:20px;
            font-size: 2em;
            color:white;
        }
        .message{
            font-size: 2.5em;
            margin-top:20px;
            font-family: cursive;
        }
    </style>
</head>

<body>
    <div class="output1"></div>
    <div class="output2"></div>
    <div class="message"></div>
    <button>Start</button>
    <script>
        //const myWords = ["javascript", "course", "laurence"];
        const myWords = ["aa", "bb", "cc"];
        let player = {};
        const message = document.querySelector(".message");
        const output1 = document.querySelector(".output1");
        const output2 = document.querySelector(".output2");
        const btn = document.querySelector("button");
        btn.addEventListener("click", function () {
            output1.innerHTML = "";
            output2.innerHTML = "";
            if (myWords.length > 0) {
                btn.style.display = "none";
                myWords.sort(function () {
                    return .5 - Math.random();
                });
                let theWord = myWords.shift();
                player.solution = theWord.split("");
                buildBoard();
            }
            else {
                message.style.color = "black";
                message.innerHTML = ("no more words");
            }
        })

        function buildBoard() {
            player.solution.forEach(function (letter) {
                let div = document.createElement("div");
                div.classList.add("letter2");
                div.innerText = "_";
                div.myLetter = letter;
                output2.appendChild(div);
            })
            let solutionLetter = document.querySelectorAll(".letter2");
            for (let x = 0; x < 26; x++) {
                let temp = String.fromCharCode(65 + x);
                let div = document.createElement("div");
                div.classList.add("letter");
                div.myLetter = temp;
                let handler = function (e) {
                    div.removeEventListener("click", handler);
                    div.classList.add("done");
                    let counter = 0;
                    let guess = 0;
                    let mes ;
                    solutionLetter.forEach(function (letter) {
                        if (letter.innerHTML != "_") {
                            counter++;
                        }
                        if (letter.myLetter.toUpperCase() === temp) {
                            letter.innerHTML = temp;
                            guess++;
                        }
                    })
                    if (guess > 0) {
                    let mul = guess > 1 ? "times" : "time";
                    mes = "You found " +temp + " letter " + guess + " " + mul;
                    message.style.color = "green";
                    }else{
                    message.style.color = "red";
                    mes = "Not found";
                    }
                    let letterLeft = solutionLetter.length - (guess + counter);
                    message.innerHTML = mes + "<br>" + letterLeft + " letters left";
                    if (letterLeft < 1) {
                        btn.style.display = "block";
                    }
                }
                div.addEventListener("click", handler);
                div.innerHTML = temp;
                output1.appendChild(div);
            }
        }
    </script>
</body>

</html>