Programmieren üben(C++)?
Hallo ich habe ein paar Tutorials von C++ durch und verstehe eigentlich das meiste, aber mein Problem ist, dass ich keine Ahnung habe wie ich es anwenden soll.
Wisst ihr vielleicht wie ich C++ üben kann.
Danke im Voraus
4 Antworten
Spiele programmieren: Ein Dame-Spiel, ein Mühle-Spiel etc. Dafür braucht man keine Graphik, die Fehler müssen nur definiert sein. Man gibt Startfeld und Zielfeld ein, z.B. A1-C3 (Schachbrettlogik bzw. beim Mühlebrett die entsprechenden Quatratkoordinaten nehmen), der Computer berechnet seinen Zug über
- welche Züge sind erlaubt (Regelwerk)
- welche Züge sind wie zu bewerten (Scoring der Zugmöglichkeiten), hier ggf. eine Baumstruktur versuchen
- der Zug mit dem höchsten Wert wird vom Computer gewählt (vielleicht noch einen Zufallsgenerator beimischen, damit er nicht immer dasselbe zieht).
Dann viel Spaß!
Such dir ein Projekt, das du gerne machen möchtest. Zum Beispiel ein Tic Tac Toe oder Mensch Ärgere Dich Nicht. Du übst dann ganz nebenbei und hast am Ende sogar was nützliches programmiert.
Bedenke auch: Solange du dein Programmierwissen nicht anwenden kannst zur Lösung von Problemen, die du selbst lösen möchtest, aber ohne Programmierung nicht lösen könntest (oder nur unter allzu hohem Zeitaufwand), wirst du Programmierwissen gar nicht erst benötigen: Es sollte ja nicht Selbstzweck sein, sondern dir echte Hilfe.
Wie soll das gehen, also soll es auf der Konsole gezeichnet werden?
Es gibt so viele Sachen die man in der Konsole gut darstellen kann (z.B. Tic Tac Toe: http://www.java2s.com/Code/CImages/AsimpleTicTacToegame.PNG ). Ansonsten kannst du ja die Gelegenheit nutzen und deine Kenntnisse um Oberflächenentwicklung erweitern.
Für C++ kann man z.B. Qt, wxWidgets oder andere Bibliotheken nutzen, um Oberflächen zu programmieren.
Ich rate dir, zunächst nur über die Konsole bedienbare Programme zu erstellen. Der Grund hierfür:
Sich mit GUI-Programmierung zu befassen wird für dich SEHR VIEL schwieriger sein.
Zudem stellen Bibliotheken wie Qt oder wxWidgets heute schon völlig überholte Technologie dar - sich damit noch zu befassen ist in meinen Augen Zeitverschwendung. Lies dazu auch https://www.gutefrage.net/frage/kennt-jemand-gute-c-qt-tutorials#answer-240725636 und die Kommentare dazu.
In meinen Augen ist das keine Zeitverschwendung. Nicht nur, weil diese Bibliotheken mit neueren API mit der Zeit gehen (zumindest Qt, GTK auch), sondern weil diese Anwendungen auf Basis von Webtechnologie nicht immer ideal für alle Anwendungen sind.
Hast du mal Atom, Visual Studio Code oder andere benutzt? Die sind gut und funktionieren schön. Aber lade mal in Atom eine 400 MB Textdatei rein (Ja, es gibt solche Fälle! Insbesondere im wissenschaftlichen Bereich). Da kommt Electron ganz schön an seine Grenzen.
Ja, GUI-Programmierung ist allgemein schwieriger, aber wenn man genauer hinschaut ist das ja sehr abhängig von der Technologie. Leider hat OP hier nun gerade C++ genommen. Als ich angefangen habe, habe ich gleich direkt was mit Windows Forms gemacht (C#) und es hat trotzdem funktioniert. Würde ich sogar noch WPF vorziehen, obwohl Windows Forms alt ist. Heißt nicht, dass die Programme plötzlich nicht funktionieren.
Nicht immer auf jeden Zug aufspringen, weil es "modern" ist.
Ja, das ist korrekt für den kommerziellen Sektor (mal ausgenommen die ganze Software mit teilweise sehr exotischen Programmiersprachen, die manche Firmen schon seit Jahrzehnten nutzen und noch Jahre nutzen werden).
Das hier ist aber der Hobby-Bereich. Da ist es halt nicht immer sinnvoll die neusten Technologien zu benutzen, sondern eventuell sogar sehr alte, die aber ausgereift ist, eine gute Dokumentation und viele Tutorials hat.
Programmier Mensch ärger dich nicht. Geht Schock mit OOP
mit opencv. das ist eine riesige computer vision library. einfach mal youtuben.
Das ist ein sehr guter Ratschlag.
Erst wenn du dein Programmierwissen an Projekten erprobst, die dich um ihrer selbst wegen interessieren, wirst du schnell dazulernen.
In Büchern gefundene Beispiele sind einfach nur langweilig. Zu mehr als die Einstiegsschwelle ins Programmieren zu überwinden, sind sie selten zu gebrauchen.