问题标签 [code-golf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - 代码高尔夫:七段
挑战
按字符计数的最短代码生成七段显示给定十六进制数的表示形式。
输入
输入仅由数字 [0-9] 和小写和大写的十六进制字符 [a-fA-F] 组成。没有必要处理特殊情况。
输出
输出将是输入的七段表示,使用这些ASCII面:
限制
禁止使用以下内容:eval、exec、system、figlet、toilet 和外部库。
测试用例:
代码计数包括输入/输出(即完整程序)。
word - Code Golf - Word Scrambler
Please answer with the shortest possible source code for a program that converts an arbitrary plaintext to its corresponding ciphertext, following the sample input and output I have given below. Bonus points* for the least CPU time or the least amount of memory used.
Example 1:
Plaintext: The quick brown fox jumps over the lazy dog. Supercalifragilisticexpialidocious!
Ciphertext: eTh kiquc nobrw xfo smjup rvoe eth yalz .odg !uioiapeislgriarpSueclfaiitcxildcos
Example 2:
Plaintext: 123 1234 12345 123456 1234567 12345678 123456789
Ciphertext: 312 4213 53124 642135 7531246 86421357 975312468
Rules:
- Punctuation is defined to be included with the word it is closest to.
- The center of a word is defined to be ceiling((strlen(word)+1)/2).
- Whitespace is ignored (or collapsed).
- Odd words move to the right first. Even words move to the left first.
You can think of it as reading every other character backwards (starting from the end of the word), followed by the remaining characters forwards. Corporation => XoXpXrXtXoX => niaorCoprto.
Thank you to those who pointed out the inconsistency in my description. This has lead many of you down the wrong path, which I apologize for. Rule #4 should clear things up.
*Bonus points will only be awarded if Jeff Atwood decides to do so. Since I haven't checked with him, the chances are slim. Sorry.
language-agnostic - 代码高尔夫:激光
挑战
按字符计数的最短代码输入棋盘的 2D 表示,并根据输入输出“真”或“假” 。
该板由 4 种类型的瓷砖制成:
只有一束激光,只有一个目标。墙壁必须形成一个任意大小的实心矩形,其中激光和目标放置在里面。“房间”内的墙壁是可能的。
激光射线从它的原点发射并传播到它所指向的方向。如果激光射线击中墙壁,它就会停止。如果激光射到镜子上,它会向镜子指向的方向反射 90 度。镜子是双面的,这意味着两面都是“反射性的”,并且可以以两种方式反射光线。如果激光束击中激光 ( ^v><
) 本身,它会被视为一堵墙(激光束会破坏光束器,因此它永远不会击中目标)。
测试用例
代码计数包括输入/输出(即完整程序)。
language-agnostic - 代码高尔夫:蜂巢
挑战
将根据用户输入生成蜂箱的按字符数计算的最短代码。
蜂箱定义为六边形网格,用户输入的大小为两个大于零的正数(无需验证输入)。第一个数字 ( W
) 代表蜂箱的宽度 - 或 - 每行有多少个六边形。第二个数字 ( H
) 表示蜂箱的高度 - 或 - 每列有多少个六边形。
单个六边形由三个 ASCII 字符组成:_
、 、/
和\
三行:
六边形相互补充:蜂箱的第一列将是“低”,第二列将是高 - 交替并以相同的模式重复形成 W 六边形。这将重复 H 次以形成总共 WxH 六边形。
测试用例:
代码计数包括输入/输出(即完整程序)。
language-agnostic - 代码高尔夫:音符
挑战
按字符数计算的最短代码,将根据用户输入输出乐谱。
输入将由一系列字母和数字组成——字母代表音符的名称,数字代表音符的长度。一个注释由 4 个垂直列组成。音符的头部将是大写O
字母,词干(如果存在)将是 3 行高,由管道字符组成|
,而标志将由反斜杠组成\
。
有效的音符长度是无、音符的 1/4、音符的 1/8、音符的 1/16 和音符的 1/32。
注释是工作人员上的位置,根据它们的注释名称:
所有输入都可以假定为有效且没有错误 - 每个音符在一行上用空格分隔,至少有一个有效音符。
测试用例
代码计数包括输入/输出(即完整程序)。
code-golf - 代码高尔夫:黑白棋
好的,这是一个相当复杂的代码高尔夫挑战:实现黑白棋游戏(奥赛罗)。
- 游戏应该显示游戏板的当前状态,并允许玩家在一台计算机上交替输入动作。
- 错误的输入和不允许的动作必须被捕获,但可以默默地忽略。
- 游戏必须在无法进行更多移动时结束(因为棋盘已满或因为没有移动会翻转任何棋子)。
- 然后比赛必须宣布谁赢了,或者是否是平局。
用尽可能少的字符执行此操作。
会话应如下所示:
language-agnostic - 代码高尔夫:玩立方体
挑战
按字符数计算的最短代码,将根据用户输入输出打砖塔系列。
输入将是一系列数字(正数、负数和零),表示当前立方体塔在其索引之后的高度。高度为 0 表示没有塔并且是间隔的。
立方体塔由堆叠的立方体组成。如果当前索引上的输入数字为正,则立方体上升,如果输入数字为负,则立方体下降。使用以下 4 行绘制单个立方体:
立方体是 3D 的——这意味着当两座塔并排放置时它们会相互隐藏,从而产生假透视。
所有输入都可以假定为有效且没有错误 - 每个数字在一行上用空格分隔,至少有一个数字。
测试用例
代码计数包括输入/输出(即完整程序)。
language-agnostic - 代码高尔夫:蜘蛛网
挑战
按字符数计算的最短代码,以输出带有与用户输入相等的环的蜘蛛网。
通过重建中心环开始蜘蛛网:
然后添加与用户输入的金额相等的戒指。\ / |
环是由和组成的“蜘蛛圈”的另一层_
,并包裹着中心圈。
输入始终保证为单个正整数。
测试用例
代码计数包括输入/输出(即完整程序)。
language-agnostic - 代码高尔夫:沙漏
挑战
根据用户输入输出沙漏的字符数最短代码。
输入由两个数字组成:第一个数字是一个大于 1 的整数,表示灯泡的高度,第二个数字是沙漏容量的百分比 (0 - 100)。
沙漏的高度是通过在沙漏的灯泡上添加更多线条来制作的,因此尺寸 2(可接受的最小尺寸)将是:
尺寸 3 将添加更多线条,使灯泡能够适应更多“沙子”。
将使用角色绘制沙子x
。顶部灯泡将包含 N% 的“沙子”,而底部灯泡将包含 (100 - N)% 的沙子,其中 N 是第二个变量。
“容量”通过沙漏包含的空格 ( ) 量来衡量。如果百分比不准确,则应四舍五入。
沙子从外向内抽出,如果百分比结果是偶数,则右侧优先。
测试用例
代码计数包括输入/输出(即完整程序)。