Angepinnt [Sammelthread] Programmieren, aber was? (Programmideen)

Es gibt 302 Antworten in diesem Thema. Der letzte Beitrag () ist von Rennmaus.

    Wie wär's mit 'nem Compler?
    Das sollte Dich "ein paar Stunden" beschäftigen:



    Ein Programm, das herausfindet, wie viele Möglichkeiten es gibt, ein TicTacToe-Gitter mit 5 X und 4 O zu füllen.
    Dabei werden Rotationen und Reflektionen nicht mitgezählt.
    Also das:

    Quellcode

    1. XXX
    2. XOO
    3. OOO
    ist das selbe wie

    Quellcode

    1. OXX
    2. OOX
    3. OOX
    und wird deshalb nur einmal gezählt.

    Das lässt sich auch auf mehrere Dimensionszahlen ausbauen. Dann wird halt immer mit einer möglichst gleichen Anzahl an X und O gefüllt. Also bei 4x4 wären es 8 X und 8 O, bei 5x5 wären es 13 X und 12 O, und so weiter.

    Wenn Dein Programm innerhalb eines Tages ein 5x5 Feld testen kann, dann ist es gut.

    youtube.com/watch?v=yk8nCzniSeQ
    Wer nicht gespoilert werden will, sollte nicht runter zu den Kommentaren scrollen und das Video nur bis 1:40 schauen.


    Hast Du einen Microcontroller herumliegen?
    Programmiere Dir einen KeySender beispielsweise für Minecraft.
    Man kann Tastenschemen speichern und laden. Drückt man auf eine Taste, sendet der Microcontroller die Nummer der Taste zum Computer, Dein Programm reagiert darauf und sendet die Tasten per SendKeys.


    Ein Programm, das mit hilfe von einer Union-Struktur alle möglichen Blödsinne aufführt:

    VB.NET-Quellcode

    1. <StructLayout(LayoutKind.Explicit)>
    2. Structure Union
    3. <FieldOffset(0)> Public OriginalTextBox As TextBox
    4. <FieldOffset(0)> Public InheritedTextBox As MyTextBox 'MyTextBox ist eine von TextBox abgeleitete Klasse.
    5. End Structure

    Du kannst jetzt diesem Union an das Feld OriginalTextBox eine normale(!) System.Windows.Forms.TextBox zuweisen. Und dann nimmst Du das Feld InheritedTextBox und rufst Member auf, die eigentlich nur in MyTextBox deklariert sind. Das dürfte nämlich garnicht gehen, weil das Objekt, auf das die ersten 4 Bytes in der Struktur zeigen, eine normale TextBox ist. Der Compiler behandelt es aber trotzem als MyTextBox.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Bezogen auf felipe12305:
    Der Level-Editor könnte eine Unterstützung haben. Die möglichen Wege durch das Labyrinth werden errechnet und angezeigt.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    @felipe12305:
    Dass für das Labyrinth die möglichen Wege angezeigt werden.
    Beispiel:
    Schwarz sind die Wände, die roten Rechtecke sind die Ein- bzw. Ausgänge und die rote Linie ist der Weg zum Ziel.
    Wenn es mehrere mögliche Wege gibt, sollten diese auch angezeigt werden.

    Das ist eine gute Übung.
    Ein mögliches Verfahren wäre das "Rechte-Hand-Verfahren" (keine Ahnung, ob es da einen Fachbegriff dafür gibt).
    Da biegt man immer rechts ab. Irgendwann kommt man zum Ziel. Vorausgesetzt natürlich, dass sich Ein- und Ausgang am Rand des Labyrinths befinden.
    Für den Pfad gilt:
    Wenn man ein unbekanntes Feld betritt (eines in dem man noch nicht war), schiebt man es auf einen Stack. Betritt man ein bekanntes Feld, nimmt man so lange bekannte Felder vom Stack, bis man das gerade betretene Feld heruntergenommen hat. Der Stack von Feldern ist dann der Pfad zum Ziel.
    Für die Bewegungsrichtung gilt:
    Ist man am Start, bewegt man sich in das Labyrinth hinein (da gibt's nur eine Möglichkeit).
    Ist man auf einem Feld, wird das erst-mögliche der folgenden ausgewählt:
    • Rechts abbiegen möglich -> Rechts abbiegen.
    • Gerade aus möglich -> Gerade aus.
    • Links abbiegen möglich -> Links abbiegen.
    • Umkehren (keine andere Möglichkeit).


    Das ist eigentlich schon der Algorithmus. Hier ein Beispiel (Ranzoomen hilft):
    (Zeile für Zeile von links nach rechts lesen)

    Ein- und Ausgänge sind grün.
    Die aktuelle Position ist rot.
    Die Richtung, in die sich das rote Kästchen vom aktuellen auf den nächsten Zustand bewegen wird, ist mit orange markiert.
    Der Pfad ist blau.

    Ich hoffe, das macht es verständlich.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Ich habe auch eine Idee für ein Spiel. Vielleicht hat ja jemand Lust, es umzusetzen. Ist eher für Fortgeschrittene gedacht.

    Spiel: "Where I am?"
    Der Spieler sieht eine Karte von einer Umgebung (z.B. einem Bauernhof) und befindet sich auf dieser Karte auf einer unbekannten Position. Er kann sich mit den Pfeiltasten o.Ä. bewegen, sieht aber nicht, wo er hinläuft. Er hört allerdings Hinweise darauf, wo er sich befinden könnte. Befindet er sich z.B. neben einem Teich, werden Frosch-Quaken-Sounds abgespielt. Durch die Lautsprecher sollte auch etwas klar gemacht werden, aus welcher Richtung der Sound kommt.
    Die Aufgabe des Spielers besteht nun darin, seine Position ausfindig zu machen, alleine an den Hinweisen, die er durch die Sounds hört und durch Logik- und Ausschließverfahren, da er ja weiss, wie er sich bewegt hat.
    Er hat aber nur eine begrenzte Anzahl an Versuchen, seine Position zu bestimmen. Wenn er sie richtig bestimmt, hat er gewonnen.

    @Niko Ortner: Das Verfahren nennt sich "Backtracking". Ich habe das auch schonmal für ein Labyrinth gemacht (siehe Anhang).
    Dateien
    • Labyrinth.zip

      (66,26 kB, 198 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thilo87“ ()

    @Bajuvare: Wat? Du willst nen HD Film erstellen, indem du die Pixel einzeln zeichnest? Dann aber bitte mit GDI+ oder was anderem. Aber nicht mit Controls bzw. Panels. Sowas soll niemand hier versuchen.

    Außerdem ist das sehr langwierig. Du zeichnest jeden Pixel für eine HD Auflösung? Also praktisch 1920x1080 Pixel für ein Bild und musst dann jedes Bild später mit einer Lib zu einer Avi machen?! Nope, thanks.

    Das ist alleine ein Jahresprojekt, wenn du ohne Pause durcharbeitest. Denn so nen Film mit 30 FPS verschluckt für 1 Minute locker mal über nen paar 1000 Bilder.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    1920x1080 wären doch nur 2073600 pixel flüssig sieht ein film ab 25 bildern in der sekunde aus also 1500 bilder die minute bei einer filmlänge von 90 minuten sind das 135000 bilder
    hört sich doch garnicht mal nach so unmöglich viel an das schwerste an all dem wäre wohl der filminhalt und nicht das filmmachen
    achja und nur so das geht auch schneller als ein jahr ist ja eigentlich nur runterschreiben und an einen timer hängen das größte problem könnte da aber die performance werden
    HD ist nicht nur auflösung, sondern auch Anzahl der FPS->mehr
    Du musst nen Vid Format auseinandernehmen für das...
    Und nat. ists vollkommener Humbug sowas mit panels zu machen?!
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Stimmt PictureBox wäre dafür geeigneter.
    Eine Programmieridee wäre ein Command Interpreter für embed Devices (8Bit Microcontroller ++) Und das dann ansteuerbar per UART (Serielle Schnittstelle) und das dann wiederum mit einem hübschen Interface in VB.Net machen. Der Knackpunkt wird wohl das verarbeiten von Strings in C sein ^^

    mfg

    gfc
    huhuhu...

    Um Langeweile zu vertreiben dachte ich mir, ich geh mal Projekt für Projekt durch und schau, was man dabei alles lernen kann...^^

    Was Anfängern, bzw jedem vllt ein bisschen Helfen würde, wäre eine Erklärung der Programmideen oder ein kleiner Denkanstoß in die richtige Richtung...Der fehlt mir nämlich gerade auch^^

    z.B.:

    Programmidee 2 (Anfänger):
    [Anfänger] Kleiner Browser mit der WebBrowser-Komponente (Hilfe: Funktionen von WebBrowser, z.B. WebBrowser1.GoBack())

    Programmidee 4 (Anfänger):
    [Anfänger] Rotationsalgorithmus (Ähm..was? Rotation kenn ich, da dreht sich was.. :/ )

    Ich könnte damit jetzt noch weiter machen, allerdings fehlt mir die zeit dazu...

    Ich denke alle haben verstanden was ich damit ausdrücken will...vorallem in der Anfänger-Kategorie wäre sowas extrem von Vorteil...sonst wird wohl nur danach gegoogled und eine komplette lösung abgeschrieben...ohne selbst ein bisschen was eingebracht zu haben...

    lG, alex