Icon-Tutorial Teil 29: Entwicklung eines Spiels: MasterMind - der Code

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Himbeerfreunde, Forenbewohner und Linux-Freaks,

    hier kommt der 29. Teil meines Icon-Tutorials. Als ich im Mai 2013 geplant hatte, welche Themen in welchen Kapiteln behandelt werden sollten, um einen guten und didaktisch sinnvoll aufgebauten Einstieg und einen auch für totale Programmieranfänger angemessenen Fortschritt zu ermöglichen, war bei Teil 29 Schluss.

    Der Plan sah vor, dass im Teil 29 der Quellcode von MasterMind vorgestellt werden sollte. Der Plan ging auf. Genau das ist das heutige Thema. Mehr dazu wie immer im Anhang.

    Im heutigen Tutorial-Teil erläutere ich den Quellcode zum Spiel MasterMind, so wie er in den beiden vorigen Teilen bereits bruchstückhaft erarbeitet wurde. Insbesondere stelle ich den Auswertungscode vor. Den Algorithmus dazu hatten wir in Teil 28 bereits ausführlich erarbeitet.

    Dieses Tutorial wird abgerundet durch eine Anleitung, wie man die selbsterstellten Programme innerhalb von X / LXDE zum Laufen bekommt.

    Ausführlich zeige ich, wie das Programm MasterMind in das Anwendungsmenü (Applikationsmenü) kommt.

    Ausführlich zeige ich, was man machen muss, damit MasterMind vom Desktop aus gestartet werden kann.

    Und mit vielen Abbildungen zeige ich, wie man MasterMind ins Panel bekommt.

    Und zum Schluss zeige ich noch, wie man ein Verzeichnis direkt auf dem Desktop öffnen kann.


    Ende und aus?
    Damit endet dann diese Tutorial-Reihe im eigentlichen Sinn. Alle Befehle, Konstrukte und Besonderheiten wurden vorgestellt und in zahlreichen Programm-Beispielen vertieft. In zahlreichen mehr oder weniger sinnigen Übungsaufgaben konnte sich jeder Interessierte beliebig tief mit der Programmiersprache Icon beschäftigen.
    Da ich seit Mai 2013 nicht nur am Icon-Tutorial gearbeitet habe, sondern einige interessante Anwendungen programmiert habe und mich zwischenzeitlich einige interessante Dinge beschäftigt haben, gibt es eine ganze Reihe an weiteren Ideen zu Icon und was man damit alles anstellen kann (s. Ende dieses Beitrags sowie die letzte Seite im Anhang).

    Schlussworte
    Wir sind am Ende einer langen Reise des Erlernens der Programmiersprache Icon angekommen. Ihr habt eine Menge gelesen, Ihr habt eine Menge gelernt - aber jetzt liegt es an Euch: Versucht es selber, erdenkt Anwendungen, die Ihr in Icon umsetzen wollt. Esst Icon, sprecht Icon, denkt Icon, träumt Icon!

    Aber es geht mit ein paar interessanten Sachen weiter, die ich während dieser Reise (Erstellung dieser Tutorials) nebenbei aufgenommen habe, ein paar Einblicke in Entwicklungsprojekte, die hier ein paar Leute interessieren könnten und ansonsten ein paar kleinere Anwendungen, die mir zwischendurch in den Sinn kamen und die ich mal programmiert habe...

    ... Einige dieser Anwendungen sind abends und auch in der einen oder anderen Nacht im Hotel während irgendwelcher lausigen Projekte entstanden - um auf diese Weise ein wenig Motivation für den kommenden Tag zu schöpfen. :-/

    Ideen anderer Anwendungen bekam ich auf der Fahrt zum Kunden und habe es dann am Wochenende umgesetzt (z.B. Sprachsysnthese und Sprachsteuerung)

    Manches war Mittel zum Zweck - und führte zu recht brauchbaren Ergebnissen (z.B. die beiden Symbolizer, mit deren Hilfe Piktogramme für GUI gemalt werden können).

    Anderes trage ich schon seit Jahren mit mir herum - und denke, dass es jetzt an der Zeit ist, sich damit zu beschäftigen (z.B. Pseudo-Code-Compiler, Pipe-Programmierung oder auch das EVMUX-Thema, mit dessen Hilfe es möglich ist, Anwendungen zu erstellen, Anwendereingaben aufzuzeichnen und damit z.B. Lernanwendungen zu erstellen, in denen bestimmten Aktionen "ferngesteuert" ablaufen. Ebenso kann man die Software auch mit der gespeicherten Bedienung ablaufen lassen).

    Einige Sachen sind auch im Dialog im Forum entstanden - mit dem Hintergedanken "Ey, das geht doch mit Icon viel effizienter und ressourcenschonender!" (z.B. CPU-Usage und FreeMem).

    Ach Du Schreck, da kommen sie wieder! Die alptraumhaftesten Projekte waren die, als ich mich habe hinreißen lassen, bei irgendwelchen Schulprojekten mitzumachen (z.B. DiaShower und Widerstandsmesser). Keine Angst, ich veröffentliche erst dann den Code, wenn die Projekte gelaufen sind. Code hat ja eh keiner von den Schülern / Auszubildenden und Studenten bekommen ... Selber hinbekommen auch nicht ...


    Ich bin ja der, der den ganzen RaspberryPi-Kram immer geschenkt bekommt. So befand sich dann bei der letzten Beschenkaktion auch der eine und der andere Arduino darunter. Da sind auch ein paar interessante Sachen entstanden... quasi schon ein ganzer Block, der wohl während der Laufzeit aufgeblasen werden könnte...


    Das Wildeste, was ich jemals - nicht auf dem, aber für den Raspberry - programmiert habe, ist der Linux-Kernel-Compilator. Da stecken einige Wochen Hotel-Abende und -Nächte sowie Wochenenden und viel Herumgetüftel dahinter. Herausgekommen ist dann eine Anwendung, die echt was hat... :bravo2:


    Inhaltsangabe:
    1. Icon Tutorial Teil 1: Die Programmiersprache Icon - Installation
    2. Icon Tutorial Teil 2: Geany: Installation und Konfiguration der IDE Geany
    3. Icon Tutorial Teil 3: Eingabe und Ausgabe
    4. Icon Tutorial Teil 4: Programmierer-definierte Kontrollstrukturen: Schleifen und Fallentscheidungen

    5. Icon tutorial Teil 5: Numerische Datentypen, ihre Funktionen und Operatoren
    6. Icon Tutorial Teil 6: Zeichen-basierte Datentypen, ihre Funktionen ud Operatoren
    7. Icon Tutorial Teil 7: Struktureirte Datentypen, ihre Funktionen und Operatoren
    8. Icon Tutorial Teil 8: Die Datentypen procedure und co-expression
    9. Icon Tutorial Teil 9: Konzept des Zeichenketten-Scannens

    10. Icon Tutorial Teil 10: Ausdrucks-Auswertung, Typ-Umwandlung, Strukturen sortieren
    11. Icon Tutorial Teil 11: Sammelsurium: Zeichenkettennamen, Zeichenketten-Anrufungen, Speichermanagement, Sonstige Fähigkeiten
    12. Icon Tutorial Teil 12: Bibliotheken
    13. Icon Tutorial Teil 13: Präprozessor
    14. Icon Tutorial Teil 14: Fehler & Fehlerbeseitigung

    15. Icon Tutorial Teil 15: Graphik I: Window-Datentyp
    16. Icon Tutorial Teil 16: Graphik II: Zeichnen und Füllen
    17. Icon Tutorial Teil 17: Graphik III: Turtle-Graphik
    18. Icon Tutorial Teil 18: Graphik IV: Text
    19. Icon Tutorial Teil 19: Graphik V: Farben und Images
    20. Icon Tutorial Teil 20: Graphik VI: Fenster

    21. Icon Tutorial Teil 21: Interaktion
    22. Icon Tutorial Teil 22: Standard-Dialoge
    23. Icon Tutorial Teil 23: Vidgets und GUI-Entwicklungen mit VIB (Visual Interface Builder)

    24. Icon Tutorial Teil 24: Hardware-Basteleien & Vervollständigung der GPIO-Kommandozentrale

    25. Icon-Tutorial Teil 25: Ereignisbehandlung bei Anwendungen mit mehr als einem Fenster - Individuelle Dialoge mit VIB ersellen und programmieren
    26. Icon Tutorial Teil 26: Individuelle Dialoge mit VIB

    27. Icon Tutorial Teil 27: Ein Spiel entwickeln: Mastermind - Entwurf und GUI-Layout
    28. Icon Tutorial Teil 28: Ein Spiel entwickeln: Mastermind - Ereignisbehandlung & Auswertelogik
    29. Icon Tutorial Teil 29: Ein Spiel entwickeln: Mastermind - Der Code

    Ideen, Block I (in Entwicklung)
    30. Icon Tutorial Teil 30: Von Icon auf C-Bibliotheken zugreifen
    31. Icon Tutorial Teil 31: Von Icon auf C++-Bibliotheken zugreifen
    32. Von Icon auf Prolog-Bibliotheken zugreifen


    Was kommt demnächst?

    Die Ideen, die ich mit den folgenden Tutorials habe, unterscheiden sich vollkommen von dem bisherigen Material. Es wird sich immer um abgeschlossene Themen handeln, in deren Vordergrund die Entwicklung einer Anwendung stehen wird. Damit entfällt dann auch die Grundlage für Übungsaufgaben und deren Lösung im Folgeteil.

    Bedeutung von A, B, C und D:
    :thumbs1:: Software existiert :thumbs1: - Das Tutorial muss nur geschrieben werden :bravo2:
    :cool:: Ideen bzgl. Inhalt vorhanden
    :helpnew:: Grundlagenforschung im Sinne von: Ich muss mich mal ransetzen und endlich mal anfangen :daumendreh2: - aber ich bin guter Dinge, dass locker von der Hand gehen wird
    :@: Grundlagenforschung im Sinne von: Ich habe keine Ahnung, wie es funktionieren könnte ... aber ich hoffe, dass es irgendwie funktionieren wird =( - Wenn nicht :angel:, dann vielleicht so :wallbash: - und nichts hilft, dann immer wieder :@ :@ :@

    Hatte ich mal erzählt, dass mir des Öfteren Quellcode nachts im Traum :sleepy: kommt? Nee, dann erzähle ich ein anderes Mal davon... Ich bin mir sicher, dass ich bei den D-Themen darauf angewiesen sein werde...


    Block Nutzung von in anderen Programmiersprachen geschriebenen Bibliotheken
    30 :@ Von Icon auf C-Bibliotheken zugreifen
    31 :@ Von Icon auf C++-Bibliotheken zugreifen
    32 :@ Von Icon auf Prolog-Bibliotheken zugreifen

    Block Sprachsynthese & Sprachsteuerung
    33 :thumbs1:A TTS & STT: Sprachsynthese und Sprachsteuerung auf dem Raspberry Pi

    Block Tools für die Programmentwicklung
    34 :cool: :helpnew: Gestaltung graphischer Benutzeroberflächen mit dem Event-Multiplexor (EVMUX) inkl. Programmierung der Ereignisbehandlung
    35 :thumbs1: Symbolizer BiLevel
    36 :thumbs1: Symbolizer Farbpaletten

    Block Pseudo-Code-Compiler
    37 :cool: B:helpnew: Pseudo-Code-Compiler

    Block Ressourcenschonende Programmierung in Icon
    38 :thumbs1: CPU-Usage - FreeMem

    Block Schulprojekte
    39 :thumbs1: DiaShower
    40 :thumbs1: Widerstandsmesser

    Block RPi & Arduino
    41 :thumbs1: Tisch-Sonar
    42 :thumbs1: SPI am Beispiel A/D-Wandler
    43 :thumbs1: Arduino-Control-Center
    44 :@ Filmscanner

    Block Pipe-Programmierung
    45 :cool: Pipe-Programmierung

    Block Kernel-Compilierung
    46 :thumbs1: Der Kernel-Compilator
    47 :cool: Individuelle Kernel-Programmierung I
    48 :helpnew: Individuelle Kernel-Programmierung II
    49 :@ Individuelle Kernel-Programmierung III
    50 :@ Individuelle Kernel-Programmierung IV
    (Änderungen vorbehalten)

    Beste Grüße

    Andreas

    Dateien

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (9. Dezember 2015 um 22:09)

  • Icon-Tutorial Teil 29: Entwicklung eines Spiels: MasterMind - der Code? Schau mal ob du hier fündig wirst!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!