2016-06-24 18 views
0

Ok, also habe ich dieses Towers of Hanoi Programm ... Sie geben die Anzahl der Disks ein und es gibt die Anzahl der Züge aus, die es dauern würde, um es zu vervollständigen. Aus irgendeinem Grund bekomme ich keine Ausgabe. Ich weiß, es ist wahrscheinlich etwas klein, aber jede Hilfe wäre willkommen.Probleme beim Erhalten einer Ausgabe

var count = 0; 
 
var numberOfPlates = document.getElementById("numPlates").value; 
 
moveDisk(numberOfPlates, "A", "C", "B"); 
 

 
function moveDisk(N, A, C, B) { 
 

 
    if (N == 1) 
 
    count = count + 1; 
 

 
    if (N > 1) { 
 
    moveDisk(N - 1, A, B, C); 
 
    count = count + 1; 
 
    moveDisk(N - 1, B, C, A); 
 
    } 
 
} 
 
    document.getElementById("moveOutput").innerHTML = "Move Count = " + count;
<h1>Towers of Hanoi</h1> Enter the number of discs: 
 
<input type="textbox" id="numPlates" /> 
 
<input type="button" id="Move" value="Move Disks" onClick="moveDisk();" /> 
 
<p id="moveOutput"></p>

+1

Sie Ihre Funktion aufrufen, aber keine Parameter 'onClick =" moveDisk() übergeben; ' – j08691

+0

Ihre Ausgangsleitung außerhalb der zu sein scheint Funktion ... – epascarello

Antwort

0

Wie kommentiert oben, können Sie Ihre Funktion ohne Parameter auf Tastenklick aufrufen. Der schnellste Weg, um dies zu beheben, ist, Ihren gesamten Code in eine andere Funktion (z. B. startCaluclation()), die keine Parameter, sondern sammelt nur die Eingabe und läuft moveDisk, dann setzen Sie den Namen dieser Funktion im onClick Ereignis.

+0

ok ich sehe, was dein Sprichwort ... danke – Natedizzy

0

sollte wie folgt aussehen dann ...

function moveDisks() { 
 
    var count = 0; 
 
    var numberOfPlates = document.getElementById("numPlates").value; 
 
    calculation(numberOfPlates, "A", "C", "B"); 
 

 
    function calculation(N, A, C, B) { 
 

 
    if (N == 1) 
 
     count = count + 1; 
 

 
    if (N > 1) { 
 
     calculation(N - 1, A, B, C); 
 
     count = count + 1; 
 
     calculation(N - 1, B, C, A); 
 
    } 
 
    } 
 
    document.getElementById("moveOutput").innerHTML = "Move Count = " + count; 
 
}
<h1>Towers of Hanoi</h1> Enter the number of discs: 
 
<input type="textbox" id="numPlates" /> 
 
<input type="button" id="Move" value="Move Disks" onClick="moveDisks();" /> 
 
<p id="moveOutput"></p>

+0

Bitte fügen Sie eine Erklärung, warum dieser Code hilft dem OP. Dies wird dazu beitragen, eine Antwort geben zukünftige Zuschauer können von lernen. Siehe [Antwort] für weitere Informationen. –

Verwandte Themen