Grafische Darstellung in der Konsole



  • Hallo!
    Ich habe gerade ein Problem:
    Und zwar möchte ich für eine (simple) Lagerverwaltung die grafische Darstellung von Warenkartons in Hochregalen ausgeben. Das Problem ist jetzt, dass man mit der Konsole ja leider nur zeilenweise ausgeben lassen kann. Irgendwie sind bis jetzt alle Ideen gescheitert. Hier mal ein Beispiel, wie es aussehen sollte:

    Zur Info noch:
    Die Hoch-Regal-Plätze sind durch Structs dargestellt, die durch eine doppelt verkettete Liste verknüpft sind. In diesem Struct wiederum ist jeweils ein Zeiger auf ein Karton-Struct, das die Kartons darstellt. Diese Kartons sind auch wieder durch eine doppelt verkettete Liste verkettet.
    Also kann man über die Hoch-Regal-Stellplätze auf die Kartons zugreifen:

    Die Warenkartons besitzen alle einen Karton-Typ und eine Idenfikationsnummer d.h. sie sind identifizierbar.
    Der DHL-Wagen darf maximal einen Karton transportieren und der Speditions-LKW maximal 3.
    Auf den Hoch-Regalen dürfen maximal 4 Kartons lagern.

    Für Anregungen wär ich sehr dankbar 🙂


  • Mod

    1. Allgemeine Lösung: Berechne dein Bild im Voraus und stell es dann Zeile für Zeile dar. Wenn du dir beispielsweise ein 2D-char-Array anlegen würdest, dann wäre es doch kein Problem, deine Grafik dahinein zu malen, oder? Das kannst du hinterher zeilenweise ausgeben.
    2. Nicht-Portabel, aber komfortabel: Es gibt Konsolenbiliotheken, mit denen das direkt geht. Jedoch musst du dich grob entscheiden, ob Windows oder Linux-Konsole und kannst dann nicht mehr wechseln.



  • Hallo,
    ja dann müsste wohl ich die 1. allgemeine Methode nehmen...
    Meinst du alle Eventualitäten im Voraus reintippern?! Oder kannst du das nochmal mit dem Array erläutern? Ist mir noch nicht ganz so klar...

    Grüße



  • Ich denke du schreibst die Infos/Daten ins Array.
    Wenn eine Änderung im Array erfolgte, schreibst du das Ganze auf den Bildschirm.

    Beispiel:
    Dein Kleintransporter ladet eine Kiste -> diese Info wird sofort im Array notiert und anschliessend wird das ganze Array ausgegeben.
    Bei der nächsten Aktion das gleiche Vorgehen.

    Wenn du mit Konsolenbiliotheken dran willst, kannst du nur die Änderungen schreiben. Da heissen dann Funktionen z.B. gotoxy oder so ähnlich.
    Der alte Borland free bcc 5.5 hat so etwas serienmässig an Bord.
    Der Digital Mars auch, aber der Dialekt des des DMC unterscheidet sich deutlich vom Borland.
    Dann gibt es noch viele Bibliotheken, die für verschiedene andere Compiler geschrieben wurden. Siehe Stichwort conio (+ weitere Zeichen).h oder auch IDE Quincy u.s.w..
    ncurses sollte auch ein Stichwort sein.

    MfG f.-th.



  • alles klar, danke euch! 😉


Log in to reply