Binary Clock

Code-Stücke können hier veröffentlicht werden.
Antworten
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Mal wieder ganz was wichtiges von mir :) Eine binäre Uhr:

Code: Alles auswählen

from Tkinter import *
import time

def get_time_array():
    l = []
    for i in time.localtime()[3:6]:
        for j in "%02i" % i:
            l.append(int(j))
    return l

def tick():
    bits = [1,2,4,8]
    t = get_time_array()
    for x in range(6):
        for y in range(4):
            y1 = 3-y
            if (t[x] & bits[y]) == 0: color = "blue"
            else: color = "red"
            c.itemconfigure("%s-%s" % (x,y1), fill=color)

def create_clock(event=None):
    c.delete("all")
    offset = 3
    size_x = c.winfo_width() / 6 - offset
    size_y = c.winfo_height() / 4 - offset -1
    for x in range(6):
        for y in range(4):
            c.create_oval(
                    x*(size_x+offset)+offset,
                    y*(size_y+offset)+offset,
                    x*(size_x+offset)+offset+size_x,
                    y*(size_y+offset)+offset+size_y,
                    fill="blue",tags="%s-%s" % (x,y))

root = Tk()
c = Canvas(width=200, height=150, bg="black")
c.pack(fill=BOTH, expand=1)
c.bind("<Configure>", create_clock)

create_clock()

while 1:
    tick()
    root.update()
    time.sleep(1)

root.mainloop()
Wer nicht weiss wie man sie abliest:
Die Spalten sind von links nach rechts: 2 für die Stunden, 2 für die Minuten und 2 für ... na? :)
Die Zeilen von unten nach oben haben die folgenden Werte: 1, 2, 4, 8
Einfach die Zahlenwerte der roten Punkte zusammenzählen (jeweils für Stunden, Min.. ) und man hat die Uhrzeit.
Alles klar? Viel Spass damit :)

Gruß, mawe
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Danke schön! So ist Angeberei richtig preiswert. ;-) Die Uhren sind ja nicht gerade billig.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
mangrove
User
Beiträge: 1
Registriert: Dienstag 6. Dezember 2005, 02:34
Wohnort: Bremen

Hallo mawe,

das ist die erste Antwort, die ich je in einem Forum geschrieben habe. Außerdem war es ein Erfolgserlebnis für mich, daß ich die Uhr zum Laufen gebracht habe. Als unbedarfter User erwartet man ja immer eine EXE, die man mit Draufklicken zum Laufen bringen kann. Und ein Fenster mit einem „graphischen” Erscheinungsbild. Für jemand, der gewohnt ist, daß alles mit Anklicken funktioniert (Anwendungen) oder in einem Browser läuft (HTML), fehlt bei Python am Anfang erst mal bißchen der Boden unter den Füßen. Da macht eine solche Uhr Mut.

Ich bin eben ein Anfänger. Hatte letztes Jahr schon mal angefangen. Lese gerade „Einführung in Python” (Lutz & Ascher, Verlag O'Reilly).

Viele Grüße,

mangrove
Ich bin Python-Neuling. Kenne bisher HTML, CSS und JavaScript.
Antworten