Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
15.06.2010, 17:58
Raziel



Hallo zusammen!

Ich bin Student der Angewandten Informatik an einer TU und im aktuellen zweiten Semester. Im ersten habe ich Grundlagen in Java und Assembler gelernt und auch viel theoretisches Wissen erlangt, zum Beispiel im Modul Rechnerstrukturen. Seit Beginn des zweiten Semesters lerne ich nun C und läuft ja auch alles ganz nett, aber dann hört es auch schon auf.

Es kommt mir einfach so vor, dass ich, obwohl ich regelmäßig programmiere und an Übungen/Praktika teilnehme, rein praktisch nicht viel kann (was auch bestimmt der Fall ist). Jedoch würde ich gerne "mehr" können, um auch sinnvolle Programme/Tools programmieren zu können. Natürlich kleinere, keine großen Anwendungen, aber bitte irgendwas anderes als Sortieralgorithmen, Listen oder ähnliches, dass ist für mich unglaublich frustrierend und auch demotivierend.

Das Thema hört sich vlt doof an, aber ich denke, dass hier so einige sind, die ebenfalls in dem Bereich studieren oder studiert haben und denen es vlt ähnlich ging. Vielleicht bin ich auch einfach zu ungeduldig, aber bei vielen Sachen frage ich mich, wozu das Ganze?

Um auf den Punkt zu kommen: was könnt ihr mir empfehlen, irgendein Buch mit sinnvollen Aufgaben und Übungen oder anderes? Englisch/Deutsch egal, beides geht.

PS: Interessant wären auch Programmieraufgaben, die sich mit dem Erstellen von ganz einfachen Spielen beschäftigen (kann ruhig bei den Grundlagen beginnen), muss ja nicht gleich ein super 3D-Egoshooter sein, aber eben, dass man sich mit der Materie beschäftigen kann. Schließlich haben wir ja alle mal gezockt, sonst wären wir ja nicht hier gelandet ;)

So, dass musste ich mir einfach mal von der Seele schreiben! Hocke gerade wieder vor einer Aufgabe über verkettete Listen und bin nicht gerade motiviert.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
15.06.2010, 23:32
Kriz



Beliebte "Anfängerprogramme" sind meistens solche, die irgendwas interpretieren (Dateien -> Matrixprogramme, Eingabezeile -> Taschenrechnerprogramme, usw.). Solche Dinger kann man wahlweise recht einfach programmieren (aber dann arbeiten die auch nur einfach), oder wenn man etwas Ahnung hat von Compilerbau, Automatentheorie und EBNF Schemata, dann kann man sowas auch schnell sehr komplex gestalten. In Kombination mit Lex/Yacc oder Lex/Bison wird man da sehr schnell sehr komplex (aber das ist für Anfänger wie mit Atombomben auf Mikroben geballert).

Was einfache Spiele angeht, würde ich sowas wie Schiffe-versenken, Snake, 4-gewinnt, Invaders, meinetwegen auch nen Fußballmanager in ASCII-Style vorschlagen.

Have fun!

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
002
16.06.2010, 13:27
caedes



Verkettete Listen und sowas sollte man schon draufhaben, bevor man was "richtiges" anfängt.

Mit http://www.libsdl.org/ lassen sich relativ einfach 2D-Spiele in C (aber auch praktisch allen anderen Sprachen) basteln, hab z.B. mal nen Dr. Mario Clone gebaut damit.

Als Buch mit Aufgaben zum Üben für C würd ich "The C Programming Language" von Kernighan und Ritchie empfehlen.

--

caedes

Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.

zum Seitenanfang zum Seitenende Profil || Suche
003
16.06.2010, 17:42
Bluthund



Der K&R (The C Programming Language) sollte auf jeden Fall ein paar brauchbare Aufgaben zum Lernen von C bieten.
Auch wenn dich die Grundlagen vielleicht langweilen, musst du dir vor Augen halten, dass man als Dipl.-Inf. (resp. B.Sc.) auch ein reichhaltiges Hintergrund- und Grundlagenwissen haben sollte, um bei der Suche nach Loesungen aus dem Vollen schoepfen zu koennen. Aber vielleicht liegt es auch einfach am Dozenten? Eine imo sehr schoen praesentierte Vorlesung zu dem Thema "Grundlegende Datenstrukturen und Algorithmen" (und auch einer kurzen Einfuehrung in Java) hat die UCB mit CS 61B auf Youtube eingestellt.
Leute, die mit Abstraktionsebenen arbeiten, die weit ueber ihrem Verstaendnisniveau liegen, gibt es mittlerweile genug (Monkey see, monkey do).

Ausserdem liegt "interessant" auch immer im Auge des Betrachters :)
Interessant finde ich persoenlich zum Beispiel Dinge wie Google Code Jam oder Code Golf (hier sei auch noch Project Euler genannt - auch wenn ich es nur von aussen betrachtet kenne). Dabei geht es natuerlich hauptsaechlich um effiziente (Laufzeit bzw Codelaenge beim Code Golf) Algorithmen und Datenstrukturen, was fuer die eigenstaendige Loesung natuerlich auch einiges an erweitertem Grundlagenwissen voraussetzt. Das ist vielleicht also noch nichts im Moment (ausser die Grundlagen langweilen dich, weil du sie schon drauf hast). Wenn du gern knifflige Aufgaben loest solltest du dir das auf jeden Fall anschauen.

Wenn du kleinere Spiele programmieren willst, dann nimm dir am besten ein paar einfache Spiele aus den 70er/80er Jahren, eine Bibliothek deiner Wahl (wie GLFW oder SDL) und bau diese nach. Also Dinge wie Pong, Tetris oder auch einen simplen Platformer wie Super Mario Bros. Ein super Tutorial, das ich immer wieder gern in die Richtung empfehle findet sich unter http://gametuto.com/tetris-tutorial-in-c-render-independent/. Das ist schoen simpel gehalten und vermittelt gleichzeitig aber sehr schoen einige der Grundzuege. Das Tutorial greift zwar auf C++ zurueck aber wenn du Java kannst und C lernst, sollte dir die im Tutorial verwendete Syntax nicht allzu viele Schwierigkeiten bereiten und auf jeden Fall auch eine Umsetzung in C erlauben.
Auch wenn du damit natuerlich nicht den ganz grossen Hit (aehnlich einem dust2k10_hyper_final ;]) landen wirst, kann sowas auf jeden Fall brauchbar sein: Das PreScreening fuer ein Praktikum bei EA enthielt bspw. die Aufgabe einen "Space Invaders"-Klon zu bauen. Gegeben waren dafuer nur die Sprites und eine minimalistische proprietaere Bibliothek mit einer sehr knappen Interface-Beschreibung fuer das Zeichnen der Sprites und das Handling der Steuerung. Also nichts was man nicht auch durch GLUT oder GLFW abfruehstuecken koennte.
Die Geschichte laesst sich natuerlich schier unendlich ausbauen. Da braucht man eigentlich auch keine vorgegebenen Aufgaben, denn die stellen sich dann ganz von allein. Wenn dir etwas Spezielles vorschwebt hilft meist ein paar Minuten googlen und du hast genug Lesestoff fuer die naechsten Stunden zu einem bestimmten Thema. Auf der Wikipedia-Seite zu Spiele-Programmierung finden sich z.B. Links zu ein paar der ueblichen Verdaechtigen. Wo sich auch noch einige gute Tutorials finden ist flipcode.com -- eine Seite, die leider viel zu frueh von uns gegangen ist.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
004
22.06.2010, 16:43
Raziel



Danke euch für die Antworten =)

Habe mir nun das Buch The C Programming Language bestellt und auch schon begonnen einige Aufgaben zu programmieren, macht schon einen ersten guten Eindruck. Nebenher schau ich mir auch das Tetris Beispiel an, dass ich endlich mal eine Sache, an der ich Spaß finde und die mir hoffentlich auch was bringen wird :)

Danach werde ich mich mit anderen sehr einfachen Spielen beschäftigen, die Kriz in seinem Post geschrieben hat, aber das wird sicherlich von dauern.

Ist zumindest eine gute und erfrischende Abwechslung zum Unialltag und motiviert auch.

--

zum Seitenanfang zum Seitenende Profil || Suche