• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Gra papier-kamień-nożyczki

Object Storage Arubacloud
0 głosów
774 wizyt
pytanie zadane 15 października 2018 w JavaScript przez kameleon Użytkownik (590 p.)

Robię grę papier-kamień-nożyczki w JavaScript i natknąłem się na problem, ponieważ chcę zrobić zabezpieczenie (gdy nie wybierzemy kamienia, papieru, nożyczek to wyskakuje alert, abyśmy wybrali) za pomocą flagi, jednak nie chce mi działać. Według mnie jest dobrze zrobione pod względem logicznym, ale nie chce tak jak wspomniałem działać. Proszę o jakieś wskazówki, nie chcę gotowca ;)

const options = ['papier', 'kamień', 'nożyce'];
const paper = document.querySelector('img[data-option]');
const stone = document.querySelector('img[data-option="kamień"]');
const scissors = document.querySelector('img[data-option="nożyczki"]');
const play = document.querySelector(".start");
const aiChoice = document.querySelector('span[data-summary="ai-choice"');
let protectionChoice = false;

if (paper.classList.contains("active") || stone.classList.contains("active") || scissors.classList.contains("active")) {
    protectionChoice = true;
}

paper.addEventListener("click", () => {
    paper.classList.add('active');
    stone.classList.remove("active");
    scissors.classList.remove("active");
});
stone.addEventListener("click", () => {
    stone.classList.add("active");
    paper.classList.remove("active");
    scissors.classList.remove("active");

});
scissors.addEventListener("click", () => {
    scissors.classList.add("active");
    paper.classList.remove("active");
    stone.classList.remove("active");

})


play.addEventListener("click", () => {
    if (protectionChoice) {
        alert("wybierz dłoń");
    } else {
        const option = Math.round(Math.random() * (options.length - 1));

        aiChoice.textContent = options[option];

    }


})

 

1 odpowiedź

0 głosów
odpowiedź 15 października 2018 przez pablop76 VIP (123,120 p.)
Zastanów się, kiedy sprawdzany jest warunek z linijki 9
komentarz 17 października 2018 przez pablop76 VIP (123,120 p.)
Popraw spójność nazw (nożyce, nożyczki) i zmień drugi if na else if, bo w takiej formie (if if) to jest błąd, ponieważ ten drugi warunek się wykonuje niezależnie od pierwszego i z racji tego,że przy remisie się nie spełnia wyrzuca else, czyli WYGRAŁEŚ

Brak zabezpieczenia w przypadku gdy user nic nie wybrał i uruchomił grę.

Dobrze było by żeby po zaznaczeniu wyboru przez usera od razu pojawiała się nazwa w

Twój wybór:  ...

Jeżeli kod działa (po poprawkach powinien) daj go do oceny bo ja nie jestem specjalistą.

Moim zdaniem obiekty nie są potrzebne, a przypinanie nasłuchu do wszystkich obrazków również.

Powodzenia
komentarz 17 października 2018 przez kameleon Użytkownik (590 p.)
Ok.

Jeśli chodzi o flagi, to mogę takie zabezpieczenie zrobić właśnie nią? i właśnie czemu służą flagi, bo do zabezpieczeń to na pewno.

A czemu nie obiektami? chyba kod wydaje się czystszy
komentarz 17 października 2018 przez pablop76 VIP (123,120 p.)
Bardziej bym powiedział, że do sprawdzenia/ustawienia stanu obiektu.

A właściwości obiektów nie wykorzystujesz, to po co one są?

Ale tak jak napisałem daj kod do oceny.
komentarz 17 października 2018 przez kameleon Użytkownik (590 p.)
co to znaczy sprawdzenia/ustawienia stanu obiektu?

Tak, nie używałem, bo jeden obiekt źle napisałem tzn miałem przekazać do właściwości obiektu number a nie stringa, ale już w finalnej wersji jest wykorzystany obiekt.
komentarz 17 października 2018 przez pablop76 VIP (123,120 p.)
Kiedy portrzebujemy odróżnić od siebie dwie możliwosci np. tak i nie , istnieje i nie istnieje, właczony i wyłączny to w js mamy typ logiczny, który ma tylko dwie wartości true i false. Więc sprawdzamy ten stan lub ustawiamy ten stan.

Podobne pytania

0 głosów
1 odpowiedź 3,250 wizyt
pytanie zadane 6 czerwca 2020 w Python przez nowa Początkujący (450 p.)
0 głosów
1 odpowiedź 3,727 wizyt
pytanie zadane 22 września 2017 w C i C++ przez Geralt_z_Rivii Nowicjusz (240 p.)
0 głosów
0 odpowiedzi 753 wizyt

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...