Jam Hex Minimalis

14

Tantangan Anda adalah membuat jam yang menampilkan waktu sebagai nomor hex, dan warna latar belakang sebagai kode warna hex waktu.

Persyaratan: Tidak ada input. Di tengah output Anda, Anda harus menampilkan tanda angka dan waktu saat ini dalam format 24 jam sebagai "#hhmmss". Program harus memperbarui ke waktu sekarang setidaknya sekali setiap detik. Teks harus berada di tengah dan putih (atau warna terang yang menonjol). Latar belakang harus sepenuhnya warna kode hex. Kode terpendek menang, tetapi jawaban kreatif dianjurkan.

Contoh langsung . Ide dari r / InternetIs Beautiful.

qwr
sumber
Saya menyukai ide itu, tetapi akan lebih baik sebagai kontes popularitas imo
William Barbosa
8
@ WilliamBarbosa Saya yakin hasilnya terlalu sederhana untuk kontes popularitas menjadi berguna.
qwr
Anda mungkin ingin menunjukkan bahwa post IIB adalah x-post dari / r / minimalism. Tapi heh.
cjfaure

Jawaban:

1

python3 (142) atau (123 dengan flickering)

import time;from turtle import*;tracer(0)
while 1:reset();ht();color([1]*3);a=time.strftime("#%H%M%S");write(a,0,"center");bgcolor(a);update()

menggunakan kura-kura, 142 byte, mungkin tidak akan menjadi yang terpendek, tapi saya hanya ingin menggunakan bermain dengan kura-kura lagi.

Contoh ini memperbarui layar cukup sering sehingga melakukan apa yang diminta, tetapi tidak cantik, karena berjalan dan mati. Maka itu hanya 123 byte. (bukan kualitas yang ditentukan)

import time;from turtle import*
while 1:reset();ht();color([1]*3);a=time.strftime("#%H%M%S");write(a,0,"center");bgcolor(a)

ungolfed:

import time
from turtle import*
tracer(0)                           #1 not every change should be propagated immediatly
while 1:
    reset()                         #2 remove previous drawing
    ht()                            #3 hide the turtle
    color([1]*3)                   #4 set color to snow, which is white for as far I can see
    a=time.strftime("#%H%M%S")      #5 generate the color from time
    write(a,0,"center")             #6 print time
    bgcolor(a)                      #7 change bgcolor
    update()                        #8 propagate changes

btw, karena sementara 1, saya sarankan menjalankannya dari terminal. Karena bisa sangat sulit untuk menutup: D (Anda perlu ctrl + c)

Pinna_be
sumber
1
Anda dapat mengurangi jumlah karakter Anda dengan menggabungkan semua garis dalam loop sementara menggunakan titik koma.
isaacg
@isaacg terima kasih, saya mengadaptasinya.
Pinna_be
1
Anda dapat mengurangi jumlah karakter Anda dengan 9 dengan menghapus panggilan terakhir untuk update()sebagai bgcolor()panggilan update()(mengabaikan pengaturan tracer) sudah. Anda dapat menyimpan karakter lain dengan menggunakan color([1]*3)alih-alih "snow".
cdlane
@cdlane Saya menghapus pembaruan () pada jawaban kedua (codeblock kedua), saya tidak berpikir itu benar untuk membiarkan itu menjadi jawaban terakhir saya karena kode itu menyebabkan layar berkedip saat itu dan karena tidak menghapus sebelumnya angka membuatnya jelek jika dibiarkan berjalan untuk waktu yang lama. "" "warna ([1] * 3)" "" memang trik yang sangat bagus!
Pinna_be
5

HTML / CSS / JavaScript 207 183 180 161 152 152

Diuji dan berfungsi di peramban Firefox dan Chrome terbaru.

<body id=b onload=setInterval("b.innerHTML=b.bgColor=Date().replace(/.*(..):(..):(..).*/,'#$1$2$3')",0) text=#fff style=position:fixed;top:50%;left:47%>

Demo di Sini

nderscore
sumber
Sejauh yang saya lihat, kode Anda berfungsi dengan baik tanpa <html style = height: 100%> setidaknya di safari / jsfiddle
Pinna_be
@ Pinna_be Tangkapan yang bagus. Saya mencoba beberapa cara yang berbeda untuk memusatkan teks secara vertikal dan yang tersisa dari metode lain.
nderscore
2
Saya tahu saya mengerem beberapa aturan dengan membuat komentar ini, tetapi, sialnya bodytag ini benar-benar indah.
Yakub
1

Memproses, 162 byte

void draw()
{
 int h=hour(),m=minute(),s=second();
 background(color(h,m,s));
 textAlign(CENTER);
 text("#"+(h<10?"0"+h:h)+(m<10?"0"+m:m)+(s<10?"0"+s:s),50,50);
}

Tangkapan layar:

masukkan deskripsi gambar di sini

Saya tidak tahu apakah itu melanggar aturan, tetapi area gambar sebenarnya adalah kotak 100x100px di tengah jendela. Untuk beberapa alasan, Pemrosesan tidak dapat menurunkan skala jendela ke ukuran itu, sehingga menambah margin abu-abu di sekitar area gambar. Berikut ini versi lain tanpa margin abu-abu, tetapi sedikit lebih besar (198 byte) :

void setup()
{
 size(200,200);
}

void draw()
{
 int h=hour(),m=minute(),s=second();
 background(color(h,m,s));
 textAlign(CENTER);
 text("#"+(h<10?"0"+h:h)+(m<10?"0"+m:m)+(s<10?"0"+s:s),100,100);
}
segfaultd
sumber
1
Apakah baris baru dan spasi di awal wajib? Karena Anda bisa mencukur beberapa karakter di sana.
Pinna_be
1

SmileBASIC, 65 byte

T$=TIME$T$[2]="
LOCATE 21,14T$[4]"
GCLS VAL("&H"+T$)?"#";T$EXEC.
12Me21
sumber
0

HTML + Javascript (184)

Ini menggunakan =>notasi yang saat ini hanya didukung di Firefox. Itu tidak menggunakan perpustakaan apa pun.

<body text=white onload='(b=document.body).bgColor=b.innerHTML="#"+[(d=new Date()).getHours(),d.getMinutes(),d.getSeconds()].map(x=>("00"+x).slice(-2)).join("");setTimeout(b.onload)'>

Dengan lekukan:

<body 
 text=white 
 onload='
       (b=document.body).bgColor = 
       b.innerHTML = 
             "#"+[ (d=new Date()).getHours(),
                    d.getMinutes(),
                    d.getSeconds()].map(
                        x=>("00"+x).slice(-2)
                    ).join("");
       setTimeout(b.onload)
'>
marinus
sumber
1
bukankah seharusnya output berada di tengah layar?
Pinna_be
0

C # 357, 325 dengan kecurangan minor

Ya, C # tidak akan memenangkan banyak hadiah codegolf melawan bahasa lain. Tetap menyenangkan!

Menyontek (tidak tepat pusat, dan hanya pusat dengan ukuran bentuk default .NET 4,5 dari 300x300, Mono dapat melakukan hal-hal lucu lainnya):

using System.Windows.Forms;using System.Drawing;class P:Form{static void Main(){new P().ShowDialog();}public P(){var l=new Label(){Top=125,Left=120,ForeColor=Color.White};Controls.Add(l);new Timer(){Enabled=true,Interval=1}.Tick+=(s,e)=>{BackColor=ColorTranslator.FromHtml(l.Text=System.DateTime.Now.ToString("#HHmmss"));};}}

Golf:

using System.Windows.Forms;using System.Drawing;class P:Form{static void Main(){new P().ShowDialog();}public P(){var l=new Label(){Dock=(DockStyle)5,TextAlign=(ContentAlignment)32,ForeColor=Color.White};Controls.Add(l);new Timer(){Enabled=true,Interval=1}.Tick+=(s,e)=>{BackColor=ColorTranslator.FromHtml(l.Text=System.DateTime.Now.ToString("#HHmmss"));};}}

Tidak Disatukan:

using System.Windows.Forms;
using System.Drawing;

class P : Form
{
    static void Main()
    {
        new P().ShowDialog();
    }

    public P()
    {
        var l = new Label() { Dock = (DockStyle)5, TextAlign = (ContentAlignment)32, ForeColor = Color.White };
        Controls.Add(l);
        new Timer() { Enabled = true, Interval = 1 }.Tick += (s, e) =>
        {
            BackColor = ColorTranslator.FromHtml(l.Text = System.DateTime.Now.ToString("#HHmmss"));
        };
    }
}
Bob
sumber
0

Python 3, 122 karakter

from turtle import*
import time
color(1,1,1)
ht()
while 1:_=time.strftime("#%H%M%S");bgcolor(_);write(_,0,"center");undo()

Mengambil keuntungan dari undo()kemampuan kura-kura Python 3 untuk menghapus hanya teks sebelumnya. Tidak menunjukkan kerlip intens kura-kura reset()yang disebabkan oleh itu ulang segala sesuatu tentang kura-kura.

cdlane
sumber