首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >极简六角钟

极简六角钟
EN

Code Golf用户
提问于 2014-06-20 21:16:24
回答 4查看 1K关注 0票数 14

您的挑战是创建一个时钟,该时钟将时间显示为十六进制数字,而背景色则显示时间的十六进制颜色代码。

要求:无输入。在输出的中心,您应该以"#hhmmss“的形式以24小时格式显示数字符号和当前时间。程序应该至少每秒钟更新一次当前时间。文本必须居中和白色(或浅色突出)。背景应该完全是十六进制代码的颜色。最短的代码获胜,但鼓励创造性的答案。

实例化。从R/Internetis美妙的想法。

EN

回答 4

Code Golf用户

发布于 2014-06-21 00:48:25

处理,162个字节

代码语言:javascript
复制
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);
}

截图:

我不知道这是否违反了规则,但实际的绘图区域是窗口中央的100x100px正方形。由于某些原因,处理不能将窗口缩小到该大小,因此它在绘图区域周围添加了灰色边距。下面是另一个没有灰色边距的版本,但稍微大一点(198个字节):

代码语言:javascript
复制
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
EN

Code Golf用户

发布于 2014-06-20 22:31:17

HTML + Javascript (184)

这使用了目前只支持火狐的=>表示法。它不使用任何库。

代码语言:javascript
复制
<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)'>

有凹痕的:

代码语言:javascript
复制
<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)
'>
票数 0
EN

Code Golf用户

发布于 2014-06-21 09:15:54

C# 357,325与小作弊

是的,C#不可能赢得很多针对其他语言的合作伙伴奖。尽管如此,有趣!

作弊(不完全是中间,只有.NET 4.5's默认表格大小为300x300的中心,Mono可以做其他有趣的事情):

代码语言:javascript
复制
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"));};}}

高尔夫球:

代码语言:javascript
复制
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"));};}}

未高尔夫球:

代码语言:javascript
复制
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
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/32134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档