首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >渲染“数字时钟样式”数字

渲染“数字时钟样式”数字
EN

Code Golf用户
提问于 2011-02-17 19:25:07
回答 18查看 5.9K关注 0票数 34

编写最短的程序,该程序将以一串数字(不超过20个长度)作为输入,并使用标准的数字时钟样式数字显示输出。例如,对于输入81,带有ascii输出的解决方案将提供:

代码语言:javascript
复制
 _
|_|  |
|_|  |

图形输出也是可以接受的,如果有帮助的话。

EN

回答 18

Code Golf用户

回答已采纳

发布于 2012-12-04 15:30:16

APL (Dyalog) (45)

代码语言:javascript
复制
{3 3⍴' _|'[1+⍵⊤⍨9⍴3]}¨⎕UCS'ા8धगɯે૙ࣃଏ૽'[1+⍎¨⍞]

字符串ા8धगɯે૙ࣃଏ૽是unicode字符2750 56 2343 2327 623 2759 2777 2243 2831 2813 (但是,您应该能够复制和粘贴它)。他们对数字进行编码。程序从键盘上读取一行。

解释:

  • 1+⍎¨⍞:从键盘上读取一行,将每个字符解析为数字,然后向每个数字中添加1(默认情况下,APL数组基于1)。
  • ⎕UCS'ા8धगɯે૙ࣃଏ૽'[.]:选择属于您输入的数字数字的字符,并查找Unicode值。
  • {.:对于这些值,请执行:
  • 1+⍵⊤⍨9⍴3:从以基-3表示的值中获取前9个基-3位数字,并添加1(因为数组是基于ar1的)。
  • ' _|'[.]:根据这些数字选择空格、水平线或垂直线
  • 3 3⍴:格式为3乘3方框.
票数 7
EN

Code Golf用户

发布于 2011-05-07 05:44:39

功能

不是一种适合打高尔夫球的语言。但是无论如何,我试图尽可能地保持代码的大小--这是一个与“常用”语言完全不同的挑战。这是1555个字符或3110字节(如果编码为UTF-16;UTF-8更大)。

这是程序运行的屏幕截图。它真的很管用:

由于额外的行距,在StackExchange中这看起来很难看,请考虑在浏览器的JavaScript控制台中运行以下代码来修复这个问题:$('pre').css('line-height',1)

代码语言:javascript
复制
     ╓─╖ ╔╗┌─╖   ┌─╖
     ║ʜ║ ║╟┤↔╟┐ ┌┤‼╟┐
     ╙┬╜ ╚╝╘═╝│ │╘╤╝│
╔═╗  ┌┴────┐  │┌┴╖ ┌┴╖
║0║ ┌┴─┐  ┌┴─┐└┤ʜ╟─┤·╟┐
╚╤╝┌┴╖┌┴╖┌┴╖┌┴╖╘╤╝ ╘╤╝│
┌┘┌┤·╟┤ɦ╟┤·╟┤?╟ │  ┌┴╖│
│ │╘╤╝╘╤╝╘╤╝╘╤╝ └──┤‼╟┘
│┌┴╖│ ┌┴╖┌┘╔═╧╗    ╘═╝
└┤?╟┘┌┤?╟┘┌╢10║    ┌─────────┐
 ╘╤╝ │╘╤╝┌┘╚══╝ ┌─┬┘╔══╗┌──╖┌┴╖ ╓─╖
  ┘  └───┘╔════╗│┌┴┐║21╟┤>>╟┤·╟┐║ɦ║
╔════════╗║1005╟┘└┬┘╚══╝╘═╤╝╘╤╝│╙┬╜        ┌─┐
║14073768║╚════╝ ┌┴╖ ┌─╖ ┌┴╖┌┴╖└─┴─────────┘┌┴╖
║7584800 ╟───────┤?╟─┤‼╟─┤ʜ╟┤·╟─────────────┤·╟┐╔═══════╗╔══╗
╚════════╝       ╘╤╝ ╘╤╝ ╘╤╝╘╤╝    ╔══╗┌─╖┌┐╘╤╝│║2097151║║21╟┐
 ╔═══════════════╗│   ┘   │  │     ║48╟┤−╟┤├─┤┌┘╚══╤════╝╚══╝│
 ║140737555464224╟┘  ┌────┘┌┬┘     ╚══╝╘╤╝└┘┌┘│╓─╖ │┌┐┌─╖┌─╖┌┴─╖
 ╚═══════════════╝   │ ┌───┘└─────────┐┌┴─╖ │┌┘║↔║ ├┤├┤‼╟┤↔╟┤>>║
┌────────────┐┌────┐┌┴╖│┌────────────┐├┤<<║ ││ ╙┬╜┌┘└┘╘╤╝╘═╝╘╤═╝
│   ╔══╗╔═══╗├┘╓─╖ └┤·╟┘│   ╔══╗╔═══╗├┘╘╤═╝ │└─┐└─┤╔═╗┌┴╖ ┌──┘
│   ║95║║892║│┌╢‡╟┐ ╘╤╝ │   ║95║║877║│ ┌┘╔══╧═╗│  │║0╟┤?╟┬┘
│   ╚═╤╝╚═╤═╝││╙─╜│  │  │   ╚═╤╝╚═╤═╝│╔╧╗║2097║│  │╚═╝╘╤╝│
│╔══╗┌┴╖┌┐│  ││┌─╖│ ┌┴╖ │╔══╗┌┴╖┌┐│  │║1║║151 ║│  └──────┘
│║32╟┤?╟┤├┤  │└┤‼╟┘┌┤‡║ │║32╟┤?╟┤├┤  │╚═╝╚════╝│
│╚══╝╘╤╝└┘└──┴┐╘╤╝ │╘╤╝ │╚╤═╝╘╤╝└┘└──┴┐      ┌─┘
│    ┌┴╖     ┌┴╖┌─╖│ │ ┌┴╖│  ┌┴╖     ┌┴╖ ┌─╖┌┴╖
│    │‼╟─────┤·╟┤‼╟┘ │┌┤·╟┘  │‼╟─────┤·╟─┤‼╟┤‡║
└┐┌┐ ╘╤╝     ╘╤╝╘╤╝  ││╘╤╝┌┐ ╘╤╝     ╘╤╝ ╘╤╝╘╤╝
 ├┤├┐┌┴╖╔══╗  └──┐┌┐ │└┐├─┤├┐┌┴╖╔══╗  ├──┐└  │
 │└┘└┤?╟╢32║╔═══╗├┤│┌┴╖││ └┘└┤?╟╢32║╔═╧═╗│┌┐┌┴╖╔══╗
╔╧══╗╘╤╝╚══╝║881╟┘│├┤?╟┘│    ╘╤╝╚══╝║325║└┤├┤?╟╢32║
║927║╔╧══╗  ╚═══╝ └┘╘╤╝╔╧═══╗╔╧══╗  ╚═══╝ └┘╘╤╝╚══╝
╚═══╝║124╟───────────┘ ║1019║║124╟───────────┘
     ╚═══╝             ╚════╝╚═══╝

如果我没有犯一个错误,输出可能会更小;我通过添加一个额外的函数来逆转输入,从而修正了这个错误。否则我可能得重写所有这些。

我还犯了另一个错误(在两个对的调用中交换操作数),这使得有必要声明额外的函数,但是这个函数太小了,因此不添加任何字符!

票数 44
EN

Code Golf用户

发布于 2011-02-18 01:19:17

wxpython,许多字符

代码语言:javascript
复制
import wx, wx.gizmos as g

class T(wx.Frame):
 def __init__(_):
  wx.Frame.__init__(_, None, size = (800, 60))
  l = g.LEDNumberCtrl(_, -1)
  l.Value = raw_input()

class M(wx.App):
 def OnInit(_):
  T().Show()
  return 1

M().MainLoop()

测试

代码语言:javascript
复制
echo -n 81 | python codegolf-997-wx.py

ps:不是一个严肃的条目,但看起来图形输出也是可以接受的,所以我只是尝试了一下:-)

票数 9
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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