Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // hello, dear ctfer
- // here is some govnokod
- // but it is not necessary to see it
- // vuln is in server side
- const cards = document.querySelectorAll('.memory-card');
- let hasFlippedCard = false;
- let lockBoard = false;
- let firstCard, secondCard;
- let right = 0;
- function getInfo(img) {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', '?getInfo=' + img.id, false);
- xhr.send();
- if (xhr.status === 200) {
- var response = JSON.parse(xhr.response);
- if (response.error == "WASTED"){
- alert("Sorry, it is the end..) more than 3 errors.");
- location.reload();
- } else {
- if (response.flag != 0) alert(response.flag);
- console.log(response);
- img.src = response.card + '.jpg';
- document.getElementById("error").innerText = response.errors;
- document.getElementById("passes").innerText = response.passes;
- }
- }
- else {
- alert('Request failed. Returned status of ' + xhr.status);
- }
- }
- function sendAnswer() {
- var answer = '';
- cards.forEach(card => answer += card.children[0].src.split('.')[1].slice(-1) + ',');
- answer = answer.slice(0, -1);
- var xhr = new XMLHttpRequest();
- xhr.open('GET', '?answers=' + answer, false);
- xhr.send();
- if (xhr.status === 200) {
- var response = JSON.parse(xhr.response);
- if (response.error == "WASTED"){
- alert("WASTED, SOrry))");
- document.getElementById("error").innerText = response.errors;
- document.getElementById("passes").innerText = response.passes;
- initBoard();
- } else {
- if (response.flag != 0) alert(response.flag);
- console.log(response);
- document.getElementById("error").innerText = response.errors;
- document.getElementById("passes").innerText = response.passes;
- initBoard();
- }
- }
- else {
- alert('Request failed. Returned status of ' + xhr.status);
- }
- }
- function flipCard() {
- if (lockBoard) return;
- if (this === firstCard) return;
- var img = this.children[0];
- getInfo(img);
- this.classList.add('flip');
- if (!hasFlippedCard) {
- hasFlippedCard = true;
- firstCard = this;
- return;
- }
- secondCard = this;
- checkForMatch();
- }
- function checkForMatch() {
- let isMatch = firstCard.children[0].src == secondCard.children[0].src;
- isMatch ? disableCards() : disableCards();
- }
- function disableCards() {
- firstCard.removeEventListener('click', flipCard);
- secondCard.removeEventListener('click', flipCard);
- resetBoard();
- right += 2;
- if (right == 12){
- sendAnswer();
- }
- }
- function unflipCards() {
- lockBoard = true;
- setTimeout(() => {
- firstCard.classList.remove('flip');
- secondCard.classList.remove('flip');
- resetBoard();
- }, 1500);
- }
- function resetBoard() {
- [hasFlippedCard, lockBoard] = [false, false];
- [firstCard, secondCard] = [null, null];
- }
- function initBoard(){
- resetBoard();
- cards.forEach(card => card.classList.remove('flip'));
- cards.forEach(card => card.addEventListener('click', flipCard));
- right = 0;
- }
- cards.forEach(card => card.addEventListener('click', flipCard));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement