4003 (switch case exp)

python 3

"""
experiment with a main menu and switch / case construction
"""
class _Getch(object):
    """read character from stdin without return and split workflow into three tasks"""
    def __init__(self):
        try:
            self.impl = _GetchWindows()
        except ImportError:
            self.impl = _GetchUnix()

    def __call__(self): 
        return self.impl()

class _GetchUnix(object):
    def __init__(self):
        import tty, sys

    def __call__(self):
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(sys.stdin.fileno())
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch

class _GetchWindows(object):
    def __init__(self):
        import msvcrt

    def __call__(self):
        import msvcrt
        return msvcrt.getch()

class Switcher(object):
    def main_menu(self, argument):
        """dispatch method / main menu with switch case"""
        method_name = 'fall_' + str(argument)
        # Get the method from 'self'. Default to a lambda.
        method = getattr(self, method_name, lambda: "nothing to compute")
        # Call the method as we return it
        return method()
  
    def fall_1(self):
        #emulate slow progress
        from time import sleep
        import sys
        i=0
        for i in range (12):
            sleep (0.5)
            sys.stdout.write (".")
            sys.stdout.flush()
        print("")   
        return "January"
  
    def fall_2(self):
        #output Switcher dictionary
        print (Switcher.__dict__)
        return "February"
  
    def fall_3(self):
        #return given string
        query = input ("gimme a string: ")
        return query

def main():
    foo = _Getch()
    char = "#"
    while (ord(char) != 52):
        print ("----------------------------")
        print ("| 1 : menu point one       |")
        print ("| 2 : menu point two       |")
        print ("| 3 : menu point three     |")
        print ("| 4 : ende                 |")
        print ("----------------------------")
        char = foo.impl()
        wert = ord(char)
        choice = wert - 48
        #print (char + " _ " + str(wert))
        bar = Switcher()
        output = bar.main_menu(choice)
        print (output)
    print ("programmende")
		
if __name__ == "__main__":
    main()

drei unbekannte

Das neue Sternjahr begann für Maurie ganz entspannt mit einem Flashback. Alle Leute, die er kannte, hatten einen Kater, aber Maurie wähnte sich plötzlich auf einem kleinen Friedhof der Animals. Nachdem er die traditionelle Kerze entzündet hatte, machte er sich auf den Rückweg zur Windmühle. Langsam setzte er Fuss vor Fuss, als der nächste Angriff aus den Tiefen des Universums ihn erneut zu Boden zwang. Er fluchte, er betete, er verwünschte die ganze Mission, er schrie um Hilfe, es nützte alles nichts, er musste weitergehen. Kein Hund, kein Smartphone, kein Auto in Sicht. Dann sah er die Dark Shadow in der Ferne aus der Skyline aufragen. Nun kannte er sein Ziel. Langsam, aber beharrlich fuhr er fort. Nein, Argumente gab es hier nicht. Als er die Tür öffnete, roch es nach Erbrochenem. Er erklomm die Leiter zum Bedienungsdeck. Was er erwartet hatte, nun, auch das steht hier nicht zur Debatte. Jedenfalls schwommen plötzlich zwei Delphine im Bassin und der Grizzly hatte es geschafft, von der ihm gestellten Aufgabe zu abstrahieren und seine unbewussten Datenbanktiefen auf eine höhere Ebene zu heben. Er hielt Kontakt zur Mondbasis und hielt alle beteiligten Forschungseinrichtungen auf dem Laufenden. Eine Postkarte von Bernie zierte das Pult. Offensichtlich war er freiwillig in seinen Tigerkäfig zurückgekehrt, da ihm alles zu spanisch vorkam und er den Ameisenbär für einen Spinner hielt. ‘Peace, Man’ rief der Octopus von unten. Er hatte das Allerheiligste benutzt, um sich eine Tüte zu drehen. ‘Juchhuh, wir haben sie in die Flucht geschlagen, gegen unsere vereinte Fauna-Power können sie nicht anstinken!’

Maurie legte sich ab. Wir schrieben den dritten Janeiro. Die Delphine wollten endlich nach Hause.

learning how to learn

Sternzeit 1290,4

Während des unkalkulierbaren Einflusses des schwarzen Loches hatten wir also unserem Grizzly beigebracht, wie man mit einem Bodum Kaffee kocht. Das war keine triviale Aufgabe gewesen, musste er doch erst lernen, wie man lernt. Wir hatten ihm Geschichten erzählt, gewiss, aber die mussten auch irgendwann in einen Algorithmus münden. Also dachten wir in etwa so :

– beschreibe das Problem so genau wie möglich
– zerlege das Probleme in kleinere Teilschritte
– finde heraus, wie man von einem Schritt zum nächsten gelangt.
– führe eine weitere Abstraktionsebene ein
– beschreibe die zu erfolgenden Lernschritte so genau wie möglich
– beginne mit dem ersten Schritt
– lasse die zu absolvierenden Lernebenen aufeinander aufbauen

Diese Methode war vielleicht nicht für schwerwiegende Transformationsaufgaben tauglich, beim Kaffeekochen jedoch hatten wir Erfolg gehabt. Lediglich Milch oder Zucker mussten wir noch selbst beisteuern. Da wir ja nun von Günther befreit waren, konnte also auch Bernie seinen schwarzen Kaffee wieder geniessen. Lediglich die Maulwurfine bereitete ihm doch erhebliches Kopfzerbrechen, war sie doch etwas abweisend geworden und unterhielt sich gern nächtelang mit dem Delphin. Das war gewiss eine wichtige Aufgabe, war doch sein Liebeskummer wieder durchgeklungen, aber Bernie dachte doch, sie müssten sich gegenseitig feedbacken. Also klinkte er sich heute Nacht einfach in das Gespräch ein. Die Dreierkombination machte es nicht einfacher. Im Morgengrauen hatten sie allerdings so lange gerungen, dass sie sich alle mit dem gebildeten Konsens zufriedengeben konnten. Für morgen Nacht würde die Maulwurfine ein weiteres Mal Kekse backen, und sie würden eine gemeinsame Botschaft in die Heimat absenden, um den Delphinkontakt nicht abbrechen zu lassen. Als die Fledermaus also am nächsten Morgen ihren Weckdienst versah, sah sie im Logbucheintrag den Wunsch der Dreiergruppe, nicht geweckt zu werden. Damit würde der Octopus sicher einverstanden sein, gab es doch auch soetwas wie psychosoziale Seelsorgeebenen. Wie gut, dass sie bald den ersten Planeten des Systems besuchen würden. Das würde auch etwas Abwechslung in die Mission bringen. Von Klasse-M konnte allerdings nicht die Rede sein. Die Mannschaft machte den Trabant-Transporter für morgen startklar. Die Motivation, das Vertrauen und die Sicherheit wuchsen von Tag zu Tag. Zudem wurde alles dokumentiert, das ging ihnen schon fast ein wenig auf den Senkel, der Octopus hatte sich allerdings mit dem Ameisenbär auf diese Vorgehensweise geeinigt und folgllich vertraten sie ihre Position nachvollziehbarerweise im Plenum. Sie waren Pioniere, das sahen alle so. Logmodus-off.