Ein Programm zu debuggen erfordert doch erstmal, dass es überhaupt existiert. Wenn dein Code nicht compiliert werden kann ist das wohl nicht der Fall.
Ich bin mir unsicher, ob ich jetzt traurig, gequält, belustigt, entsetzt, oder doch alles zusammen sein sollte.
Aber das hat ja wohl nicht mehr viel mit C++ zu tun.
[IRONIE]Dass der Code compiliert wird.[/IRONIE]
An der Stelle würde ich dir Google ans Herz legen, jedoch kann ich dir versichern, dass dir die beiden Methoden nicht weiterhelfen werden (wieso auch?!).
Kannst du mir mal erklären, wieso du da überhaupt mit Labels und goto arbeitest?
Dein Code macht doch sowieso nichts anderes als das:
kugel = !weiche1;
kugel = !weiche2;
kugel = !weiche3;
kugel = !weiche4;
Zumal die goto's völlig redundant sind, da nach dem Ende vom if-Block sowieso immer zu der Stelle gesprungen wird ist es auch in der Implementierung völlig egal, wie du Weiche1/2/3 setzt, da das Ergebnis nur von Weiche4 abhängt.
Wieso du da double's benutzt ist mir auch völlig unverständlich.