HILFE !!! ,An alle Klugen Köpfe Helft mir bitte !!

  • Hi an alle !!

    Ich red mal gleich garnicht um denn Heißen brei !

    Bin voll der Anfänger Punkto Programmieren will aber unbedingt ein Spiel selber machen !!

    Das Spiel sollte rein nur geschrieben sein sprich das spiel stellt mir ne Frage ich muss die richtige antwort geben und umgekehrt.oder durch gewisse Befehle die man eingibt sachen kommen .
    Ist vieleicht ein wenig dumm beschrieben aber vileicht könntet ihr mir helfen ???

  • Du brauchst Tutorials. Hast du dich bereits für eine Programmiersprache entschieden?

    Drei in diesem Forum beliebte Sprachen:

    http://de.wikibooks.org/wiki/Python einfach zu erlernen, führt dich schnell zu deinem Ziel
    http://de.wikibooks.org/wiki/C-Programmierung schwieriger, aber pädagogisch wertvoller für größere Aufgaben
    http://de.wikibooks.org/wiki/Java_Standard wird an der Universität am häufigsten verwendet und in vielen Lehrveranstaltungen gebraucht

    Mit allen drei Sprachen kann man so ein Spiel hinkriegen. Du solltest eine der drei wählen, da weil sie in diesem Forum viele beherrschen, dir auch viele Leute helfen können.

    Weitere bekannte Programmiersprachen:

    http://de.wikipedia.org/wiki/Liste_der_Programmiersprachen

    Guten Tag.


  • http://de.wikibooks.org/wiki/C-Programmierung schwieriger, aber pädagogisch wertvoller für größere Aufgaben

    <br>

    Vom pädagogischen Standpunkt her würde ich Pascal empfehlen ( http://de.wikipedia.org/wiki/Pascal_%28Programmiersprache%29 ) das ja explicit als Lehrsprache entwickelt wurde.

    Ist syntaktisch wesentlich transparenter als C :) und vom Prinzip her ist eine Whileschleife überall eine Whileschleife.

    I used to be an owl...

    881 :rock:

  • <br>

    Vom pädagogischen Standpunkt her würde ich Pascal empfehlen ( http://de.wikipedia.org/wiki/Pascal_%28Programmiersprache%29 ) das ja explicit als Lehrsprache entwickelt wurde.

    Ist syntaktisch wesentlich transparenter als C :) und vom Prinzip her ist eine Whileschleife überall eine Whileschleife.

    Ansichtssache, find die C syntax nicht untransparent, und grad fuer spiele-entwickler ist C(++) ja noch immer quasi standard, also warum nicht gleich damit anfangen?

    Zitat


    HILFE !!! ,An alle Klugen Köpfe Helft mir bitte !!

    Kluge koepfe werden dir sagen, dass ein besserer Thread-Titel klug waere.


  • Das Spiel sollte...

    Hallo,

    So ein Spiel ist eigentlich sehr einfach, aber es ist erstmal ganz egal was du programmieren moechtest. Du musst erstmal lernen wie man Software macht. Und dabei ist es nicht besonders wichtig mit welcher Sprache du das lernst, oder was Du spaeter mit deinem Wissen programmieren willst. Wichtig ist nur das dir das Lernen so viel Spass macht, dass Du bereit bist einiges an Zeit darin zu investieren.

    Schau mal auf http://ubuntuforums.org/showthread.php?t=796494 , das ist ein guter Einstieg. Viel Spass!

    ( Und es stimmt - der Titel deines Threads ist richtig, richtig mies. Genau wie die vielen doppelten Satzzeichen in deinem Posting. )

  • Ansichtssache, find die C syntax nicht untransparent, und grad fuer spiele-entwickler ist C(++) ja noch immer quasi standard, also warum nicht gleich damit anfangen?

    Weils nicht gut ist, möglichst wenig Sprachen zu erlernen. Wenn man dann doch mal eine andere Sprache braucht, ists eine tolle Gelegenheit, noch eine zu lernen.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Weils nicht gut ist, möglichst wenig Sprachen zu erlernen. Wenn man dann doch mal eine andere Sprache braucht, ists eine tolle Gelegenheit, noch eine zu lernen.

    Dann würde ich mir aber eher noch Lisp oder Haskell ansehen.
    Da lernt man sicher mehr dazu, als mit noch einer prozeduralen/objektorientierten Sprache.

    Zum Thema: Du solltest Dir am besten mal Python ansehen.

    Einmal editiert, zuletzt von ThomasW (3. August 2008 um 19:08)

  • Dann würde ich mir aber eher noch Lisp oder Haskell ansehen.
    Da lernt man sicher mehr dazu, als mit noch einer prozeduralen/objektorientierten Sprache.

    Zum Thema: Du solltest Dir am besten mal Python ansehen.

    Du hast Prolog vergessen
    Wobei für einen absoluten Einsteiger Logikorientiertierte oder Listenorientierte Sprachen (so mächtig sie auch sein mögen) sicher nicht optimal sind. Haskell kenne ich nicht, aber bei zB Prolog glaube ich kommt man nicht sonderliche weit, ohne den theoretischen Hintergrund zu kennen. Prozedural Programmieren ist sicher das richtige für Anfängern, im Zweifelsfall geht ja auch noch ISBN 978-0131103627 :)

    I used to be an owl...

    881 :rock:

  • Hey danke für gleich so zahlreiche Argumente !
    Und es tud mir Leid das ich euch mit meiner Überschrift zu nahe getreten bin.
    Wollte eigentlich damit nur ausdrücken das ich der volle Amateur bin und mich mit der Welt de Programierens auseinander setzen will, also SORRY nochmal !.
    werde mir mal die ganzen Links durchcruisen.:thumb:
    @ a9bejo : mir ist klar das ich einige Zeit investieren muss und das man so ne Sprach nicht inerhalb einer Woch beherscht,will das aber wirklich machen und werde auch dahinter bleiben:D.

    Vielen dank nochmal :wave2:

  • So hab mir jetzt Lazarus downgeloadet und mal ein Tutorial mit erstellen von 2 Buttons ausgeführt ist ohne Problem gegangen (eh klar abschreiben kann ich ja noch ) :)
    Das Problem ist jetzt: was jetzt ?
    Finde nirgenst eine genau anleitung wie man sich am Besten in so ein Programm einarbeitet ,mit beispielen und so halt.
    Befehle und der Gleichen sind für mich unverständlich .
    Gibt es da Bücher ? Wenn ja könntet ihr mir ein paar empfehlen ? oder gibt es da was im Netz auch wo man nichts dafür zahlen muss ?
    Vorab ich bin nicht gerade der beste in Englisch also bitte keine Bücher oder seiten auf Englisch.
    Mir würden ein paar tutorials auch weiterhelfen Jedoch Google haut nur mist raus !

    Danke im Voraus :wave:
    MFG Stev

  • So hab mir jetzt Lazarus downgeloadet und mal ein Tutorial mit erstellen von 2 Buttons ausgeführt ist ohne Problem gegangen (eh klar abschreiben kann ich ja noch ) :)
    Das Problem ist jetzt: was jetzt ?

    Selber kenne ich Lazarus nicht, laut Wikipedia ist es aber eine RAD-Entwicklungsumgebung. Nach meiner Erfahrung sind da die Grenzen zwischen Entwicklungsumgebung, Sprache und GUI-Bibliotheken sehr unscharf, was es einem später, wenn man professioneller arbeiten und vielleicht auf eine andere Sprache umsteigen will, sehr schwer machen kann. Selber habe ich den Fehler gemacht und mit Visual Basic angefangen. Auch wenn es anfangs verlockend ist mit ein paar Klicks eine Oberfläche bauen zu können und nicht nur "langweilige" Konsolenanwendungen zu schreiben, kann ich nur davon abraten. Man lernt die wesentlichen Dinge dabei nicht und hat es später umso schwerer.

    Sehr geholfen hat es mir bei meinen ersten Programmen, Tutorials zuerst abzuschreiben und dann Teile zu ändern, also learning by doing (was passiert wenn man diese oder jene Zeile rauslöscht/verdoppelt/ändert, usw.). Mit der Zeit hat mans raus.

    Mir würden ein paar tutorials auch weiterhelfen Jedoch Google haut nur mist raus !

    Das kann ich mir nicht vorstellen. Such dir eine Sprache aus und gib "[Deine Sprache] Tutorial" ein, ich habe so noch immer was brauchbares gefunden.

  • Kann dir von diesem Lazarus auch nur abraten. Wie schon in einem der obigen Links geschrieben, würde ich dir auch zu Python als erster Programmiersprache raten - jedenfalls wenn du unbedingt erstmal dieses Spiel proggen möchtest. Ansonsten sind imperative Sprachen vlt gar nicht das beste Wahl, um Programmieren auf die bestmöglichste Art zu erlernen.

    Jedenfalls: Ein kostenloses eBook zu Python gibts hier und hier das wohl bekannteste Tutorial.
    Zu Java gibts hier und hier eBooks. Neben C und C++ gehört Java zu den Sprachen, die in der Praxis am häufigsten eingesetzt werden. Sie verfügt über mehr Sprachelemente als Python, erlaubt nur rein objektorientierte Programmierung und erfordert auch mehr Schreibaufwand - hat aber auch zahlreiche Vorteile. In jedem Fall ist sie gegenüber C++ leichter zu erlernen (imho).

    Einmal editiert, zuletzt von Litti (7. August 2008 um 09:41)

  • Ich bin grad dabei ein Buch über PL/I zu lesen... wirklich nett, vielleicht auch recht interessant als Einstieg :D

    There's a place in the dark where the animals go
    you can take off your skin in the cannibal glow
    Juliet loves a beat and the lust it commands
    drop the dagger and lather the blood on your hands - Romeo

  • Dafür werd ich hier zwar gleich geflamed aber die einfachste Sprache die ich kenne ist C#. Das liegt wahrscheinlich mehr am Visual Studio und am Dot Net als an der Sprache selbst. Hier mal zwei Tutorials für den Start:
    http://www.galileocomputing.de/openbook/visual_csharp/
    http://www.galileocomputing.de/openbook/csharp/
    Die Express Edition von C# ist gratis:
    http://www.microsoft.com/germany/Express/
    http://msdn.microsoft.com/de-de/netframework/default.aspx

  • Lazarus ist im Prinzip wie Delphi, also von der Sprache her erweitertes Object Pascal. Ich find das recht cool, nur leider sind die libs, die Lazarus so mitbringt, nicht gar gut dokumentiert, also nimm lieber Python oder C#. Letzteres ist halt von der IDE Visual Studio her ganz fein, und auch angenehm zu debuggen.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Dafür werd ich hier zwar gleich geflamed aber die einfachste Sprache die ich kenne ist C#.

    Ich wuesste nicht wie dich da jemand "flamen" sollte, denn Du hast ja nicht dazu geschrieben, welche Sprachen Du so alles kennst. Gut moeglich das Du C# von denen am einfachsten findest. Das kannst nur du wissen. ;)

    Ich persönlich finde C# für Einsteiger aus den gleichen Gründen ungeeignet, aus denen sich TU Einsteiger mit Java so schwer tun: Mann kann die Sprache selbst nur sehr schwer benutzen, wenn man Objektorientierte Programmierung ignoriert. Und man Objektorientierte Programmierung nicht gut mit C# lernen, weil die OOP-Features von C# unvollständig und sehr komplex sind.


    die einfachste Sprache die ich kenne ist C#. Das liegt wahrscheinlich mehr am Visual Studio und am Dot Net als an der Sprache selbst.

    Hier laesst sich aber schon diskutieren, denn die beiden Aussagen widersprechen sich ja: Ist die Sprache jetzt einfacher als andere Sprachen oder nicht?

    Und was ist denn mit all den anderen Sprachen, die die gleichen Tools verwenden. Z.b. F#, Visual Basic, Python, Ruby, Smalltalk, Javascript, Fortran, Cobol und viele andere Sprachen laufen alle auf .NET, und viele werden auch im Visual Studio unterstützt.

    Und ganz grundsätzlich: Wie hilft dir eine IDE oder ein Framework dabei, eine Sprache zu lernen, oder gar Programmieren?

  • Und man Objektorientierte Programmierung nicht gut mit C# lernen, weil die OOP-Features von C# unvollständig und sehr komplex sind.

    Hmm, bin mir jetzt nicht ganz sicher, welche Features du jetzt genau meinst, aber wirds nicht noch komplexer, wenns vollständig sind? Oder meinst mit unvollständig was ganz anderes - also dass etwas nicht funktioniert, wie man sichs normalerweise vorstellt?

    Hier laesst sich aber schon diskutieren, denn die beiden Aussagen widersprechen sich ja: Ist die Sprache jetzt einfacher als andere Sprachen oder nicht?

    Also ich find grad Python mit der eher seltsamen Tatsache, dass Einrückungen Teil der Syntax sind, eher seltsam. Da wird man sich als Anfänger schon ein paar Mal wundern.

    Und ganz grundsätzlich: Wie hilft dir eine IDE oder ein Framework dabei, eine Sprache zu lernen, oder gar Programmieren?

    Beim lernen der Sprache selbst bringts nicht viel. Beim Programmiern schon. Mit ner ordentlichen Codevervollständigung ist Anfängern meistens sehr viel geholfen, da es einen Haufen Leserei in den oft miserablen docs erspart.
    Und ab und zu braucht man halt ein paar Erfolgserlebnisse, auch wenn man die Sprache noch nicht vollständig beherrscht. Ich hab mit Delphi auch nen kleinen Weltraumshooter geschrieben, ohne selbst eine Klasse zu schreiben. Schlechter Stil, ja. Aber wenn ich mich da erst in Vererbungen und dynamisches Binden usw. eingearbeitet hätt, wär wahrscheinlich weniger weitergegangen, und ich hätt frustriert aufgehört.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Also ich find grad Python mit der eher seltsamen Tatsache, dass Einrückungen Teil der Syntax sind, eher seltsam. Da wird man sich als Anfänger schon ein paar Mal wundern.

    Ich find das mit den Einrückungen super. Hab in OOP soviel schlimmen Code zu Gesicht bekommen, wo die Leute genau diesen Zwang gebraucht hätten...passt auch zu Pythons Grundsatz "explizit statt implizit": Im Grunde sollte man in jeder Sprache einheitlich einrücken, in Python muss man halt. Und wenn man durch seine/n IDE/Editor die Tabulatoren durch Leerzeichen ersetzten lässt kann auch nix schlimmes passieren.

    Zu IDEs: Sollten Anfänger zu Beginn auf keinen Fall benutzen, denk ich. Es ist schon sehr viel Arbeit, seine erste Programmiersprache zu lernen, und oft nicht immer Spaß. Dazu kommt dann noch diese als Monster empfundene Software im Vordergrund mit 1000 Funktionen deren Sinn man nicht versteht und die einen in diesem Moment wohl nur einschüchtern. Außerdem sollte man anfangs einfach mal die Arbeit, die einem eine IDE abnimmt, selbst durchführen - allein um sich darüber auch mal Gedanken zu machen und die Konzepte wirklich zu verstehen.

    Aber ich glaub unser Threadstarter hört eh nicht mehr zu - sonst würds mich mal interessieren was er inzwischen so denkt...

  • Hmm, bin mir jetzt nicht ganz sicher, welche Features du jetzt genau meinst, aber wirds nicht noch komplexer, wenns vollständig sind? Oder meinst mit unvollständig was ganz anderes - also dass etwas nicht funktioniert, wie man sichs normalerweise vorstellt?

    Um in OOP sinnvoll Software zu designen braucht man natürlich einiges an Übung , aber das Prinzip selber ist ja eigentlich relativ simpel: Du teilst dein Programm in Objekte, die einem bestimmten Zweck dienen und einen Zustand haben können. Kommunikation zwischen Objekten erfolgt über Nachrichten. Dann gibt es noch Vererbung + Polymorphie, und das war es dann fast auch schon. Alles andere ist laesst sich mehr oder weniger aus diesen Regeln logisch ableiten. Z.b. Klassen oder Instanzierung - Das sind aus OOP Sicht ja schon keine speziellen Features von OOP mehr, sondern eher Patterns die sich aus den Grundsaetzen ergeben: Klassen sind halt Objekte, die andere Objekte erzeugen. Wenn man die Grundlagen mal verstanden hat, ist es ziemlich logisch wie man beim Coden vorgeht.

    In einigen Sprachen (z.b. Smalltalk oder Ruby) sind Programme groesstenteils genau so umgesetzt. Aber in C# eben nur sehr unvollständig. C# Programme bauen eben nicht auf diesen Grundsätzen auf, sondern enthalten zahlreiche Ausnahmen und Sonderegeln. Und das macht es (vor allem für einen Einsteiger) ziemlich schwer, objektorientiert zu denken.

    Z.b. gibt es Objekte, die sich mit anderen Objekten praktisch gar keine Gemeinsamkeiten teilen (z.b. primitive Datentypen oder die null-Referenz). Der Programmierer kann die gar nicht wie Objekte behandeln.

    Es gibt Objekte und "Klassen", die du nicht erweitern kannst. Zu diesen Objekten gehören alle Klassen, die Teil der Standardbiliothek sind, bzw. die Klassen aus externen Bibliotheken.

    Allein wegen diesen beiden Aussnahmen werden schon die grundlegendsten Prinzipien von OOP verletzt.
    Z.b. die Kapselung von Verantwortung: Sagen wir Du willst den Absolutwert der Zahl -5. Eigentlich solltest Du jetzt -5, einer Instanz von einer Klasse Zahl, eine Nachricht schicken und sie nach ihrem Absolutwert fragen. Stattdessen holst Du dir von irgendwo eine Funktionssammlung System.Math und uebergibst der dann ein "Ding" namens -5 als Parameter.

    Oder sagen wir du hast eine Liste von Zahlen und willst eine Liste, wo die selben Zahlen in zufaelliger Reihenfolge stehen. OOP waere

    Code
    neueliste = liste.shuffle

    , richtig? Und wenn shuffle nicht existiert, dann tut man es halt da hinein. In C# geht das aber nur dann, wenn Du den Code der Collection zur Verfügung hast. In C# 3.0 gibt es die Möglichkeit, die Methode dahin zu stecken wo sie gehoert. Aber auch in C# 3.0 ist das wieder ein spezielles, stark eingeschraenktes Konstrukt. Ein komplizierter Sonderfall für etwas, was eigentlich ganz einfach sein sollte.


    Also ich find grad Python mit der eher seltsamen Tatsache, dass Einrückungen Teil der Syntax sind, eher seltsam. Da wird man sich als Anfänger schon ein paar Mal wundern.

    Für einen Anfänger ist es sicherlich ein erstes Hindernis Codebloecke zu verstehen. Das es für ihn einen Unterschied macht wie der Block angegeben wird, glaub ich aber nicht.


    Beim lernen der Sprache selbst bringts nicht viel. Beim Programmiern schon. Mit ner ordentlichen Codevervollständigung ist Anfängern meistens sehr viel geholfen, da es einen Haufen Leserei in den oft miserablen docs erspart.

    Nach meiner Erfahrung verwenden Anfänger in ihren Programmen nur ganz wenige Bibliotheken. Da gibt es nur wenig, was man sich anschauen muss. Und wenn man fremden Code benutzt, dann hilft es meiner Meinung nach mehr, wenn man lernt eine Dokumentation zu lesen als wenn man lernt mit einem komplizierten Werkzeug.

    Du hast schon recht, dass das beim Programmieren selbst sehr praktisch ist. Aber beim Lernen finde ich das eher kontraproduktiv.


    Und ab und zu braucht man halt ein paar Erfolgserlebnisse, auch wenn man die Sprache noch nicht vollständig beherrscht.

    Ja, da geb ich dir auch 100% recht. Ich weiß aber nicht, ob du solche Erfolgserlebnisse durch eine IDE wirklich schneller bekommst, als mit einer möglichst einfachen, abstrakten Programmiersprache und (nach den ersten Schritten) guten Bibliotheken. In Smalltalk/Squeak kannst Du z.B. ganz einfach ein tolles, graphisches Spiel erstellen. Einfach indem du ein paar bestehende Objekte nimmst, neu zusammensteckst, und ein paar Parameter veränderst.

    Ich finde das wichtigste, das ein Anfänger braucht, ist ein gutes Buch, das die Theorie gut erklärt, und das viele praktische Beispiele enthält.

    lg, Benjamin Ferrari, bookworm.at

    Einmal editiert, zuletzt von a9bejo (9. August 2008 um 15:39)


  • Also ich find grad Python mit der eher seltsamen Tatsache, dass Einrückungen Teil der Syntax sind, eher seltsam. Da wird man sich als Anfänger schon ein paar Mal wundern.

    ein echter anfaenger wird sich daran nicht stoeren, er ist es ja nicht anders gewohnt. und wie Litti schon sagte, finde auch ich das sehr nuetzlich. so verhindert man den einrueckungswirrwarr den man zu oft zu gesicht bekommt. am anfang dachte ich mir auch es ist komisch, aber nach 3 programmen hat man sich daran gewoehnt, und nach 5 mag man den stil schon. so ging es zumindest mir. nebenbei erspart man sich dadurch auch das "dangling else" problem.

    folgendes in die .vimrc und man ist schon ein halber python programmierer ;)

    Code
    set expandtab " insert space characters whenever the tab key is presse
    set tabstop=4 " insert 4 spaces characters when tab key is pressed
    set shiftwidth=4


    [edit]
    nette seite zu vim und python:
    http://henry.precheur.org/2008/4/18/Inde…with%20VIM.html
    [/edit]

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

    Einmal editiert, zuletzt von Kampi (4. September 2008 um 08:35)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!