Napisany przez: lucwebdesigntom 5.04.2019, 23:16:07
Witam
Nie moge zrozumiec dlaczego instrukcja if nie dziala prawidlowo w tym ponizszym kodzie.
Na poczatku zadeklarowalem zmienna
var oneVisible = false;
i juz na samym poczatku instrukcji
if(oneVisible == false)
powinna przypisac zmiennej
var oneVisible = true;
i sie zaczymac i sprawdzic instruckje poprawnie i za drugim razem powinno przejsce do
else[b] i zwiekszyc licznik o jeden :
[b]$('.score').html('Turn counter: '+turnCounter);
lecz niestety wykonanie tej instrukcji zwieksza mi licznik na dwa.
Z tego wynika ze ta instrukcja nie dziala.
Prosilbym o podpowiedzi cos jest nie tak)
Kod
var oneVisible = false;
var turnCounter = 0;
var visible_nr;
function revealCard(nr)
{
var opacityValue = $('#c'+nr).css('opacity');
var obraz = "url(img/" + cards[nr] + ")";
$('#c'+nr).css('background-image', obraz);
$('#c'+nr).addClass('cardA');
$('#c'+nr).removeClass('card');
if(oneVisible == false)
{
oneVisible = true;
alert('one');}
else
{
turnCounter++;
$('.score').html('Turn counter: '+turnCounter);
oneVisible = false;
alert('two');}
}
Napisany przez: gitbejbe 6.04.2019, 20:01:19
Cytat
i juz na samym poczatku instrukcji
if(oneVisible == false)
powinna przypisac zmiennej
var oneVisible = true;
no i przypisuje.
Cytat
i sie ZACZYMAC
serio ?!
Cytat
i sie zaczymac i sprawdzic instruckje poprawnie i za drugim razem powinno przejsce do
no i przechodzi. Wklej jak wywołujesz funkcję, oraz czy gdzieś dalej manipulujesz zmienną turnCounter.
Napisany przez: lucwebdesigntom 6.04.2019, 23:57:09
Dzieki za odpowiedz
Tutaj jest caly kod funkcji:
Kod
var cards = ["ciri.png","geralt.png","jaskier.png","jaskier.png","iorweth.png","triss.png","geralt.png","yen.png","ciri.png","triss.png","yen.png","iorweth.png"];
var c0 = document.getElementById("c0");
var c1 = document.getElementById("c1");
var c2 = document.getElementById("c2");
var c3 = document.getElementById("c3");
var c4 = document.getElementById("c4");
var c5 = document.getElementById("c5");
var c6 = document.getElementById("c6");
var c7 = document.getElementById("c7");
var c8 = document.getElementById("c8");
var c9 = document.getElementById("c9");
var c10 = document.getElementById("c10");
var c11 = document.getElementById("c11");
c0.addEventListener("click", function() {revealCard(0); });
c1.addEventListener("click", function() {revealCard(1); });
c2.addEventListener("click", function() {revealCard(2); });
c3.addEventListener("click", function() {revealCard(3); });
c4.addEventListener("click", function() {revealCard(4); });
c5.addEventListener("click", function() {revealCard(5); });
c6.addEventListener("click", function() {revealCard(6); });
c7.addEventListener("click", function() {revealCard(7); });
c8.addEventListener("click", function() {revealCard(8); });
c9.addEventListener("click", function() {revealCard(9); });
c10.addEventListener("click", function() {revealCard(10); });
c11.addEventListener("click", function() {revealCard(11); });
var oneVisible = false;
var turnCounter = 0;
var visible_nr;
function revealCard(nr)
{
var opacityValue = $('#c'+nr).css('opacity');
var obraz = "url(img/" + cards[nr] + ")";
$('#c'+nr).css('background-image', obraz);
$('#c'+nr).addClass('cardA');
$('#c'+nr).removeClass('card');
if(oneVisible == false)
{
oneVisible = true;
alert('jeden');}
else
{
turnCounter++; $('.score').html('Turn counter: '+turnCounter);
oneVisible = false;
alert('dwa');}
}
Gra nazywa sie odnalezienie 2 takich samych obrazkow z kart.
Kod dziala na zasadzie odkrywaniu kart. Jak sie odkryje 2 karty to powinnien sie licznik zwiekszyc o 1, natomiast w moim przypadku licznika zwieksza sie po odkryciu 1 karty i kolejnej.... licznik powinien sie zwiekszac o jeden po kazdym odkryciu 2 kart, 4 kart, 6 kart itd
Dzieki za podpowiedz
Napisany przez: gitbejbe 7.04.2019, 18:23:40
o matko boska.... dobrze że tylko 12 kart żeś nawymyślał z tymi getElementById i addEventListener
<http://december.com/html/4/element/div.html class="card" data-id="0"></http://december.com/html/4/element/div.html>
<http://december.com/html/4/element/div.html class="card" data-id="1"></http://december.com/html/4/element/div.html>
<http://december.com/html/4/element/div.html class="card" data-id="2"></http://december.com/html/4/element/div.html>
// itd
<http://december.com/html/4/element/script.html>
$(function() {
var turnCounter = 0;
var cards = ["ciri.png","geralt.png","jaskier.png","jaskier.png","iorweth.png","triss.png","geralt.png","yen.png","ciri.png","triss.png","yen.png","iorweth.png"];
$('.card').on('click', function()
{
var id = $(this).data('id');
var opacityValue = $(this).css('opacity');
var obraz = "url(img/" + cards[id] + ")";
if($(this).hasClass('clicked')) {
console.log('nie zwiekszam turnCounter bo ta karta została już odkryta');
}
else {
$(this).addClass('clicked');
turnCounter++;
}
if(turnCounter % 2 == 0)){
alert('no i masz co 2 karty');
}
});
});
</http://december.com/html/4/element/script.html>
Napisany przez: lucwebdesigntom 8.04.2019, 20:06:47
Dzieki za pomoc. Juz dokonczylem sobie ta gierke:)