Hilfe bei Schleifen Problem!

09/20/2013 11:56 ~SheoGorath~#1
Hallo liebe Com :)

Ich hoffe mir kann hier jemand helfen :) Aus Langeweile hab ich in C++ eine Konsolenanwendung geschrieben wo das Javascript Spiel Cookie Clicker nachgestellt wird.

Den Code findet ihr im Spoiler:

SO in der if(cin ==1) ist eine Erkennung der linken Maustaste IN der Konsole wenn man dort klickt gibt es einen Cookie +1,so wenn man dann aber mit dem Drücken des Mausrads aus der Schleife sich entfernt und in den Shop geht mit if(Cin==2) um dort etwas zu kaufen UND DANACH wieder auf die 1 geht um Cookies zu clicken kommt er nicht zurück in die Schleife. Ich bin mit meinem C++ am ende und meine Kollegen auf der Arbeit ebenfalls.

Ich hoffe mir kann jemand helfen, ich hänge meine Kompilierte Exe mal mit in einen Anhang.

VT :[Only registered and activated users can see links. Click Here To Register...]

MfG Sheo
09/20/2013 13:22 ~SheoGorath~#2
Hey hey hey ganz ruhig ich habe nur etwas gefragt okay O.o ganz ruhig brauner ... und SO kompliziert ist das nicht. Und ach sag bloß als ob ich nich schon mehrere Debugger hab laufen lassen, es kommt kein Fehler oder sonstiges es geht so, aber ich weiß nicht warum das mit der Schleife nicht geht. Ich finde den Fehler nicht und ich habe mich jetz schon ganze 3 Stunden damit beschäftigt. Ich finde nichts DESWEGEN HOFFE ich ja auch auf Hilfe ....

€: Ausserdem habe ich ja kurz beschrieben worums geht da brauch man nicht ALLES zu lesen O.o und das sind ja nun wirklich nur Grundfunktionen ausser das mit der Maustaste
09/20/2013 13:24 Schlüsselbein#3
Quote:
Hey hey hey ganz ruhig ich habe nur etwas gefragt okay O.o ganz ruhig brauner ... und SO kompliziert ist das nicht.
Nein, kompliziert ist es nicht. Aber einfach den kompletten Quelltext reinhauen und dann auf Hilfe hoffen ist nunmal nicht. Versuche wenigstens, den Code auf den Fehler zu reduzieren, dann wird man dir schon eher helfen können.
Abgesehen davon ist es nicht gerade leicht, deinen Code zu lesen - überragender Einrückung sei dank.

Dann mach dich mal darüber schlau, was ein (guter) Debugger alles drauf hat. Mir kommts echt so vor, als hätten 80% hier keine Ahnung vom Debuggen.

Schonmal was von (conditional) Breakpoints, "steppen" usw gehört?

Falls du Visual Studio benutzt geb ich dir mal n kleinen Gheimtipp: F9, F10 und F11.
09/20/2013 13:32 ~SheoGorath~#4
VS kann ich hier nciht nutzen Dr.Kaiser, ich hasse das Prog.Als Entwicklungsumgebugn nutz ich Notepad++ mit GNU Compiler. Oder Codeblocks Portable. Nutze hier Borland mit dem Turbo Debugger. Und sonst OllyDbg ... wobei ich beides nicht gut kenne. Hab auch schon gegooglet. Und bin deswegen auf die Debugger gekommen.
09/20/2013 13:39 Schlüsselbein#5
Quote:
VS kann ich hier nciht nutzen Dr.Kaiser
Danke, Dr. Kaiser wird wahrscheinlich mein neuer Benutzertitel.

Und wo genau liegt das Problem mit den Debuggern? Bring C::B portable keinen mit? Du musst schon genauer werden, wo es jetzt genau hängt bei dir.
09/20/2013 13:52 ~SheoGorath~#6
Dr.Kaiser ist ein Programm für eien Reborn karte, der Rechner setzt sich zurück und lässt nichts in die Reg rein. Doch C::B hat einen aber der gibt mir keine Fehler aus.bzw. nichts was ich erkennen kann. Das Programm funktioniert ja. Aber nicht so wie ich es mir vorgestellt hatte. Man soll nicht nur beim ersten mal klciken können sondern auch wenn der Menüpunkt ein weiteres mal angeklcikt wird. Nur dort fleigt er wider zurück in das Menü OHNE das man eine Chance hat die Maustaste zu drücken.
09/20/2013 13:56 XxharCs#7
Deine Code Formatierung bzw. deine Code Einrückung, wie Schlüsselbein schon erwähnte, ist wirklich abartig und man erkennt nicht wirklich viel.

Was ich vielleicht so ca. gemerkt habe beim durchfliegen des Codes ist, deine do-while funktioniert solange weiter = 1 ist, da du aber durch die if-Anweisungen der Variable "weiter" einen neuen Wert zuweist(2), dann bist du raus aus der Schleife weil die Bedienung weiter==1 nicht mehr gilt.

Falls ich was übersehen habe dann sry aber bei so einer Einrückung kann man schlecht was erkennen wie schon gesagt.
09/20/2013 14:02 ~SheoGorath~#8
Ja hat mir Ende! grade auch schon gesagt in einer PN sry dafür, ich habe die Einrückung jetz neu gemacht ich hoffe man erkennt mehr. Mache grade einen Workshop und die andern müssen das vertsehen ^^ Der läuft seit 3 Tagen und habe alles untereinander programmiert.

So hab den Code überarbeitet

Ja, aber das ist die hauptschleife, die andere Schleife die man in Zeile 71 findet ist mein Problem. also beim if(Cin ==1) in Zeile 66.

Ich muss nachdem ich diese Schleife verlassen haben irgendwie wieder dort rein. Sonst geht das ganze so nicht auf.

Ich hätte ja gern Switch Case genommen nur dann funktioniert die Maustasten Erkennung nicht.
09/20/2013 14:13 Schlüsselbein#9
Quote:
Doch C::B hat einen aber der gibt mir keine Fehler aus.bzw. nichts was ich erkennen kann.
Dann nochmal für dich, da du Teile meiner Posts wohl einfach überliest, oder? Wie benutzt du den Debugger? Schonmal Breakpoints gesetzt und wirklich den Code Anweisung für Anweisung durchgegangen? Damit wirst du den Fehler finden.
09/20/2013 14:14 ~SheoGorath~#10
Ja habe ich, ich hatte voher eine andere Funktion anstatt den Mausklick, dort musste man 1 und dann Enter drücken, allerdings ohne Schleife. Werde das ganze einmal mit GDB Stück für Stück laufen lassen. Ich schaue nochmal genauer.
09/20/2013 14:26 Schlüsselbein#11
Dir fehlt es wohl echt an Eigeninitiative, oder?
Quote:
Ja habe ich
Gut, und was ist bei rausgekommen? Denn ich hab mir jetzt mal die Mühe gemacht, den Debugger anzuschmeissen und hab den Fehler prompt nach nichtmal 2 Minuten gefunden. Irgendwas machst du dann wohl doch falsch, oder?

Und deine Kollegen auf Arbeit scheinen ja auch echt Ahnung zu haben.

Mal n Schubser in die richtige Richtung: Schau dir die Variable Mouse an und wann diese verändert wird.

Oder benutz wie schon gesagt einen Debugger.
09/20/2013 17:27 ~SheoGorath~#12
Dann bin ich wohl auf beiden Augen blind ... Ja die haben auch alle keine Ahnung, weil ich denen beigebracht habe zu programmieren. Okay danke ...
09/20/2013 17:55 Schlüsselbein#13
Noch n Tipp (damit hättest du vielleicht auch den Fehler vermeiden können): Variablen immer so lokal wie möglich definieren - also meistens direkt vor der Benutzung.
09/20/2013 18:39 ~SheoGorath~#14
Hmm okay, mach ich das nächste mal, sry ^^ Habs halt nur so gelernt... Lasse es gleich selbst noch mal durch den Debugger laufen.

Ich wusste es doch ich bin Blind auf beiden Augen ._. Danke für den Anstupser ...