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

question-closed przekazywanie zmiennej z funkcji do funkcji js

VPS Starter Arubacloud
0 głosów
1,254 wizyt
pytanie zadane 6 listopada 2018 w JavaScript przez olejniczakbydgoszcz Początkujący (290 p.)
zamknięte 8 listopada 2018 przez ScriptyChris
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
<div id="zadanie"> 
 <button onclick="start()"> zaczynamy </button>
 </div>
  <div id="pierwsza"> </div>
  <div id="dzialanie"> </div>
  <div id="druga"> </div> 
   <div id="odpinput"><input id="spr" type="text"></div>
     <div id="odpbutton"> <button onclick="sprawdzenie()"> sprawdzenie </button></div>
     <div id="wynikspr"> </div> 
</body>
<script> 
function start(){
    losowanie();
    setInterval (losowanie, 3000)}; 
function losowanie(){
 var x= Math.floor(Math.random()*6+4);
 var y= Math.floor(Math.random()*6+4);
 var wynik = x*y; 
 document.getElementById("pierwsza").innerHTML=x;
 document.getElementById("dzialanie").innerHTML="*";
 document.getElementById("druga").innerHTML=y;    
 }    
    
function sprawdzenie (){ 
var odpow = document.getElementById("spr").value; 
if (odpow == wynik){
document.getElementById("wynikspr").innerHTML="dobrze";
}else document.getElementById("wynikspr").innerHTML="zle";    
    }

    </script>
</html>

Proszę o pomoc jak przypisać zmienną var "wynik " z funkcji losowanie() do funkcji sprawdzenie ()

Próbowałem tak jak poniżej jednak nie wiem dlaczego zmienna wynik była "nadpisywana" podczas wywołania f2 

f1(){return wynik;}
function f2(){var wynik2 = f1();}

komentarz zamknięcia: Problem rozwiązany.
komentarz 6 listopada 2018 przez ScriptyChris Mędrzec (190,190 p.)
edycja 6 listopada 2018 przez ScriptyChris

W którym miejscu jest ta zmienna wynik?

Próbowałem tak jak poniżej jednak nie wiem dlaczego zmienna wynik była "nadpisywana" podczas wywołania f2 

f1(){return wynik;} 
function f2(){var wynik2 = f1();}

Możesz to pokazać na przykładzie kodu, który zamieściłeś? Nie wiem czym jest f1 ani f2 ani skąd bierze się zmienna wynik ani dokładnie co masz na myśli przez "nadpisywana".

Możesz utworzyć zmienną wynik jako "globalną", a całość zamknąć w IIFE na przykład (wtedy zmienna nie będzie globalna, ale nadal pozostanie dostępna w zasięgu Twoich funkcji).

komentarz 6 listopada 2018 przez olejniczakbydgoszcz Początkujący (290 p.)
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
<div id="zadanie"> 
 <button onclick="start()"> zaczynamy </button>
 </div>
  <div id="pierwsza"> </div>
  <div id="dzialanie"> </div>
  <div id="druga"> </div> 
   <div id="odpinput"><input id="spr" type="text"></div>
     <div id="odpbutton"> <button onclick="sprawdzenie()"> sprawdzenie </button></div>
     <div id="wynikspr"> </div> 
</body>
<script> 
function start(){
    losowanie();
    setInterval (losowanie, 3000)}; 
function losowanie(){
 var x= Math.floor(Math.random()*6+4);
 var y= Math.floor(Math.random()*6+4);
 var wynik = x*y; 
 document.getElementById("pierwsza").innerHTML=x;
 document.getElementById("dzialanie").innerHTML="*";
 document.getElementById("druga").innerHTML=y; 
    return wynik;
 }    
    
function sprawdzenie (){ 
    var wynik2 = losowanie();
var odpow = document.getElementById("spr").value; 
if (odpow == wynik2){
document.getElementById("wynikspr").innerHTML="dobrze";
}else document.getElementById("wynikspr").innerHTML="zle";    
    }

    </script>
</html>

po naciśnięciu   button "sprawdzenie" wywołuje się funkcja sprawdzenie() która zmienia zmienne x i y z pierwszej funkcji losowanie() nie wiem dlaczego  

komentarz 6 listopada 2018 przez Grzegorz :> Dyskutant (8,050 p.)

@olejniczakbydgoszcz, co to za linijka?
 

var <span style="text-decoration: underline;"><strong>wynik</strong></span> = x*y; 

 

komentarz 6 listopada 2018 przez olejniczakbydgoszcz Początkujący (290 p.)
to się samo nadpisało po naciśnięciu pogrubienia i podkreślenia w edytorze jak wrzucałem kod
komentarz 7 listopada 2018 przez ScriptyChris Mędrzec (190,190 p.)

Funkcja losowanie wołana jest zarówno przy starcie (gdy klika się w "zaczynamy") i gdy sprawdza się wynik - wtedy akurat porównujesz liczbę którą wpisał gracz z (niepotrzebnie) ponownie wylosowaną liczbą zamiast tej z początku tury. Zapisz sobie początkowo wylosowaną liczbę do zmiennej i przy sprawdzaniu porównuj z nią. Poza tym, dlaczego losowanie wykonuje się w interwale co 3 sekundy?

komentarz 7 listopada 2018 przez olejniczakbydgoszcz Początkujący (290 p.)
Już sobie poradziłem z zadaniem dziękuje za zainteresowanie naprawdę wiele jeszcze muszę się nauczyć
komentarz 7 listopada 2018 przez ScriptyChris Mędrzec (190,190 p.)
Skoro sobie poradziłeś, to miło będzie jeśli zamkniesz temat i podzielisz się rozwiązaniem - dla potomnych.

Podobne pytania

0 głosów
2 odpowiedzi 2,369 wizyt
0 głosów
1 odpowiedź 692 wizyt
pytanie zadane 16 listopada 2022 w PHP przez zbiku25 Gaduła (3,000 p.)
0 głosów
1 odpowiedź 115 wizyt
pytanie zadane 6 stycznia 2017 w Java przez Stami Gaduła (3,790 p.)

92,840 zapytań

141,781 odpowiedzi

320,856 komentarzy

62,172 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

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!

...