Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

1

08.11.2009, 17:45

Efftris

An der ETH wird ja als einführende Programmiersprache Eiffel Eiffel gelehrt. Und weil mir die Übungsserien manchmal ein wenig zu banal erscheinen, habe ich von einem Weilchen beschlossen halt selbst was zu machen. Und rausgekommen ist, wie könnte es anders sein ein Tetris Klon. Ich habe ihn liebevoll Efftris genannt.


(Link)


Der gesamte Source Code inklusive Projektdatei liegt bei, auch wenn die Source vielleicht besser nicht gerade als Vorbild für Eiffel genommen werden sollte. Da ich während dem Projekt erst ein paar Eigenheiten von Eiffel kennen gelernt habe, hat es dementsprechnd Teile drin, die ein gründliches refactoring und Umgestaltung nötig hätten. Aber wenn jemand Interesse hat und wisse möchte, wie man mit Eiffel so einfache Spiele machen kann, dann kann man das mit derm Source, denke ich recht gut.

Eigentlich gibts nicht mehr viel dazu zu sagen. Steuerung ganz üblich mit den Pfeiltasten und loslassen kann man einen Block mit der Space Taste.

Hier gehts zum Download:

Neue Version: (mit Highscore)
http://www.drakon.ch/misc/efftris_2.rar

Einzelne Linux Version:
http://www.drakon.ch/misc/efftris_linux_64

Alte Version:
http://www.drakon.ch/misc/efftris.rar

Die Anspielungen im Hintergrund können eigentlich nur verstanden werden, wenn man bei Professor Meyer Vorlesung hat. :) (Er hat mal fast angefangen zu kochen, darum der Topf.. :p)

2

09.11.2009, 00:07

Hm, Tetris halt :D
Mit Eiffel hab ich noch nix gemacht, daher kann ich den Code weder beurteilen noch wirklich verstehen. Das Programm an sich ist nett und klein, und soweit komplett, aber besonders gut spielen lässt es sich irgendwie nicht (es läuft etwas ruppig).
Insgesamt also ein nettes kleines Zwischenprojekt zu dem ich nicht viel mehr sagen kann.
Lieber dumm fragen, als dumm bleiben!

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

09.11.2009, 00:22

Ja. Das es ein wenig hakig läuft ist mir von Anfang an ein Dorn im Auge gewesen. Dachte, dass es mit der Optimierung des Codes dann flüssiger läuft, aber an dem liegt es anscheinend nicht. Vielleicht werde ich das mal nochmal anschauen.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

09.11.2009, 00:43

ich finds merkwürdig wie sich die blöcke bei gedrückter taste verhalten. gibt es eine taste mti der man den stein fallen lassen kann?

wofür lernst du diese sprache?

in wikipedia werden vier anwendungsgebiete gezeigt.http://de.wikipedia.org/wiki/Eiffel_(Programmiersprache)

Zitat


* sicherheitskritische Anwendungen
* Entwurf- und Spezifikationssprache
* Implementierung komplexer Datenstrukturen
* Ausbildung in objektorientierter Programmierung


diesen satz finde ich persönlich etwas widersprüchlich:

Zitat

Die Syntax ist beeinflusst von Ada und der ALGOL-Sprachfamilie (Algol, Pascal, Modula). Sie soll vor allem einfach (das heißt: leicht lesbar) sein.


ich finde die syntax dieser sprachen einfach nur grauenhaft und verstehe nicht was daran einfacher sein soll.
man hat meistens viel mehr zeichen als bei c oder java für den gleichen effekt. beispiel: "end" bei eiffel und bei c eine einfache "}". ich sehe da keine eindeutigen codeblöcke. ich muss erst lesen bevor ich diese erkenne und das verzögert die arbeit natürlich.

vllt liegts ja auch nur allgemein an mir oder daran, dass ich noch nie einer solchen sprache geschrieben hab.
@drakon: wie gefällt dir die syntax im vergleich zu c/java/php?

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

09.11.2009, 01:04

Was meinst du mit Verhalten beim drücken? Sie gehen einfach in die Richtung. Fallen lassen kannst du mit Space.

Naja. Lernen tue ich die Sprache grösstenteils aus dem Grund, weil sie an der ETH gelernt wird, aber ich werde mich wohl kaum danach nochmal damit beschäftigen. Die Sprache hat ein paar gute Ansätze, die imo wirklich wegweisend sind, aber es ist einfach nur eine Qual damit zu arbeiten. (ich wäre Punkt 4 in der Liste, der Anwendungsgebiete)

Naja. Mit der Syntax könnte man sich anfreunden, aber die extrem strengen Prinzipien finde ich einfach schreklich. Z.b etwas, wo mir wirklich der halbe Mageninhalt raufgekommen ist:
Ich wollte iwo mal was mit Sinus und co machen. Also mal geschaut, ob es da eine Math Klasse gibt (klar eine Klasse, aber ich dachte halt, dass die statische Funktionen oder so hat). Dann war da einfach eine Klasse. Das heisst man muss ein Objekt Math machen und dann, als ob das eine normale Instanz ist die Funktionen benutzen. Oder was üblicher in Eiffel ist, ist, dass man von Klassen, die man benutzen möchte erbt. Sprich da ist das so etwas gestanden: (übertragen in C++ Code)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
class my_app : public Math
{
 ...
 void foo ()
 {
   float f = sin ( 0.0f );
 }
};

Achja.. Meine Applikation "ist-ein" Math.. Sehr Objektorientert.. -.-

Syntaxmässig macht man schon weniger Fehler, weil man halt keine Semikolons hat, aber das ist auch alles. Ansonsten ist mir kein Vorteil von dieser verbosen Syntax aufgefallen. (ausser, dass es wirklich an Übersicht mangelt).
Dazu kommt noch, dass die IDE (EiffelStudio) einfach nur grottig, lahm und unintuitiv ist. Ganz zu schweigen von mangelnder Referenzen und Dokumentationen zu den Bibliotheken.. Man findet wirklich nichts. z.B habe ich Heute diesen Blog Eintrag gefunden:

http://gnuu.org/2008/09/19/a-basic-http-req-in-eiffel-and-rant/

Zitat

Eiffel libraries seem to be very poorly documented, and their API’s are… well, crap.
[...] (the doc. for initiate_transfer is: “Initiate transfer.”, I kid you not).[...].


Tatsache. Ist wirklich so und einfach nur extrem mühsam. So macht entwickeln echt keinen Spass, wenn man seine ganze Erfahrung mit Try/Error sammeln muss und von irgendwlchen Projekten mal Stückchen ausprobieren muss, ob es jetzt so oder so geht.

Was an der Sprache wirklich sehr gut ist, ist, dass von Anfang an preconditions, postconditions und invariants aufgezeigt werden und man die benutzt. Das macht man ansonsten in keiner Sprache so deutlich.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

09.11.2009, 12:56

dann versteh ich ehrlich gesagt nicht warum damit unterrichtet wird... ich finde java ist, im vergleich zu c++ eine sehr einfache, übersichtliche objektorientierte sprache, die man auch noch in vielen bereichen professionell einsetzen kann.
warum wird das nicht unterrichtet?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

09.11.2009, 16:36

Zitat von »"NachoMan"«

warum wird das nicht unterrichtet?


Das wäre so als würde der CEO von Opel einen VW fahren ;)

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

8

09.11.2009, 16:40

Hallo,

Zitat von »"NachoMan"«

ich finde java ist, [...]
warum wird das nicht unterrichtet?


Hier in stuggi an der IT-Schule wird sie unterrichtet... ich bin echt neidisch auf die, die in der uni c++ lernen/benutzen dürfen.^^
für mich kommt nur diese in frage (und deren webfähigen nachkömmlinge, javascript und php :D )
java ist mir zu kompliziert und das Delphi aus dem informatikunterricht... naja sagen wir es so: ich bewundere die leute, die damit größere programme schreiben :D mich würde das verrückt machen :lol:


mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

09.11.2009, 16:47

Also PHP und Javascript als C++ Nachkömmlinge zu bezeichnen würd ich mal als sehr sehr weit hergeholt betrachten. Die Sprachen haben eigentlich so ziemlich überhaupt nichts gemeinsam bis auf dass Codeblöcke mit {} umschlossen werden. Und C++ ist als Multiparadigmensprache (und einfach weil es C++ ist) mit Sicherheit um einige Größenordnungen komplexer als Java ;)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

09.11.2009, 17:09

php soll einflüsse von perl, java, c++ und c haben. http://de.wikipedia.org/wiki/PHP

Werbeanzeige