inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

웹 게임을 만들며 배우는 자바스크립트

게임 초기화

다른 방식으로 해봤는데 flipped 구현이 안돼요 ㅠㅠ

175

pos7271

작성한 질문수 19

0

const cardList = document.querySelectorAll('.card');
const cardBack = document.querySelectorAll('.card-back');
const new_candi = ['red''red''orange''orange''yellow''yellow''pink''pink''blue''blue''black''black'];
let color_candi = new_candi.slice();
let color = [];
let clickflag = true;
let click_card = [];
let right_card = [];
let start_date;
let end_date;

function shuffle () {
    for (let i =0color_candi.length > 0i ++) {
       color = color.concat(color_candi.splice(Math.floor(Math.random() * color_candi.length), 1));
    }
}

function cardSetting() {
    clickflag = false;
    for (let i =0i < 12i ++) {
        cardBack[i].style.backgroundColor = color[i];
    }

    for (const card of cardList) {
        card.addEventListener('click'function(){
            if(clickflag && !right_card.includes(card)) {
            card.classList.toggle('flipped');
            click_card.push(card);
            if (click_card.length === 2) {
                if (click_card[0].querySelector('.card-back').style.backgroundColor === click_card[1].querySelector('.card-back').style.backgroundColor) {
                    right_card.push(click_card[0]);
                    right_card.push(click_card[1]);
                    click_card = [];
                    if (right_card.length === 12) {
                        end_date = new Date().valueOf();
                        swal("성공입니다!", + ((end_date - start_date) / 1000) + "초 걸렸습니다.") ;
                        color_candi = new_candi.slice();
                        color = [];
                        right_card = [];
                        start_date = null;
                        end_date = null;
                        console.log(new_candicolorright_cardstart_dateend_dateclick_card);
                        shuffle();
                        cardSetting();
                    }
                } else { //두 카드의 색상이 다르면
                    clickflag = false;
                    setTimeout(function() {
                        click_card[0].classList.remove('flipped');
                        click_card[1].classList.remove('flipped');
                        clickflag = true;
                        click_card = [];
                    }, 1000);
            }
          }
        }
      });
    };

    cardList.forEach(function (cardindex) {
        setTimeout(function() {
            card.classList.add('flipped');
        }, 1000 + 100 * index);
    });

    setTimeout(function() {
        cardList.forEach(function (card) {
            card.classList.remove('flipped');
        });
        clickflag = true;
        start_date = new Date().valueOf();
        console.log(start_date);
    }, 5000);
}

shuffle();
cardSetting();

javascript

답변 1

0

pos7271

다 정상적으로 작동되는데

게임이 끝나고 리셋될때 모든 카드가 차례대로 뒤집어지는 부분이 작동이 안됩니다 ,, card 클래스에 flipped 클래스를 추가하는 

    cardList.forEach(function (cardindex) {
        setTimeout(function() {
            card.classList.add('flipped');
        }, 1000 + 100 * index);
    });
이부분이 문제인것같습니다 ㅠ
혼자 해보려니 너무 어렵네요 ,,

iput 입력글자 제한에러...

0

227

0

리팩토링 관련 질문입니다. (자스스톤)

0

276

1

카드 짝맞추기 react-native

0

340

0

필터 메소드 관련 질문입니다.

0

339

1

가위바위보 게임 질문드립니다~

0

204

1

자바스크립트 기초에 관해서 질문있습니다.

0

208

1

질문입니다.

1

359

1

이벤트 리스너 안에서 동작 질문드립니다.

0

325

2

질문드립니다.

0

190

0

안녕하세요 깊은 복사 부분에서 질문 있습니다.

0

245

1

document.createElement('')함수에서

0

249

2

안녕하세요 클로저 부분에서 질문 있습니다.

0

280

1

안녕하세요 제로초님

0

739

1

끝말잇기 화면에 출력 반복문을 이용해서 횟수 제한

0

245

1

안녕하세요 제로초님 질문있습니다

0

317

1

안녕하세요 강의 정말 잘시청하고있습니다.

0

277

3

?

0

152

1

틱택토 게임에서 게임이 끝나고

0

567

1

9 곱하는게 이해가 안 되요~

0

174

1

지뢰찾기 에러잡아내기에서 질문있습니다!

0

459

4

지뢰찾기 에러 관련 질문!

0

484

3

리팩토링에 관한 질문입니다.

0

244

2

Array/Object spread

0

204

1

지뢰찾기게임에서 Math.random() 질문

0

224

1