Relógio Hexagonal Minimalista


14

Seu desafio é criar um relógio que exiba a hora como um número hexadecimal e a cor do plano de fundo como o código de cor hexadecimal da hora.

Requisitos: Sem entrada. No centro da sua saída, você deve exibir o sinal numérico e a hora atual no formato de 24 horas como "#hhmmss". O programa deve atualizar para o horário atual pelo menos uma vez a cada segundo. O texto deve estar centralizado e branco (ou uma cor clara que se destaque). O plano de fundo deve ser inteiramente da cor do código hexadecimal. O código mais curto vence, mas as respostas criativas são incentivadas.

Exemplo ao vivo . Ideia de r / InternetIsBeautiful.


Eu gostei da idéia, mas seria melhor como um concurso de popularidade imo
William Barbosa

8
@WilliamBarbosa Acredito que o resultado seja simples demais para que um concurso de popularidade seja útil.
QWR

Você pode salientar que a postagem do IIB é uma postagem de x de / r / minimalism. Mas heh.
cjfaure

Respostas:


1

python3 (142) ou (123 com cintilação)

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()

o uso de tartarugas, 142 bytes, provavelmente não será o mais curto, mas eu simplesmente queria usar o jogo com tartarugas novamente.

Este exemplo atualiza a tela com bastante frequência e faz o que é solicitado, mas não é bonito, pois liga e desliga. Então são apenas 123 bytes. (não uma qualidade especificada)

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, por causa do tempo 1, eu recomendo executá-lo a partir do terminal. Como pode ser bastante difícil fechar: D (você precisará de ctrl + c)


1
Você pode reduzir a contagem de caracteres combinando todas as linhas nos loops while usando ponto e vírgula.
Isaacg

@isaacg obrigado, eu adaptei.
Pinna_be

1
Você pode reduzir a contagem de caracteres em 9 removendo a chamada final para update()as bgcolor()chamadas update()(ignorando a configuração do rastreador). Você pode salvar outro personagem usando em color([1]*3)vez de "snow".
Cdlane #

@cdlane Eu removi a atualização () na segunda resposta (segundo código de bloqueio), não achei correto deixar essa a minha resposta final, pois esse código causava uma tela tremida na época e porque não remove a anterior números tornando-o feio se deixarmos correr por um longo tempo. a cor "" "([1] * 3)" "" é um truque muito bacana!
31418 Pinna_be

5

HTML / CSS / JavaScript 207 183 180 161 152

Testado e funcionando nos navegadores Firefox e Chrome mais recentes.

<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 Here


tanto quanto eu ver, o código funciona perfeitamente sem a <html style = height: 100%>, pelo menos em safari / jsFiddle
Pinna_be

@Pinna_be Good catch. Eu estava tentando algumas maneiras diferentes de centralizar verticalmente o texto e isso foi deixado de outro método.
Ntscore

2
Sei que estou quebrando algumas regras ao fazer esse comentário, mas, caramba, essa bodytag é pura beleza.
22614 Jacob

1

Processando, 162 bytes

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);
}

Captura de tela:

insira a descrição da imagem aqui

Não sei se é contra as regras, mas a área de desenho real é o quadrado de 100x100px no centro da janela. Por algum motivo, o processamento não pode reduzir a janela para esse tamanho, adicionando margens cinzas ao redor da área de desenho. Aqui está outra versão sem as margens cinza, mas um pouco maior (198 bytes) :

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);
}

1
as novas linhas e os espaços no início são obrigatórios? Porque você pode raspar alguns personagens por lá.
precisa saber é o seguinte

1

SmileBASIC, 65 bytes

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

0

HTML + Javascript (184)

Isso usa a =>notação atualmente suportada apenas no Firefox. Ele não usa nenhuma biblioteca.

<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)'>

Com recuo:

<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)
'>

1
a saída não deveria estar no centro da tela?
Pinna_be

0

C # 357, 325 com trapaça menor

Sim, o C # não vai ganhar muitos prêmios de codegolf contra outros idiomas. Ainda assim, divertido!

Trapaça (não exatamente o centro e o centro do tamanho de formulário padrão do .NET 4.5 de 300 x 300, o Mono pode fazer outras coisas engraçadas):

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"));};}}

Golfe:

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"));};}}

Ungolfed:

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"));
        };
    }
}

0

Python 3, 122 caracteres

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

Aproveita a undo()capacidade da tartaruga Python 3 para limpar apenas o texto anterior. Não exibe o intenso tremor da tartaruga reset()causado por ela redefinir tudo sobre a tartaruga.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.