λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ΄νŽ™νŠΈ

ν€΄μ¦ˆ μ΄νŽ™νŠΈ 객관식 μ—¬λŸ¬ 문제 2

by Youcodein 2022. 8. 24.
728x90
λ°˜μ‘ν˜•

객관식 μ—¬λŸ¬λ¬Έμ œ

μžλ°”μŠ€ν¬λ¦½νŠΈ


    //λ¬Έμ œμ •λ³΄
    const quizInfo = [
        {
            answerType : "μ›Ήλ””μžμΈκΈ°λŠ₯사 2011λ…„ 04회",
            answerNum : "1",
            answerAsk : "λ””μžμΈμ˜ ν•©λͺ©μ μ„±μ— λŒ€ν•œ μ„€λͺ…μœΌλ‘œ μ˜³μ€ 것은?",
            answerChoice : [
                    "정해진 λ°”νƒ•μœΌλ‘œ μ΅œμƒμ˜ λ””μžμΈμ„ μ°½μΆœν•˜λŠ” 것을 λ§ν•œλ‹€.",
                    "λ””μžμΈμ„ ν•  λ•Œ λͺ©μ μ— λ§žλŠ” μˆ˜λ‹¨μ„ μ‚¬μš©ν•˜μ˜€λŠ”μ§€λ₯Ό λ§ν•œλ‹€.",
                    "보닀 μ‹€μš©μ μ΄κ³  μ‹¬λ―Έμ μœΌλ‘œ κ°œμ„ , λ°œμ „μ‹œν‚€λŠ” 것을 λ§ν•œλ‹€.",
                    "κ°œμ„±μ μΈ λ―Έμ˜μ‹μ„ μ°½μΆœν•΄λ‚΄λŠ” 것을 λ§ν•œλ‹€."
        ],
            answerResult : "λ””μžμΈμ„ ν•  λ•Œ λͺ©μ μ— λ§žλŠ” μˆ˜λ‹¨μ„ μ‚¬μš©ν•˜μ˜€λŠ”μ§€λ₯Ό λ§ν•œλ‹€.",
            answerEx : "λ””μžμΈμ„ ν•  λ•Œ λͺ©μ μ— λ§žλŠ” μˆ˜λ‹¨μ„ μ‚¬μš©ν•˜μ˜€λŠ”μ§€λ₯Ό λ§ν•œλ‹€."
        },
        {
            answerType : "μ›Ήλ””μžμΈκΈ°λŠ₯사 2011λ…„ 04회",
            answerNum : "2",
            answerAsk : "μ‹μš•μ„ μžκ·Ήν•˜λŠ” μƒ‰μƒμœΌλ‘œ μ˜³μ€ 것은?",
            answerChoice : [
                        "λΉ¨κ°•",
                        "청둝",
                        "보라",
                        "κ²€μ •" 
        ],
            answerResult : "ν…μŠ€νŠΈνƒ€μΌ λ””μžμΈ",
            answerEx : "뢉은색계열은 μ‹μš•μ„ μžκ·Ήν•˜λŠ” μƒ‰μž…λ‹ˆλ‹€."
        },
        {
            answerType : "μ›Ήλ””μžμΈκΈ°λŠ₯사 2011λ…„ 04회",
            answerNum : "3",
            answerAsk : "λ™μ‹œλŒ€λΉ„μ— ν•΄λ‹Ήν•˜μ§€ μ•ŠλŠ” 것은?",
            answerChoice : [
                        "λͺ…λ„λŒ€λΉ„",
                        "μƒ‰μƒλŒ€λΉ„",
                        "λ³΄μƒ‰λŒ€λΉ„",
                        "μœ μ‚¬λŒ€λΉ„" 
            ],
            answerResult : "좔상 ν˜•νƒœ",
            answerEx : "λ™μ‹œλŒ€λΉ„ : 2가지 μ΄μƒμ˜ 색을 λ™μ‹œμ— λ³Όλ•Œ μΌμ–΄λ‚˜λŠ” λŒ€λΉ„ν˜„μƒ / μƒ‰μƒλŒ€λΉ„, λͺ…λ„λŒ€λΉ„, μ±„λ„λŒ€λΉ„, λ³΄μƒ‰λŒ€λΉ„κ°€ 있음."
        },
        {
            answerType : "μ›Ήλ””μžμΈκΈ°λŠ₯사 2011λ…„ 04회",
            answerNum : "4",
            answerAsk : "λ‹€μŒ 쀑 μƒ‰μ˜ 3속성이 μ•„λ‹Œ 것은",
            answerChoice : [
                        "색상",
                        "λͺ…도",
                        "채도",
                        "λŒ€λΉ„"
            ],
            answerResult : "λŒ€λΉ„",
            answerEx : "μƒ‰μ˜ 3속성 : 색을 κ΅¬λ³„ν•˜λŠ” 데 ν•„μš”ν•œ 색상(H), λͺ…도(V), 채도(C)λ₯Ό μƒ‰μ˜ 3μš”μ†Œ λ˜λŠ” μƒ‰μ˜ 3속성이라고 ν•©λ‹ˆλ‹€. / 색상 :μœ μ±„μƒ‰μ„ λΆ„λ₯˜ν•  λ•Œ 각 색에 뢙인 λͺ…μΉ­ λ˜λŠ” 기호λ₯Ό κ·Έ μƒ‰μ˜ 색상이라고 함. / λͺ…도 : 물체의 밝고 μ–΄λ‘μš΄ 정도λ₯Ό 말함. 검은색 0, ν•˜μ–€μƒ‰ 10으둜 ν•˜κ³  κ·Έ 쀑간 11λ‹¨κ³„μ˜ νšŒμƒ‰ 단계λ₯Ό κ·Έλ ˆμ΄μŠ€μΌ€μΌμ΄λΌ ν•˜λ©° λͺ…λ„μ˜ κΈ°μ€€μ²™λ„ν˜Έ μ‚¬μš© 함. / 채도 : μƒ‰μ˜ μˆœλ„, μƒ‰μ˜ μ„ λͺ…ν•˜κ³  νƒν•œ 정도λ₯Ό 말함. μƒ‰μ˜ 포화도 , μ„ λͺ…도라고도 함."
        },
        {
            answerType : "μ›Ήλ””μžμΈκΈ°λŠ₯사 2011λ…„ 04회",
            answerNum : "5",
            answerAsk : "λ‹€μŒ 쀑 μ£Όμœ„μƒ‰μ˜ 영ν–₯으둜 였히렀 인접색에 κ°€κΉκ²Œ λŠκ»΄μ§€λŠ” ν˜„μƒμ„ μ˜λ―Έν•˜λŠ” 것은?",
            answerChoice : [
                        "동화 ν˜„μƒ",
                        "λͺ…μ‹œν˜„μƒ",
                        "μƒ‰μ˜ μˆ˜μΆ•μ„±",
                        "μ€‘λŸ‰ν˜„μƒ"
            ],
            answerResult : "동화 ν˜„μƒ",
            answerEx : "λ™ν™”ν˜„μƒμ€ 동λ₯˜μ˜ μ›λ¦¬λ‘œ κ°€μž₯ κ°€κΉŒμš΄ μƒ‰μ±„λΌλ¦¬μ˜ 배색은 친근감과 μ‘°ν™”λ₯Ό 느끼게 ν•©λ‹ˆλ‹€."
        }
    ];

        const quizQuestion = document.querySelector(".quiz__question");
        const quizSelects = document.querySelector(".quiz__selects");
        const quizType = document.querySelector(".quiz__type");
        const quizResult = document.querySelector(".quiz__answer .result");
        const quizConfirm = document.querySelector(".quiz__answer .confirm");
        const quizView = document.querySelector(".quiz__view"); //강아지


        let quizCount = 0;
        let quizScore = 0;
        //  문제 좜λ ₯
        const updateQuiz = (index) => {
            const questionTag = `
            <span class="number">${quizInfo[index].answerNum}</span>
            <div class="ask">${quizInfo[index].answerAsk}</div>
            `
            const choiceTag = `
                <label for="select1">
                    <input type="radio" id="select1" class="select" name="select" value="1">
                    <span class="choice">${quizInfo[index].answerChoice[0]}</span>
                </label>
                <label for="select2">
                    <input type="radio" id="select2" class="select" name="select" value="2">
                    <span class="choice">${quizInfo[index].answerChoice[1]}</span>
                </label>
                <label for="select3">
                    <input type="radio" id="select3" class="select" name="select" value="3">
                    <span class="choice">${quizInfo[index].answerChoice[2]}</span>
                </label>
                <label for="select4">
                    <input type="radio" id="select4" class="select" name="select" value="4">
                    <span class="choice">${quizInfo[index].answerChoice[3]}</span>
                </label>
            `;
            //문제 좜λ ₯
            quizType.innerHTML = quizInfo[index].answerType;    //문제 μœ ν˜•>
            quizQuestion.innerHTML = questionTag;   //번호, 질문>
            quizSelects.innerHTML = choiceTag;      //객관식
            quizResult.innerHTML = quizInfo[index].answerEx //ν•΄μ„€
            
            const quizChoice = quizSelects.querySelectorAll(".choice");
            for(let i=0; i<quizChoice.length; i++){
                quizChoice[i].setAttribute("onclick", "choiceSelected(this)")
            }

            //문제, ν•΄μ„€ 숨기기
            quizResult.style.display = "none"
            quizConfirm.style.display = "none"
        }
        updateQuiz(quizCount);

        const choiceSelected = (answer) => {
            let userAnswer = answer.textContent;    //μ‚¬μš©μžκ°€ μ²΄ν¬ν•œ μ •λ‹΅
            let currentAnswer = quizInfo[quizCount].answerResult; //문제의 μ •λ‹΅

            if(userAnswer == currentAnswer){
                console.log("μ •λ‹΅")
                quizView.classList.add("like");
                quizScore++;
            } else {
                console.log("μ˜€λ‹΅")
                quizView.classList.add("dislike");
                quizResult.style.display = "block"
            }

            quizConfirm.style.display = "block"
        }


        //μ •λ‹΅ 확인 λ²„νŠΌ
        const answerQuiz = () => {
            quizCount++;
            updateQuiz(quizCount);
            quizView.classList.remove("like", "dislike")

            //λ§ˆμ§€λ§‰ 문제
            if(quizInfo.length-1 == quizCount) {
                quizConfirm.textContent = `총 ${quizInfo.length} 문제 쀑에 ${quizScore} 문제λ₯Ό λ§žμΆ”μ—ˆμŠ΅λ‹ˆλ‹€.`
            }
        }

        quizConfirm.addEventListener("click", answerQuiz);


728x90
λ°˜μ‘ν˜•

λŒ“κΈ€