PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pennergame Flaschensammelbot



Cystasy
21.05.2015, 20:34
Hey,
Ich habe mich jetzt mal dazu entschieden euch zu zeigen was man so alles mit Javascript lösen kann, da doch immer wieder Personen denken das man nichts gescheites mit Javascript anstellen kann. Und was ist da besser als Beispiel als ein Browsergame Bot? Na? Na? Okay.. ich gebe zu da gibts sicher noch einiges geileres (3D Games wie Doom o.ä) ;)Aber ein Browsergame Bot ist doch auch ganz Nett.. zumindestens als Proof of Concept damit die Neulinge in Sachen Javascript mal sehen können wie man sowas lösen kann. Der Bot ist für das Browsergame Pennergame für den Server Köln (lässt sich easy auf andere umscripten).
Es gibt für das Requesten sicher noch schönere Lösungen, aber da hätte man Umwege gehen müssen (wegen den Post-Requests).

Bild der GUI:
http://i.imgur.com/8gY9gMy.png


Die Dev Settings kann man dann ja noch beliebig weglassen / verstecken.. zum entwickeln ist es aber besser sie drin zu lassen zum experimentieren ;)

Erklärung der GUI:

ID / PW: Benutzername & Password um sich einzuloggen. Die Daten werden hier an keinen Server außer den Penngergame Server geschickt um sich einzuloggen. Es handelt sich hier nicht um ein Phishing Versuch o.ä von mir. Es wird lediglich benötigt damit der Bot funktioniert. Wenn es euch zu unsicher ist könnt ihr euch auch einfach im Browser auf der normalen Penngergame Seite einloggen und danach den Bot aufrufen - eure Pennergame Cookies funktionieren auch im Bot.

Pfandsammeln Start / Stop: Sammelt 1x eine bestimmte Zeit Pfandflaschen so wie in den Dev Settings unter "Zeit" eingestellt (Beispiel: 10 Minuten, 30 Minuten etc). Stop = Stoppt das Pfandsammeln.

Pfandflaschenbot Starten / Stoppen: Sammelt in einer Endlosschleife immer wieder 10 Minuten lang Pfandflaschen, leert den Einkaufswagen und beginnt erneut. Dies läuft solange bis ihr das Browserfenster schließt oder ihr den Bot stoppt.


Download: http://uploaded.net/file/nd1zbpht

Virenscan wirds wohl nicht benötigen schätze ich, ist nur eine Javascript und ne HTML Datei (ohne Verschlüsslung, Obfuscate usw).
Ich habe jetzt nur das Flaschensammeln als Funktion eingebaut, man kann aber Theoretisch jede Funktion die das Pennergame (oder andere Browsergames auf Basis von HTML) besitzt einbauen und automatisieren.

Bei Fragen oder Anregungen einfach hier im Thread fragen :pirate:

grüße

gORDon_vdLg
21.05.2015, 20:46
Also früher (2009?) gabs da n Capcha, ist das nicht mehr der Fall?

Cystasy
21.05.2015, 20:49
Also früher (2009?) gabs da n Capcha, ist das nicht mehr der Fall?

Also ich hab bisher keins endecken können, lasse den Bot jetzt schon einige Stunden laufen & es gab bisher kein Captcha.
Erinnere mich auch dran das es eins damals gab.. bisher hab ich aber keins gefunden^^
Denke mal das es vielleicht abgeschafft wurde.

gORDon_vdLg
21.05.2015, 21:04
Wie praktisch :D

jarbukk
22.05.2015, 16:02
spielen das überhauot noch leute einzeln ? du hattest damals schon keine chance gegen clans , ich griff einmal einen an , der in einem clan war , dann hat sein ganzer clan meinen penner totgefi*** und dann habe ich mir gedacht , was ein schwachsinns spiel mit schwachsinns spieler.... so w0rd....

gORDon_vdLg
22.05.2015, 16:13
Ist das nicht in jedem Browsergame so?

fegoko
22.05.2015, 17:37
Zockt man 2k15 echt noch Browsergames?

Javascript ist mächtiger als man denkt, habe damit in gApps Scripts in der Firma unser ganzes Reporting automatisiert ( mit Pdfs verschicken, Excel files im Netzwerkserver ablegen umwandlung, Automatischem updaten. ). Außerdem arbeite ich gerade daran viele Email tasks zu automatisieren und natürlich Aufgaben bei codewars.com

Cystasy
22.05.2015, 19:47
@jarbukk (https://free-hack.com/member.php?78039-jarbukk)
Schau dir mal Games wie Clash of Clans, Die Siedler, usw usf an.. das sind alles Games die ähnlich aufgebaut sind, und wo du das gleiche auftritt.
Spieler schließen sich zusammen, und kämpfen & spielen gemeinsam. Das ist ja gerade Ziel einer Bande / Clan.. oder nicht? Zusammenhalten & gegenseitig helfen? Gemeinsam Stärker sein?
Das ist Ziel eines Clans / Zusammenschluss aus mehreren Personen. Diese Art von spielen sind nicht wirklich darauf ausgelegt sie alleine zu spielen.

@fegoko (https://free-hack.com/member.php?78318-fegoko)
Also ich zock keine Browsergames mehr, für mich stellte das ganze hier nur eine kleine "Nice to have" Sache dar.
Ich habe vor einiger Zeit endeckt das man für das Minecraft auf Android mit Javascript Mods entwickeln kann.
Das ganze ist ziemlich interessant, vielleicht möchtest du es dir ja mal anschauen.
Ist ziemlich spannend damit rumzuhantieren finde ich.

grüße

jarbukk
23.05.2015, 10:03
ich sags mal so , das prinzip dieser leet browsergames ist es zu cheaten , egal wie , was in normalen games nur schwer möglich ist, daher lache ich immer über diese kurzen mode-erscheinungen.

Starflow
27.05.2015, 23:49
Hey,
Ich habe mich jetzt mal dazu entschieden euch zu zeigen was man so alles mit Javascript lösen kann, da doch immer wieder Personen denken das man nichts gescheites mit Javascript anstellen kann. Und was ist da besser als Beispiel als ein Browsergame Bot? Na? Na? Okay.. ich gebe zu da gibts sicher noch einiges geileres (3D Games wie Doom o.ä) ;)


http://runtimejs.org

https://node-os.com

(Einfach nur mal zwei Beispiele die mich wirklich erstaunt haben)



Aber ein Browsergame Bot ist doch auch ganz Nett.. zumindestens als Proof of Concept damit die Neulinge in Sachen Javascript mal sehen können wie man sowas lösen kann. Der Bot ist für das Browsergame Pennergame für den Server Köln (lässt sich easy auf andere umscripten).
Es gibt für das Requesten sicher noch schönere Lösungen, aber da hätte man Umwege gehen müssen (wegen den Post-Requests).


Nein, andere Lösungen wären mit Sicherheit sowohl flexibler, als auch einfacher gewesen, proof liefere ich am Wochenende mit nem Bot der sowohl im Browser als auch auf der Kommandozeile funktioniert.



ID / PW:


Warum ID und nicht einfach Benutzername? Hätte dir ne Erklärung gespart.
ID klingt einfach cooler, nicht wahr? ;)

Und ja sowas ist wichtig, Code ist Kommunikation und gute Kommunikation lebt von Klarheit, genau so wie guter Code.



Pfandflaschenbot Starten / Stoppen: Sammelt in einer Endlosschleife immer wieder 10 Minuten lang Pfandflaschen, leert den Einkaufswagen und beginnt erneut. Dies läuft solange bis ihr das Browserfenster schließt oder ihr den Bot stoppt.


Nein, das tut es nicht.*



Download: http://uploaded.net/file/nd1zbpht


W - T - F?
Als RAR Archiv auf Uploaded? Das sind zwei verdammte Textdateien, warum kein Pastebin?
Noch besser wäre ein Direktlink, evtl. über Dropbox oder sind die für reddit reserviert? ;)

Aber naja, ich war mal so dreist nen Mirror (https://github.com/starflow/cestasys_pfandbot/commit/84e1e7e093d54349e2f839ad9c543690055b855b) einzurichten und auch gleich ein paar kleine Änderungen (https://github.com/starflow/cestasys_pfandbot/commits/) vorzunehmen.

Eigentlich hatte ich vor, deinen Code zu nehmen und zu refactoren, bis ich damit zufrieden bin.

Allerdings finde ich deinen ganzen Lösungsansatz nicht besonders praktisch, deshalb werd ich mich am WE hinsetzten und selber
einen Bot schreiben.



*
Es startet einen Timer, der nach 200ms den Einkaufswagen leert (https://github.com/starflow/cestasys_pfandbot/blob/master/script.js#L51)
Dann startet es noch einen Timer, der nach 2s das sammeln startet (https://github.com/starflow/cestasys_pfandbot/blob/master/script.js#L52)
Setzt den Timer für's sammeln auf 10 Minuten (https://github.com/starflow/cestasys_pfandbot/blob/master/script.js#L53)
Startet, dann einen Timer, der alle 10 Minuten das Sammeln startet (https://github.com/starflow/cestasys_pfandbot/blob/master/script.js#L54)
Und noch einen Timer, der nach 10 Minuten das ganze wiederholt. (https://github.com/starflow/cestasys_pfandbot/blob/master/script.js#L55)

Und wer genau aufgepasst hat, wird merken, dass hier viel zu viele Timer gestartet werden.



Dauer
Typ
Details


10s
Intervall
Startet das Sammeln


10s
Einmalig
Startet die Funktion erneut




10s später:


Dauer

Typ
Details


10s
Intervall
Startet das Sammeln


10s
Intervall
Startet das Sammeln


10s
Einmalig
Startet die Funktion erneut





10s später:


Dauer

Typ
Details


10s
Intervall
Startet das Sammeln


10s
Intervall
Startet das Sammeln


10s
Intervall
Startet das Sammeln


10s
Einmalig
Startet die Funktion erneut


etc. pp.


(wer ganz genau hinschaut, findet auch noch jede Menge potential für Race Conditions)




Ich beschäftige mich zu 90% meiner Zeit mit Javascript und Webanwendungen, ich zähle mich hier nicht mehr zu den Anfängern.


Da hast du dich aber verzählt.

Cystasy
28.05.2015, 00:25
Nein, andere Lösungen wären mit Sicherheit sowohl flexibler, als auch einfacher gewesen, proof liefere ich am Wochenende mit nem Bot der sowohl im Browser als auch auf der Kommandozeile funktioniert.


Dann aber ohne node.js oder sonstiger lib. - bin gespannt



Warum ID und nicht einfach Benutzername? Hätte dir ne Erklärung gespart.
ID klingt einfach cooler, nicht wahr?


Du wirst lachen aber Anfangs hatte Ich Username & Password dort stehen, habs dann aber geändert gehabt :P



Und ja sowas ist wichtig, Code ist Kommunikation und gute Kommunikation lebt von Klarheit, genau so wie guter Code.


Nächstesmal lass ichs stehen, okay? :P




W - T - F?
Als RAR Archiv auf Uploaded? Das sind zwei verdammte Textdateien, warum kein Pastebin?
Noch besser wäre ein Direktlink, evtl. über Dropbox oder sind die für reddit reserviert?


Ich hab mein Dropbox (nur 2gb) vollgestopft bis zum Rand, das was ich noch von Reddit druf hatte war in Vergessenheit geraten - das sollte eigendlich garnicht mehr auf der Dropbox sein.
Dropbox nutze ich eigendlich nicht mehr für solche Dinge da ich mittlerweile ne eigene Domain usw habe.. welche ich hier aber sicher nicht Preisgeben werde (nein, nicht cystasy im domainname)^^



Aber naja, ich war mal so dreist nen Mirror einzurichten und auch gleich ein paar kleine Änderungen vorzunehmen.


Touché.
Da gibts wirklich einiges wo ich noch was lernen kann, finde es toll von dir das du dir soviel Mühe gegeben hast wegen mir - Danke dir hierfür. Von Label´s z.b hatte ich bisher noch nie etwas gehört gehabt (ist das neu hinzugekommen vor einer Weile?).

Was ich jedoch sagen muss - du hast auch vieles bemängelt das ich nicht wirklich als Fehler / Falsch ansehen würde.
Nur weil ich mich nicht 100% an die Specs halte und "unnötige" Kommentare für mich in den Code einfüge für die Übersichtlichkeit, heißt das ja nicht das es falsch ist.
Ich verstehe das sowas von Bedeutung ist wenn man in ner Gruppe zusammen an etwas arbeitet, aber hier bin nur ich derjenige der an dem Code gearbeitet hatte.
Zusätzlich muss halt gesagt werden das ich bisher noch nie in einer Gruppe etwas entwickelt habe und daher auch keine Erfahrung darin habe den Code so zu gestalten das es "Gruppenfreundlich" ist.

1) Doctype usw fehlt, ja. Ist ja auch nur nen Bot und keine Webseite die ich irgendwo ins Netz stellen würde so das ich dies benötigen würde.
Klar, "gehört es normalerweise dazu", verstehe ich - trotztdem.. das ganze war als Proof of Concept angesehen, und ich habe bewusst Dinge wie Doctype, ne schöne HTML Struktur u.s.w weg gelassen gehabt.

2) Hatte über eine Helper Function für SetState nachgedacht, habs dann aber weggelassen gehabt.
Nun hast du sie eingefügt.. auch okay^^

Ansonsten habe ich mir deine anderen Vorschläge & Verbesserungen die du gemacht hast aber zu Herzen genommen^-^

Starflow
29.05.2015, 01:11
Dann aber ohne node.js oder sonstiger lib. - bin gespannt

Definiere bitte "lib".

Denn Node.js ist eine Plattform basierend auf Googles V8 und irgendwas muss das Script auf der CLI ja laufen lassen.

Außerdem werd ich auch so dreist sein und meine Design Entscheidungen selber treffen.

Hättest du irgendwem die Grundlagen von etwas beibringen wollen, hättest du 'ne HTTP Library schreiben können oder auch
was anderes Grundlegendes, hast du aber nicht.




Du wirst lachen aber Anfangs hatte Ich Username & Password dort stehen, habs dann aber geändert gehabt :P



Nächstesmal lass ichs stehen, okay? :P


Ja :P





Ich hab mein Dropbox (nur 2gb) vollgestopft bis zum Rand, das was ich noch von Reddit druf hatte war in Vergessenheit geraten - das sollte eigendlich garnicht mehr auf der Dropbox sein.
Dropbox nutze ich eigendlich nicht mehr für solche Dinge da ich mittlerweile ne eigene Domain usw habe.. welche ich hier aber sicher nicht Preisgeben werde (nein, nicht cystasy im domainname)^^


Brauchst du nicht, hab ich schon gefunden. :P
Ich weiß nicht was mich mehr verwirrt, der TK schwachsinn oder das du XHTML 1.0 Strict benutzt. (4 Errors, 34 warning(s))

Ich mein nur, der Code war eigentlich sogar noch "klein" genug um auch einfach hier in nem [CODE] Tag gepostet zu werden.




Touché.
Da gibts wirklich einiges wo ich noch was lernen kann, finde es toll von dir das du dir soviel Mühe gegeben hast wegen mir - Danke dir hierfür.


Kein Problem, ich versuch auch nicht ganz so grob zu sein, du bist ja guten willens. :P



Von Label´s z.b hatte ich bisher noch nie etwas gehört gehabt (ist das neu hinzugekommen vor einer Weile?).


Hmm, so ungefähr vor 17 Jahre gibt es die schon:

http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#edef-LABEL

:S



Was ich jedoch sagen muss - du hast auch vieles bemängelt das ich nicht wirklich als Fehler / Falsch ansehen würde.
Nur weil ich mich nicht 100% an die Specs halte und "unnötige" Kommentare für mich in den Code einfüge für die Übersichtlichkeit, heißt das ja nicht das es falsch ist.


Über den Nutzwert der Kommentare kann man streiten, über die Spec nicht.
Nein, man muss (und kann auch) nicht immer Valide sein, aber man sollte es nach bestem Wissen und Gewissen anstreben.

Du musst den Boilerplate Code ja nicht mal selber schreiben wenn du die richtigen Tools benutzt.




Ich verstehe das sowas von Bedeutung ist wenn man in ner Gruppe zusammen an etwas arbeitet, aber hier bin nur ich derjenige der an dem Code gearbeitet hatte.


1. Häufiger Irrglaube bei Anfängern, man schreibt Code auch ordentlich für das eigene "spätere Ich" ;)
2. Du hast es Publik gemacht, unleserlichen Code liest aber niemand gern, weil er schwer zu verstehen ist, besonders dann wenn er so gut wie unkommentiert bleibt.



1) Doctype usw fehlt, ja. Ist ja auch nur nen Bot und keine Webseite die ich irgendwo ins Netz stellen würde so das ich dies benötigen würde.


Wie gesagt über die Spec streit ich nicht. Das macht es leserlicher (sowohl für AI Clients als auch für andere Programmierer inkl. deinem späterem Ich) und ist mit den richtigen Tools kaum ein Mehraufwand.



Klar, "gehört es normalerweise dazu", verstehe ich - trotztdem.. das ganze war als Proof of Concept angesehen, und ich habe bewusst Dinge wie Doctype, ne schöne HTML Struktur u.s.w weg gelassen gehabt.


1. Wenn man anderen etwas beibringen will, sollte man so ordentlich und korrekt wie möglich machen.
Quick 'n Dirty ist ok für's prototyping, nicht für Tutorials, durch sowas verbreiten sich nur schlechte Angewohnheiten
und es entsteht so Anspruchsloser Code, wie der den du immer bemängelst.

2. So einen Code würde ich nicht mal für 'n schnelles prototyping schreiben, ich mein Inline-Code, ernsthaft?
Sowas hab ich zuletzt Anfang des Jahrtausends gesehen und selbst da war es schon verpönt.




2) Hatte über eine Helper Function für SetState nachgedacht, habs dann aber weggelassen gehabt.
Nun hast du sie eingefügt.. auch okay^^


Naja ich fand es ziemlich deppert immer wieder das "Status:" erneut mit einzufügen und wo ich grad einmal dran war, hab ich's gleich richtig gemacht.



Ansonsten habe ich mir deine anderen Vorschläge & Verbesserungen die du gemacht hast aber zu Herzen genommen^-^

Find ich gut, hab mittlerweile noch ein paar Änderungen hinzugefügt und den Bug mit den Intervallen gefixxt.

Was mich noch stört:
* Die Status Anzeige ist praktisch geraten (kann man mit dem Ansatz aber auch schlecht machen, weil wegen SOP (http://de.wikipedia.org/wiki/Same-Origin-Policy))
* Kein Error Handling (Ok, das ist häufig so bei Tutorials)
* Denglishe Variablen
* Die Stadt ist immer noch Hardcoded
* Die Zeit beim Bot sollte auch Variable bestimmbar sein, nicht fix auf 10 Min.

Cystasy
29.05.2015, 05:15
Brauchst du nicht, hab ich schon gefunden. :P
Ich weiß nicht was mich mehr verwirrt, der TK schwachsinn oder das du XHTML 1.0 Strict benutzt. (4 Errors, 34 warning(s))


Siehs so, jeder hat eigene Interessen & das TK Kram ist nur als Lernprojekt für was anderes gedacht (SEO Experiment).
Tut aber nichts zur Sache weils nicht hier her gehört & ich auch nicht möchte das es hier Thema wird :P
Das mit den 4 Errors, 34 Warnings werd ich mir nochmal anschauen.



Ich mein nur, der Code war eigentlich sogar noch "klein" genug um auch einfach hier in nem [CODE] Tag gepostet zu werden.


Dann hätte jeder halt erst 2 Files anlegen müssen, Code reinkopieren usw. wenn er es testen möchte.



Kein Problem, ich versuch auch nicht ganz so grob zu sein, du bist ja guten willens. :P


Ich versuche mein bestes, ich habe mir halt komplett alles selbst beigebracht gehabt über die Zeit, und scripte / code nur Hobbymäßig.. Heißt mir fällt ne Kewle Idee ein und ich versuche sie dann umzusetzen mit eigener Logik & Umsetzung.. ohne das ich da groß Tutorials , Librarys, externe Files oder sonstige Lösungen zur Hilfe nutze... quasi vanilla mäßig^^
Ich finds halt doof irgendwelche Libs o.ä zu nutzen weil die meisten das einfach in ihren Code reinpacken, dafür aber nicht wissen "ja wie funktioniert das denn jetzt eigendlich?".
Die meisten machen sich da auch garkeine Gedanken drüber, ich interessiere mich aber halt wie Dinge ablaufen im Hintergrund & wie man sie erstellen kann.
Deswegen mag ich Libs etc nicht so sehr. In der Schule damals hatten wir zb Informatik, dort gabs aber nur "Schreibt in Word nen Text".. mehr nicht.
Kurz gesagt - musste mir alles selbst beibringen und da hab ich dann meistens mehr drauf geachtet "Funktioniert es so? Ja? Kewl" und noch nicht so sehr drauf das es 100% schöner Code ist der 100% den Specs entsprechend ist. Dieser Gedanke kam dann erst vor einiger Zeit das ich da langsam was machen muss (weiterbilden damits gescheit wird) ^^




Hmm, so ungefähr vor 17 Jahre gibt es die schon:

http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#edef-LABEL

:S


Hm, kay :o
Hatte ich bisher in noch keinem einzigem Webseiten Quelltext oder Tutorial gesehen über Jahre hinweg.. und ich schaue mir so gut wie jeden Quelltext von jeder Seite an.




1. Häufiger Irrglaube bei Anfängern, man schreibt Code auch ordentlich für das eigene "spätere Ich" ;)
2. Du hast es Publik gemacht, unleserlichen Code liest aber niemand gern, weil er schwer zu verstehen ist, besonders dann wenn er so gut wie unkommentiert bleibt.


1) Ich schäme mich manchmal oft für mich selbst wenn ich Code von vor einigen Monaten zuvor oder gar Jahren anschaue.. oft denke ich mir dann "Wieso zum **** hab ich das so gemacht? Das ist doch totaler.." :redface: Und meistens fixe ichs dann damit es besser ist.

2) Stimmt, damit hast du Recht.




Wenn man anderen etwas beibringen will, sollte man so ordentlich und korrekt wie möglich machen.
Quick 'n Dirty ist ok für's prototyping, nicht für Tutorials, durch sowas verbreiten sich nur schlechte Angewohnheiten
und es entsteht so Anspruchsloser Code, wie der den du immer bemängelst.


Werde nächstes mal mehr drauf achten







Naja ich fand es ziemlich deppert immer wieder das "Status:" erneut mit einzufügen

Ist es auch ^^*




Was mich noch stört:
* Die Status Anzeige ist praktisch geraten (kann man mit dem Ansatz aber auch schlecht machen, weil wegen SOP (http://de.wikipedia.org/wiki/Same-Origin-Policy))
* Kein Error Handling (Ok, das ist häufig so bei Tutorials)
* Denglishe Variablen
* Die Stadt ist immer noch Hardcoded
* Die Zeit beim Bot sollte auch Variable bestimmbar sein, nicht fix auf 10 Min.

1) Die Status Anzeige ist praktisch geraten? Meinst du damit das sie nicht wirklich den realen Status wiedergibt - z.b prüft "login done?falls ja dann login-status anzeigen?". Falls du das meinst.. ja das ist wirklich schlecht machbar. Man darf ja nicht auf den Quellcode einer in ein Iframe eingebundenen Seite zugreifen - sonst hätte ich da selbstverständlich anständige Status-Updates implentiert gehabt. So ist es jetzt halt ziemlich Doof weil es anzeigt das der Login abgeschlossen ist, obwohl es halt das garnicht prüft.. aber hätte ich das weggelassen, hätte der Benutzer garkein Feedback für seine Interaktion, und das wär noch schlechter - imho.

2) Errorhandling fehlt ja - bin eigendlich nie so der Freund von gewesen, außer bei Codestellen wo Dinge wirklich enorm schiefgehen könnten (XSS, Injections, Exceptions, Dinge die das Programm killen könnten o.ä) *g*.. Könnte ich bei zeiten noch einfügen, gebe ich zu. Bläht dann aber den Code noch zusätzlich auf was dann meistens nicht besonders gut ist für Tutorials (imho).

3) :P

4) Wieso sollte sich das geändert haben? Habe bisher ja noch kein Änderung am Code rausgehauen.

5) Naja, ich fande das die Settings der GUI schon unübersichtlich genug waren. Zudem macht es keinen Unterschied ob man nun 10 Minuten sammeln geht in ner Endlosschleife, oder ob man nun mehrere Stunden sammeln geht. Kommt soweit ich das sehe auf das selbe Ergebnis raus.


grüße

H4wk
29.05.2015, 09:17
den Kommentar könnt ihr löschen, im falschen Tab gepostet :/

Fixi
29.05.2015, 12:32
5) Naja, ich fande das die Settings der GUI schon unübersichtlich genug waren. Zudem macht es keinen Unterschied ob man nun 10 Minuten sammeln geht in ner Endlosschleife, oder ob man nun mehrere Stunden sammeln geht. Kommt soweit ich das sehe auf das selbe Ergebnis raus.

Doch macht es wenn ich mich recht erinnere. Habe, als Pennergame noch neu und kewl war, das Spiel auch mal gespielt gehabt. Es war effektiver(höhere Ausbeute an Flaschen) wenn man immer wieder 10 Minuten sammeln geht, anstatt eine Stunde am Stück o.ä.

Starflow
29.05.2015, 14:56
Das mit den 4 Errors, 34 Warnings werd ich mir nochmal anschauen.


Gut und du solltest dir eventuell auch noch mal Gedanken um die genaue Wahl des (X)HTML Standards machen den du benutzt.



Dann hätte jeder halt erst 2 Files anlegen müssen, Code reinkopieren usw. wenn er es testen möchte.


Naja, so musste ich erst 30s warten, es entpacken und nach UTF-8 konvertieren. :x
Viele Paste Services bieten ne RAW Ansicht und/oder nen Download Button.



Ich versuche mein bestes, ich habe mir halt komplett alles selbst beigebracht gehabt über die Zeit, und scripte / code nur Hobbymäßig.. Heißt mir fällt ne Kewle Idee ein und ich versuche sie dann umzusetzen mit eigener Logik & Umsetzung.. ohne das ich da groß Tutorials , Librarys, externe Files oder sonstige Lösungen zur Hilfe nutze... quasi vanilla mäßig^^


Ich hab auch keine offizielle Ausbildung in der Richtung, ich hab mir mit 14 meine erste eigenem Website mit Dreamweaver zusammen geklickt und mir nachher den Code angeschaut der hinten rausfiel.
Mittlerweile habe ich eine Menge dazu gelernt unter anderem, durch Tutorials und lesen von Blog Posts professioneller Entwickler.

Ich glaub ich stell nachher mal eine Liste zusammen.



Ich finds halt doof irgendwelche Libs o.ä zu nutzen weil die meisten das einfach in ihren Code reinpacken, dafür aber nicht wissen "ja wie funktioniert das denn jetzt eigendlich?".
Die meisten machen sich da auch garkeine Gedanken drüber, ich interessiere mich aber halt wie Dinge ablaufen im Hintergrund & wie man sie erstellen kann.


Es spricht nichts dagegen Libraries zu nutzen, wenn man die Grundlage dahinter einmal verstanden hat.
Es ist gut zu wissen wie man mit Vanilla JS einen XMLHttpRequest abschickt, aber man sollte es nicht jedes mal so machen.

Ganz im Gegenteil DRY (http://en.wikipedia.org/wiki/Don%27t_repeat_yourself) ist mMn eines der wichtigsten Prinzipien in der Programmierung. Wenn jeder immer wieder das Rad neu erfinden würde, käme ja keiner voran.




Deswegen mag ich Libs etc nicht so sehr. In der Schule damals hatten wir zb Informatik, dort gabs aber nur "Schreibt in Word nen Text".. mehr nicht.


Wir hatten Informatik nur als Wahlpflicht und der Stoff sah so ähnlich aus. Ich hab die meiste Zeit damit verbracht Icy Tower zu spielen und im EdenCity Chat rumzuhängen (kennt den noch wer? :D)



Dieser Gedanke kam dann erst vor einiger Zeit das ich da langsam was machen muss (weiterbilden damits gescheit wird) ^^


Ist auch wirklich wichtig wenn man in der Richtung beruflich was machen will ;)




Hm, kay :o
Hatte ich bisher in noch keinem einzigem Webseiten Quelltext oder Tutorial gesehen über Jahre hinweg.. und ich schaue mir so gut wie jeden Quelltext von jeder Seite an.



http://imgur.com/6xUU4Oal.png

(http://i.imgur.com/6xUU4Oa.png):D:P



1) Ich schäme mich manchmal oft für mich selbst wenn ich Code von vor einigen Monaten zuvor oder gar Jahren anschaue.. oft denke ich mir dann "Wieso zum **** hab ich das so gemacht? Das ist doch totaler.." :redface: Und meistens fixe ichs dann damit es besser ist.


Jeder der nicht so empfindet ist eindeutig ein Permanoob (http://www.urbandictionary.com/define.php?term=perma-noob) :D

Man sollte halt nach besten Wissen und Gewissen den eigenen Code immer so ordentlich und klar schreiben wie es mit dem aktuellen Wissenstand möglich ist.
Nachbessern muss man nachher immer, den man lernt ja ständig hinzu :)




1) Die Status Anzeige ist praktisch geraten? Meinst du damit das sie nicht wirklich den realen Status wiedergibt - z.b prüft "login done?falls ja dann login-status anzeigen?". Falls du das meinst.. ja das ist wirklich schlecht machbar. Man darf ja nicht auf den Quellcode einer in ein Iframe eingebundenen Seite zugreifen - sonst hätte ich da selbstverständlich anständige Status-Updates implentiert gehabt. So ist es jetzt halt ziemlich Doof weil es anzeigt das der Login abgeschlossen ist, obwohl es halt das garnicht prüft.. aber hätte ich das weggelassen, hätte der Benutzer garkein Feedback für seine Interaktion, und das wär noch schlechter - imho.


Ja, genau darum ging es mir, das man nicht auf den Inhalt des iFrames zugreifen kann liegt halt an der Same-Origin-Policy die halt, kurz gesagt, XSS verhindern soll.
Ich muss grade auch ehrlich zugeben, dass ich mir nicht ganz sicher bin ob das was ich vorhab tatsächlich auch im Browser klappt.
Wenn nicht, muss ich mich halt mit der CLI zufrieden geben.



2) Errorhandling fehlt ja - bin eigendlich nie so der Freund von gewesen, außer bei Codestellen wo Dinge wirklich enorm schiefgehen könnten (XSS, Injections, Exceptions, Dinge die das Programm killen könnten o.ä) *g*.. Könnte ich bei zeiten noch einfügen, gebe ich zu. Bläht dann aber den Code noch zusätzlich auf was dann meistens nicht besonders gut ist für Tutorials (imho).


Hab ja gesagt, ist nicht so wichtig. (In diesem Fall auch nicht so einfach, ist eigentlich das selbe Problem wie mit dem Status)



4) Wieso sollte sich das geändert haben? Habe bisher ja noch kein Änderung am Code rausgehauen.


Ja, ich aber :P Die ganze Liste bezieht sich ja darauf.



5) Naja, ich fande das die Settings der GUI schon unübersichtlich genug waren. Zudem macht es keinen Unterschied ob man nun 10 Minuten sammeln geht in ner Endlosschleife, oder ob man nun mehrere Stunden sammeln geht. Kommt soweit ich das sehe auf das selbe Ergebnis raus.


Fixi hat da glaube ich schon recht, 10m sind effektiver was die Flaschenausbeute angeht.
Ich bin aber auch der Meinung man sollte den User solche Entscheidungen treffen lassen.
Das Interface bräuchte man dafür nicht mal ändern, einfach in der Funktion für den Bot den Wert aus dem Input in der Pfandsammel Form auslesen, in ms umrechnen, fertig. :)

Aber ich wollte's jetzt auch nicht auf die Spitze treiben, deswegen hab ich's erstmal so gelassen.




delete pls

Wut? Wieso? Jetzt ensteht hier mal ne fruchtbare Diskussion, die über "Früher war alles besser" hinausgeht und du forderst dass sie gelöscht wird, du bist mir ja einer.

Starflow
14.04.2016, 16:30
Hab damals ganz vergessen zu delivern:

https://github.com/starflow/pennergame-bottle-collector