• 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,148 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,230 wizyt
0 głosów
1 odpowiedź 463 wizyt
pytanie zadane 16 listopada 2022 w PHP przez zbiku25 Bywalec (2,940 p.)
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 6 stycznia 2017 w Java przez Stami Gaduła (3,790 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...