Riecht stark nach Fibonacci.
*schlägt die Formel nach*
Yep, Fibonacci.
Heyo. =)
Ich sollte eigentlich für eine Klausur lernen (Compilerdesign, woohoo!) die morgen stattfindet, aber stattdessen schau ich Game of Thrones und habe lustige Ideen... ist ja klar.
Eine solche lustige Idee ist, dass mir gerade die wohl schlechteste Methode in den Sinn kam, zu überprüfen, ob eine Nummer wohl eine ganze Zahl sei oder nicht; das ganze in Javascript, weil ich damit täglich zu tun habe, und man damit so herrlich viel Spaß haben kann:
Die Funktion gibt true zurück, wenn man sie mit einer ganzen Zahl füttert (oder irgendwas, das ganzzahlig ausschaut, zum Beispiel auch für 4.0), und false ansonsten.
Was ich daran toll finde ist, dass:
- es nur von -1000 bis 1000 funktioniert - andere Zahlen sind sowieso unwichtig;
- magic numbers genutzt werden, um genau -1000 bis 1000 zu erreichen (also -999 und 1001);
- die lustigen Verhaltensweisen von Javascript, die man am besten vermeiden sollte, gnadenlos ausgenutzt werden (arrays mit negativem Index? Jupp... arrays mit floats adressieren? Jupp...);
- die ternary-Kontrollstruktur um den for-loop zu verlassen sehr - und grundlos - unübersichtlich ist;
- es vollkommen grundlos den == Operator verwendet, um floats mit booleans vergleichen zu können, nur um alles noch unübersichtlicher zu machen;
- i und arr implizit global deklariert werden - dabei kann ja gar nichts schiefgehen!;
- arr jedesmal, wenn die Funktion aufgerufen wird, neu angelegt wird (wenn schon global, dann sollte man das doch wenigstens... ach, was soll's);
- am Ende eine unnötige if-Struktur steht, bloß um das Ergebnis des ifs auszugeben - das könnte man auch in einer Zeile haben
Mir ist schon klar, dass man sicherlich noch viel mehr Idiotie in noch viel weniger Zeichen stecken kann, und daher meine Frage an euch alle:
Was ist der schlimmste Code den ihr in ein paar kurzen Zeilen schreiben könnt? Nehmt ruhig die Programmiersprache eurer Wahl; ich bin gespannt, mit was für Unsinn man in den verschiedensten Sprachen so durchkommt. =)
Geändert von Moyaccercchi (07.05.2014 um 14:47 Uhr)
Das schönste was ich je mit C verzapft hatte war eine Rekursion ohne Rekursionsanker, Prozesse quasi-rekursiv zu forken und innerhalb einer Rekursion nach dem Allozieren von Speicher das Freigeben zu vergessen .
Alles schöne Sachen die man erst zur Programmzeit merkt, weil die Speicher- und Prozessorauslastung recht schnell in die Höhe geht.
Was ich auch immer wieder lustig finde, ist wenn man in C/C++ mit Pointern in Arrays rum stochert, statt über den Index zu zu greifen.
Das schrägste was ich mal in einem Quellcode gesehen habe war folgendes:
Programmiersprache war da Java, einfach schlechter Programmierstil. Was man nicht braucht, sollte man auskommentieren oder gleich entfernen, sonst wird das Kompilat bei schlechten Compilern größer.
Ich hab mir die Tage das Retro BASIC Sonderheft zugelegt. Ich bin zwar totaler ein programmier Analphabet, aber ich habe so eben mein erstes Listing in meinen MSX getippt^^
![]()
Leider endete der 2. Screen in einer Fehlermeldung, was mich veranlasst hat meinen Code mit dem aus dem Heft und dem vom Ursprungsposting zu vergleichen. Und siehe da! Ich hab meinen ersten Code debuggt*g der Fehler lag darin, dass wo bei mir und im Heft
steht,
hätte stehen müssen.
Jedenfalls bin ich neugierig wie das Ergebniss sein wird wenn ich korrigierte Fassung eingebe.
Ziel des ganzen ist übrigens ein Spiel bei dem man am oberen Bildschirmrand seine Spielfigur nach links und rechts steuern kann und den von unten etgegenscrollenden Sternen ausweichen muss. Je länger man durchhält desto höher ist die Punktzahl und es ist möglich die Spielfeldbreite einzustellen.
Für die Neugierigen, hier ist der Originalpost
http://www.msx.org/forum/development...msx-basic-game
Schon Schade, dass das alles vor meiner Zeit war. Ich hätt da bestimmt Spaß dran gehabt^^
Das erinnert mich an die ganze Abtipperei auf dem C64
Für Menschen jüngeren Alters: Früher veröffentlichen Programmier-Magazine ihre Programme per Quellcode in Papierform, die man dann abtippen musste.
Es gab dann die Möglichkeit die Programme auf einer Diskette/Datasette zu bestellen. Später gab es dann zwei Ausführungen des Magazins. Entweder mit Diskette oder ohne. Die mit Diskette war dann deutlich teurer.
Irgendwo müsste ich noch ein Buch für den C64 haben, mit Spielen zum Abtippen. ^^
Wollte jetzt keinen extra Thread dazu aufmachen, aber ich habe diese Aufgabe hier gekriegt:
Ich soll das hier nachbearbeiten, hab ich gemacht und war natürlich falsch. Ich habe sowas definiert:
Bei interessen habe ich einfach einen String eingegeben den man auch in der Gruppe finden soll, damit es einfacher ist die Gruppe mit den meisten Spielern zu finden. Prof. Assisten schrieb mir:
"Das Attribut "Interesse" in der Datenstruktur "Gruppe" abzufragen, ist der falsche Ansatz." Ja was wäre den der richtige Ansatz...?
Das Attribut "Interessen" an der Gruppe ist ja kein Indikator dafür, ob es nun die Gruppe ist, mit den meisten Personen, die die Interesse "Spiele" haben.
Das Attribut kann höchstens nur zur besseren Übersichtlichkeit dienen, welche Gruppen überhaupt welche Interessen besitzen, damit eine Person diese Gruppe auch findet.
Man kann ja aber dennoch eine Gruppe erstellen, die die Interesse "Spiele" besitzt, aber keine Person in dieser Gruppe hat in seinem eigenen Profil "Spiele" als Interesse angegeben.
Um nun herauszufinden, welche Gruppe die meisten Personen besitzt, die als Interesse "Spiele" besitzt, musst du nun durch die Liste der Mitglieder iterieren, und die Personen zählen, welche diese Interesse besitzt.
Darüber hinaus ist das Attribut "anzMitglieder" redundant und fehleranfällig. Die Anzahl der Mitglieder ergibt sich schon aus der Liste der Mitglieder. "anzMitglieder" ist in dem Sinne Fehleranfällig, weil dieses Attribut jedes Mal aktualisiert werden muss, wenn eine Person sich aus der Gruppe ein- oder austrägt. Diese Implementierung vergisst man schnell im Eifer des Gefechts, oder man muss ein Datenbank-Korrektur-Script ausführen, das dies nicht beinhaltet, und schon hat man inkonsistente Daten.
Das Attribut "Alter" würde ich auch gegen "Geburtsdatum" austauschen, da sich das Alter jedes Jahr ändert. Geburtsdatum hingegen nicht und daraus lässt sich ja bekanntermaßen das Alter berechnen
Das Geburtsdatum ließe sich ja auch über die Unix Time als Integer abbilden. (Vorausgesetzt man ist nicht früher als 1.1.1970 geboren ^^)
Geändert von Whiz-zarD (21.11.2014 um 07:52 Uhr)
Microsoft hat auf der derzeit stattfindenden Build 2015 den Code-Editor Visual Studio Code, u.a. auch für Linux und OS X, vorgestellt. Damit wollen sie die Cross-Plattform-Entwicklung weiter vorantreiben. Dies ist aber ein reiner Editor und keine Entwicklungsumgebung mitsamt Compiler. Kompilieren müsste man dann schon selber (z.B. mit Mono wer C# unter Linux verwenden möchte). Da der Code-Editor aber nicht nur C# versteht, sondern mehrere Sprachen (darunter auch PHP, Python, JavaScript, HTML, CSS) könnte der Editor auch für Webentwicklung eingesetzt werden. Für JavaSript gibt es sogar eine IntelliSense-Unterstützung, und für ASP.NET 5- und Node.js Applikationen gibt es auch Debugging-Möglichkeiten.
Hm. Einerseits hat VS einen guten Ruf, andererseits klingt "es ist wie VS, nur daß es keine IDE ist" etwas merkwürdig (und ich mag es, in einer IDE zu arbeiten) und Microsoft hat sich in den letzten Jahren einen Ruf für bizarre User Interfaces erarbeitet. Daß VS Code in den Screenshots ein wenig wie Sublime Text mit einer unbeschrifteten Iconleiste an der Seite aussieht, hilft da nicht.
Könnte gut sein, vielleicht auch nicht. Ich denke, ich warte erst mal ein Jahr oder so und sehe dann, was die Leute sagen.
Auch ausprobiert, die Menüleiste von VS Code verträgt sich mit dem KDE(5)-Theme Breeze nicht und ist somit fast gar nicht lesbar (graue Schrift auf grauen Hintergrund).
Ich habe es aber einen Augenblick später wieder deinstalliert.
Ich bin mir nicht ganz sicher, ob folgendes hier was zu suchen hat. Ich probiers trotzdem:
Zachtronics hat ein Programmier-Spiel namens TIS-100 (GoG-Link, Steam-Link, jeweils Windows- und Linux-Version) veröffentlicht, in welcher man mit einer Assembler-ähnlichen Programmiersprache Aufgaben erfüllen darf. Es fängt schon stilecht damit an, dass man sich ein ca. 14-seitiges PDF-Dokument, in der die Syntax erklärt wird, bestenfalls ausdrucken soll^^.
Das Spielprinzip sieht ungefähr so aus, dass bestimmte Patterns von einem IN-Port kommen, diese der Aufgabenstellung gemäß bearbeitet und dann nach OUT-Ports weitergeleitet werden müssen. Mangels Assembler-Erfahrung kann ich nicht sagen, wie akkurat die Bearbeitung wirklich abläuft, aber soviel kann ich schon sagen: Das Spiel macht verdammt viel Spaß und lässt tatsächlich den Kopf rauchen. Ist IMHO wert, es mal gespielt zu haben, wenn man sich selbst mindestens Hobbyprogrammierer schimpft^^...
Hey, danke für den Tipp. Von der Spielbeschreibung alleine hätte ich nicht gedacht, dass es so viel Laune macht.
Warum gibt es org-mode nur für emacs /o\
Warum fühlt sich emacs mit evil-mode immer noch nicht gut an /o\
Warum ist vimscript so blöd und elisp so cool /o\
Warum kann es keinen coolen emacs- oder vim-fork geben, der die gute Textverarbeitung vom vim mit der krassen Erweiterbarkeit (von mir aus auch nur org-mode, ich bin nicht wählerisch) von emacs kombiniert /o\
Der Buddhismus hat recht, das Leben ist von Leid geprägt.
https://github.com/danielmagnussons/orgmode
Das mal angesehen? Oder tut das nicht alles was du willst?