Grundlagen verstanden - was jetzt?
-
GUI Programmierung ist langweilig. Programmier doch ein kleines Spiel!
-
ghhjjjjjjjjjj schrieb:
GUI Programmierung ist langweilig. Programmier doch ein kleines Spiel!
Naja, was will er da machen? Low-level Grafik Programmierung? DirectX ist (nähmlich) wohl noch ein bisschen zu schwer. Und DOS-Konsolen Spiele machen keinen Spaß.
-
Hacker schrieb:
ghhjjjjjjjjjj schrieb:
GUI Programmierung ist langweilig. Programmier doch ein kleines Spiel!
Naja, was will er da machen? Low-level Grafik Programmierung? DirectX ist (nähmlich) wohl noch ein bisschen zu schwer. Und DOS-Konsolen Spiele machen keinen Spaß.
Kein Schwein benutzt direkt DirectX, wenn es nicht wirklich nötig ist.
SDL, sfml, oder eine fertige Engine suchen, sich damit beschäftigen, spaß haben.
-
Du könntest mal in dieses Buch schauen:
-
LordJaxom schrieb:
Glückwunsch, einen Scanner hast Du schon. Jetzt brauchst Du noch einen Parser, der die "Wörter" bzw. Terme auch zusammenrechnet.
Ging recht flott für einen Anfänger. Bin gespannt ob er auch den Parser mit Punkt-Vor-Strich-Rechnung packt!
-
Ich.möchte.lernen schrieb:
Für einen Texteditor müsste man sich mit GUI-Programmierung (z.b. Windows API) auseinandersetzen, richtig?
Nö. Ein Texteditor ist reiner Text, man kann ihn auch in der Konsole realisieren.
Schau dir edit.exe, mc oder nano an, damit du eine Vorstellung davon bekommt.
Wie schwierig/komplex ist das? Liegen deine angekündigten Überraschungen (:)) im Texteditor selbst oder im Programmieren der GUI?
MfG.
Im Texteditor.
-
Schon mal was mit Rekursion gemacht? Oder Listen, Bäume...?
-
cooky451 schrieb:
LordJaxom schrieb:
Glückwunsch, einen Scanner hast Du schon. Jetzt brauchst Du noch einen Parser, der die "Wörter" bzw. Terme auch zusammenrechnet.
Ging recht flott für einen Anfänger.
Ja, sofern er nicht einfach nur Space als Token-Trenner genommen hat, was ich vermute.
-
cooky451 schrieb:
Ging recht flott für einen Anfänger. Bin gespannt ob er auch den Parser mit Punkt-Vor-Strich-Rechnung packt!
Meinen ersten funktionstüchtigen Mathe-Parser hab ich vor geschätzt einem halben Jahr geschrieben. Ich tippe darauf, dass er das nicht schafft.
-
314159265358979 schrieb:
cooky451 schrieb:
Ging recht flott für einen Anfänger. Bin gespannt ob er auch den Parser mit Punkt-Vor-Strich-Rechnung packt!
Meinen ersten funktionstüchtigen Mathe-Parser hab ich vor geschätzt einem halben Jahr geschrieben.
Spirit?
-
Nene, schon ohne.
-
314159265358979 schrieb:
Nene, schon ohne.
Schade. Ich bin nähmlich gerade auch dabei, nur muss ich jetzt noch "Aktionen" lernen. Soweit bin ich aber schon, das er auf richtigkeit prüfen kann:
struct calculator : public boost::spirit::grammar<calculator> { template <typename Scanner> struct definition { boost::spirit::rule<Scanner> TERM, p_sign, m_sign, multi_sign, divide_sign, any_sign, partial_term; definition(calculator const& self) { using namespace boost::spirit; TERM = real_p >> *partial_term; partial_term = any_sign >> real_p; m_sign = ch_p("-"); p_sign = ch_p("+"); multi_sign = ch_p("*"); divide_sign = ch_p("/"); any_sign = m_sign | p_sign | multi_sign | divide_sign; } boost::spirit::rule<Scanner> const& start() { return TERM; } }; };
(bitte nicht weinen, du weisst ja)
Edit: Ah, Stop! Jetzt auch mit Klammern.
struct calculator : public boost::spirit::grammar<calculator> { template <typename Scanner> struct definition { boost::spirit::rule<Scanner> term, object, p_sign, m_sign, multi_sign, divide_sign, any_sign, brace_enclosed_expression; definition(calculator const& self) { using namespace boost::spirit; object = brace_enclosed_expression | real_p; brace_enclosed_expression = ch_p("(") >> term >> ch_p(")"); term = object >> *(any_sign >> object); m_sign = ch_p("-"); p_sign = ch_p("+"); multi_sign = ch_p("*"); divide_sign = ch_p("/"); any_sign = m_sign | p_sign | multi_sign | divide_sign; } boost::spirit::rule<Scanner> const& start() { return term; } }; };
-
Sowas ist doch ohne den ganzen Spirit-Ballast viel einfacher.
Einfach eine Funktion schreiben, die für einen beliebigen Ausdruck einen AST erzeugt und im Falle von Klammern rekursiv weitere ASTs erzeugen.Dann kann man sogar super Gleichungen/Tautologien/Contradictionen etc Lösen.
Hab mir ein kleines Tool gebaut, das logische Propositionen parsed und umformt. Hat an der Uni in Einführung Logik ungefähr das erste halbe Semester sämtliche Beweise machen können, sowas macht Spaß.
-
Rechner gibt es ja wie Sand am Meer. Macht das doch mal zur Compile-Time, mit Templates, so dass folgendes geht:
calculate<decltype(make_string("3+4+(5*3)")>::value
Oder noch besser:
std::map<char, float> values; values['y'] = 3; values['v'] = 4; values['z'] = 5; solve<decltype(make_string("yx+z = v") ), 'x'>::calculateWith(values);
-
314159265358979 schrieb:
cooky451 schrieb:
Ging recht flott für einen Anfänger. Bin gespannt ob er auch den Parser mit Punkt-Vor-Strich-Rechnung packt!
Meinen ersten funktionstüchtigen Mathe-Parser hab ich vor geschätzt einem halben Jahr geschrieben. Ich tippe darauf, dass er das nicht schafft.
Er hat ja wahrscheinlich auch keine Zeitmaschine.
-
Thema erschien ernsthaft. Die bisherigen Antworten scheinen aus Norwegen zu stammen, wo die Trolle wohnen.
-
ich habe es aus der Not heraus gelernt. Ich hatte ein Problem und musste dann etwas programmieren.