Javascript 责任无处不在

Javascript 责任无处不在,javascript,function,loops,Javascript,Function,Loops,现在状态在CSS类中,您获取哪个是 第一个,哪一个是第二个,看它,但你正在做它 复杂的;这是我要做的 var choices=[]//玩家选择的字母列表 函数isCorrect(){ return choices.length==2&choices[0]

现在状态在CSS类中,您获取哪个是 第一个,哪一个是第二个,看它,但你正在做它 复杂的;这是我要做的


var choices=[]//玩家选择的字母列表
函数isCorrect(){
return choices.length==2&choices[0]
然后,我将注册一个使用
select
将值添加到选项中,然后调用
isCorrect
以了解是否 它应该更新UI和状态(调用
清除
并从板上删除字母)或不更新


好处:您可以比较javascript中的许多值,在这种情况下,您应该尝试
“a”<“b”
,看看会发生什么

据我所知,您的代码似乎过于复杂 实现这让我觉得我可能误解了目标和游戏逻辑。如果是这种情况,以下简化可能不合适

基本上,我认为您可以减少大部分代码

//第一个字母应该始终是?如果是这样,我们可以设置lastSelected=(字符码64)。
var lastSelected=String.fromCharCode(64),abecedary=[“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”、“J”、“K”、“L”、“M”、“N”、“O”、“P”、“Q”、“R”、“S”、“T”、“U”、“V”、“W”、“X”、“Y”、“Z”];
//随机地把字母洗乱
函数洗牌(arr){
var result=arr.sort(函数(){
返回0.5-Math.random();
});
返回结果;
}
功能检查顺序(e){
var s=this.textContent;
如果((s.charCodeAt(0)-1)!=lastSelected.charCodeAt(0)){
这个.classList.add(“err”);
}否则{
此.classList.remove(“err”);
这个.classList.add(“正确”);
最后选择=s;
}
}
洗牌(初步);
var l,board=document.getElementById(“board”);

对于(i=0;i)您的注释(代码)经过一段时间后,你会倾向于不再啰嗦。因此,遵循你的逻辑可能有点困难。我建议插入更多的代码注释,如果可能的话,在代码注释中解释你的心理逻辑,以获得这方面的帮助。这将帮助你。你好,你给了我答案。我必须拿出事件侦听器。对吗我的代码非常凌乱,有很多添加和删除事件侦听器的功能。但是它可以正常工作,我现在也能理解我的代码。不过,我会让它变得更好、更简单。而且,我喜欢不做选择的想法,所以我会更多地接触我的代码!!但这就是我想要的,让我自己做点什么为了让我理解,我一直在寻找答案:我需要删除事件侦听器!检查游戏
    // First I create the array with the abecedary letters
var abecedary = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];


// Second, I use this function to shuffle the letters randomly
function shuffleAbecedary() {
    var result;
    result = abecedary.sort(function () {
        return 0.5 - Math.random();
    });
    return result;
}

//From this function i got on the internet i get the position on the letters on the alphabet (like 1st, 2nd...)
function alphabetPosition(text) {
    var result = "";
    for (var i = 0; i < text.length; i++) {
        var code = text.toUpperCase().charCodeAt(i)
        if (code > 64 && code < 91) result += (code - 64) + " ";
    }

    return result.slice(0, result.length - 1);
}

// This function prints the letter in a DIV with a class and a dataset value that I will use later on
function lettersPrint() {
    var gameBoard = document.querySelector("#gameboard");
    var shuffledLetters = shuffleAbecedary();
    gameBoard.innerHTML = "";

    shuffledLetters.forEach(function (element) {
        var letter = document.createElement("div");
        letter.innerHTML = "<div class='letter' data-valor= " + element + ">" +
            "<div class='letter_content'>" +
            element +
            "</div>" +
            "</div>";
        //I put all of them inside the gameBoard ID
        gameBoard.appendChild(letter);
    });

}

function firstToSelect() {
    var firstSelected = document.querySelectorAll(".firstLetterSelected:not(.correct)");

    if (firstSelected.length > 0) {
        return
    }

    this.classList.add("selected");
    this.classList.add("firstLetterSelected");

    document.querySelectorAll(".letter:not(.selected)").forEach(function (element) {
        element.addEventListener("click", secondToSelect);
    });
}


function secondToSelect() {
    var firstSelected = document.querySelectorAll(".firstLetterSelected:not(.correct)");
    var secondSelected = document.querySelectorAll(".secondLetterSelected:not(.correct)");

    if (secondSelected.length > 0) {
        return
    }

    this.classList.add("selected");
    this.classList.add("secondLetterSelected");

    var lettersToCompare = firstSelected + secondSelected;


    compare(lettersToCompare);
}

function compare(lettersToCompare) {
    var firstLetter = document.querySelectorAll(".firstLetterSelected:not(.correct)");
    var secondLetter = document.querySelectorAll(".secondLetterSelected:not(.correct)");
    var firstLetterToCompare = alphabetPosition(firstLetter[0].dataset.valor);
    var secondLetterToCompare = alphabetPosition(secondLetter[0].dataset.valor);

    var lettersToCompare = firstLetterToCompare + "," + secondLetterToCompare;

    var theLetters = document.querySelectorAll(".selected:not(.correct)")
    var letsCompare = lettersToCompare.split(",");

    console.log(letsCompare[0]);
    console.log(letsCompare[1]);

    if (letsCompare[0] == letsCompare[1] - 1) {
        console.log("You are right!");
        correct(theLetters);

    } else {
        console.log("Opps you are not right!");
        error(theLetters);
    }
}

function correct(theLetters) {
    theLetters.forEach(function (element) {
        element.classList.add("correct");
    });
}

function error(theLetters) {


    //    theLetters.forEach(function (element) {
    //        element.classList.add("error");
    //
    //        setTimeout(
    //            function () {
    //                theLetters.forEach(function (element) {
    //                    element.classList.remove("selected");
    //                    element.classList.remove("error");
    //                });
    //            }, 1000);
    //    });
}

lettersPrint();
document.querySelectorAll(".letter").forEach(function (element) {
    element.addEventListener("click", firstToSelect);
});