Programmieren üben(C++)?

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ß!

Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich

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.


irgendeiner2 
Beitragsersteller
 15.03.2017, 19:38

Wie soll das gehen, also soll es auf der Konsole gezeichnet werden?

0
grtgrt  15.03.2017, 20:25
@irgendeiner2

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.

0
mrboese  15.03.2017, 21:31
@grtgrt

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.

1
grtgrt  16.03.2017, 15:55
@mrboese

Letztlich müssen Programmierer doch immer den neuen Trends folgen, da sie sonst für niemand mehr interessant sind (also mit Programmierung kein Geld mehr verdienen werden).

0
mrboese  16.03.2017, 16:32
@grtgrt

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.

0
grtgrt  15.03.2017, 19:21

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.

2
grtgrt  15.03.2017, 19:30
@grtgrt

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.

0

Programmier Mensch ärger dich nicht. Geht Schock mit OOP

mit opencv. das ist eine riesige computer vision library. einfach mal youtuben.