小编Lir*_*una的帖子

Code Golf:激光

挑战

按字符计数的最短代码输入板的2D表示,并根据输入输出"true"或"false" .

该板由4种类型的瓷砖制成:

 # - A solid wall
 x - The target the laser has to hit
 / or \ - Mirrors pointing to a direction (depends on laser direction)
 v, ^, > or < - The laser pointing to a direction (down, up, right and left respectively)
Run Code Online (Sandbox Code Playgroud)

只有一个激光器,只有一个目标.墙必须形成任何大小的实心矩形,激光和目标放在里面."房间"内的墙壁是可能的.

激光射击并从其原点移动到它指向的方向.如果激光射到墙上,它就会停止.如果激光射到镜子上,它会反射到镜子指向的方向90度.镜子是双面的,这意味着两面都是"反光的"并且可以以两种方式反射光线.如果激光射击激光(^v><)本身,则将其视为墙壁(激光束会破坏投影仪,因此它永远不会击中目标).

测试用例

Input:
    ##########
    #   / \  #
    #        #
    #   \   x#
    # >   /  #
    ########## 
Output:
    true

Input:
    ##########
    # …

language-agnostic code-golf rosetta-stone

152
推荐指数
21
解决办法
1万
查看次数

Code Golf:钢琴

挑战

按字符计数的最短代码从给定长度的输入音符开始输出钢琴键盘的一部分.

输入将由一个音符([ACDFG]#|[A-G])组成,用于开始打印键盘,一个正数表示要打印的键的长度,包括第一个音符.

第一个键应该完整打印 - 如果它有一个左锐键,它将被剪切,相同的开始键是锋利的,左键也将被剪切.

不计算夏普键,只计算白键.

测试用例

Input
    C 14
Output
    |   ###  ###   |   ###  ###  ###   |   ###  ###   |   ###  ###  ###   |
    |   ###  ###   |   ###  ###  ###   |   ###  ###   |   ###  ###  ###   |
    |   ###  ###   |   ###  ###  ###   |   ###  ###   |   ###  ###  ###   |
    |   ###  ###   |   ###  ###  ###   |   ###  ###   |   ###  ###  ###   |
    |   ###  ###   |   ###  ### …
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf rosetta-stone

88
推荐指数
16
解决办法
6170
查看次数

反射如何不会导致代码味道?

我来自低级语言--C++是我编程的最高级别.

最近我遇到了Reflection,我无法理解如何在没有代码味道的情况下使用它.

在我看来,在运行期间检查类/方法/函数的想法指出了设计中的一个缺陷 - 我认为反射(试图)解决的大多数问题可以与多态性或正确使用继承一起使用.

我错了吗?我是否误解了反思的概念和效用?

我正在寻找一个很好的解释,说明何时使用Reflection,其他解决方案将失败或实现过于繁琐以及何时不使用它.

请指教这个低级别的笨蛋.

reflection

63
推荐指数
5
解决办法
3776
查看次数

Code Golf:玩多维数据集

挑战

按字符数最短的代码,根据用户输入输出玩砖塔系列.

输入将是一系列数字(正数,负数和零),表示当前立方体塔在其索引之后的高度.高度为0表示没有塔并且间隔开.

立方体塔由堆积的立方体组成.如果当前索引上的输入数字为正,则立方体会上升,如果输入数字为负数,则立方体会下降.使用以下4行绘制单个立方体:

   __
 /__ /|
|   | |
|___|/

立方体是3D - 这意味着当两个塔彼此相邻放置时它们彼此隐藏,产生假视角.

可以假设所有输入都是有效且没有错误 - 每个数字在一行上用空格分隔,至少有一个数字.

测试用例

Input:
    2 -3 -2 1 2 -1
Output:
       __              __
     /__ /|          /__ /|
    |   | |        _|   | |
    |___|/|      /__|___|/|
    |   | |__  _|   |   | |__
    |___|/__ /__|___|___|/__ /|
        |   |   | |     |   | |
        |___|___|/|     |___|/
        |   |   | |
        |___|___|/
        |   | |
        |___|/

Input:
    1 2 3 4 -2 4 3 2 1
Output:
                   __ …

language-agnostic code-golf rosetta-stone

61
推荐指数
7
解决办法
3386
查看次数

将字符串转换为摩尔斯电码

挑战

按字符数排序的最短代码,它将仅使用字母字符(大写和小写),数字,逗号,句点和问号输入字符串,并返回摩尔斯电码中字符串的表示形式.摩尔斯电码代码输出应包括一个短音(-ASCII 0x2D)用于长音(AKA'dah')和一个点(.,ASCII 0x2E)用于短蜂鸣音(AKA'dit').

每个字母应用空格(' 'ASCII 0x20)分隔,每个字应用正斜杠(/ASCII 0x2F)分隔.

摩尔斯电码表:

替代文字http://liranuna.com/junk/morse.gif

测试用例:

Input:
    Hello world

Output:
    .... . .-.. .-.. --- / .-- --- .-. .-.. -..
Run Code Online (Sandbox Code Playgroud)
Input:
    Hello, Stackoverflow.

Output:
    .... . .-.. .-.. --- --..-- / ... - .- -.-. -.- --- ...- . .-. ..-. .-.. --- .-- .-.-.-
Run Code Online (Sandbox Code Playgroud)

代码计数包括输入/​​输出(即完整程序).

language-agnostic code-golf

57
推荐指数
9
解决办法
2万
查看次数

Code Golf:自来水

挑战

按字符排序的最短代码,用于从输入中识别和标记土地的ASCII表示中的水凹陷.

输入将是景观的ASCII表示,具有丘陵,山谷和平坦的土地.该程序应模拟景观如果被淹没将会是什么样子 - 用水填充所有山谷(角色x).

景观将始终以角色开始和停止,_并且至少2个字符长,输入最短__.

山被定义为加高,不应该用水填充:

  __
_/  \_
Run Code Online (Sandbox Code Playgroud)

山谷被定义为凹陷,将被水填满,直到遇到平地:

_    _
 \__/
Run Code Online (Sandbox Code Playgroud)

可以假定输入是干净的,并且仅由字符space(), newline (\n),下划线(_)以及前向和后向斜杠(/\)组成.输入可以看作是一条连续线,以及包含模糊线输入的任何输入,如_/_

_   _
 \_/
 / \
Run Code Online (Sandbox Code Playgroud)

被认为无效.

关于水下洞穴,如果洞穴水位高于水位,则应保持水位.

测试用例

Input:
    __/\__
          \__              
             \       ___       ___________
             /      /   \_     \_
             \_____/      \__  _/
                             \/
Output:

    __/\__
          \__              
             \       ___       ___________
             /xxxxxx/   \xxxxxx\_
             \xxxxx/      \xxxxx/
                             \/
Run Code Online (Sandbox Code Playgroud)
Input:
                                         __       ___
                                        /  \_____/
                                       / _______
                         ________     /  \     /
                   _____/        \ …
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf rosetta-stone

53
推荐指数
4
解决办法
3156
查看次数

Javascript:上传文件...没有文件

我试图伪造文件上传而不实际使用用户的文件输入.文件的内容将从字符串动态生成.

这可能吗?有没有人曾经这样做过?有可用的例子/理论吗?

为了澄清,我知道如何使用隐藏的iframe和朋友使用AJAX技术上传文件 - 问题是上传不在表单中的文件.

我正在使用ExtJS,但是由于ExtJS可以插入它(ext-jquery-base),因此jQuery也是可行的.

javascript extjs file-upload

52
推荐指数
5
解决办法
4万
查看次数

Code Golf:沙漏

挑战

按字符计算的最短代码根据用户输入输出沙漏.

输入由两个数字组成:第一个数字是大于1的整数,表示灯泡的高度,第二个数字是沙漏容量的百分比(0 - 100).

沙漏的高度是通过向沙漏的灯泡添加更多线条来实现的,因此尺寸2(最小可接受尺寸)将是:

_____
\   /
 \ /
 / \
/___\
Run Code Online (Sandbox Code Playgroud)

尺寸3将增加更多的线条,使灯泡能够适应更多的"沙子".

将使用角色绘制沙子x.顶部灯泡将包含N%的"沙子",而底部灯泡将包含(100 - N)%的沙子,其中N是第二个变量.

"容量"是通过沙漏所包含的空格()来衡量的.如果百分比不准确,则应将其四舍五入.

沙子是从外面抽出的,如果百分比结果是偶数,则给出右侧优先权.

测试用例

Input:
    3 71%
Output:
    _______
    \x  xx/
     \xxx/
      \x/
      / \
     /   \
    /__xx_\
Run Code Online (Sandbox Code Playgroud)
Input:
    5 52%
Output:
    ___________
    \         /
     \xx   xx/
      \xxxxx/
       \xxx/
        \x/
        / \
       /   \
      /     \
     /  xxx  \
    /xxxxxxxxx\
Run Code Online (Sandbox Code Playgroud)
Input:
    6 75%
Output:
     _____________
     \x         x/
      \xxxxxxxxx/
       \xxxxxxx/
        \xxxxx/
         \xxx/
          \x/
          / \
         /   \
        /     \
       /       \ …
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf rosetta-stone

51
推荐指数
6
解决办法
4192
查看次数

Code Golf:浪潮

挑战

按字符计数的最短代码,用于从输入字符串生成波形.

通过提升(第1行)较高字符并使(第1行)降低较低字符来生成波.相等的字符保持在同一行(没有提升或降级).

输入仅由小写字符和数字组成,字母被认为高于数字.

测试用例:

Input:
    1234567890qwertyuiopasdfghjklzxcvbnm

Output:
                                 z
                                l x v n
                               k   c b m
                              j
                             h
                            g
                   y   p s f
                  t u o a d
               w r   i
            9 q e
           8 0
          7
         6
        5
       4
      3
     2
    1

Input:
    31415926535897932384626433832795028841971693993751058209749445923078164062862

Output:
                9 9   8 6 6
         9 6   8 7 3 3 4 2 4  8   9   88
    3 4 5 2 5 5     2       33 3 7 5 2  4 9   9 99 …
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf rosetta-stone

41
推荐指数
11
解决办法
6203
查看次数

更改模块目录后的Python酸洗

我最近改变了程序的目录布局:之前,我把所有模块放在"main"文件夹中.现在,我已将它们移动到以程序命名的目录中,并放置在__init__.py那里制作包.

现在我在我的主目录中有一个.py文件,用于启动我的程序,这个文件更整洁.

无论如何,尝试加载以前版本的程序中的pickle文件是失败的.我得到了,"ImportError:没有模块命名工具" - 我想这是因为我的模块以前在主文件夹中,现在它在whyteboard.tools中,而不仅仅是简单的工具.但是,在工具模块中导入的代码与它位于同一目录中,因此我怀疑是否需要指定包.

所以,我的程序目录看起来像这样:

whyteboard-0.39.4

-->whyteboard.py

-->README.txt

-->CHANGELOG.txt

---->whyteboard/

---->whyteboard/__init__.py

---->whyteboard/gui.py

---->whyteboard/tools.py

whyteboard.py从whyteboard/gui.py启动一个代码块,启动GUI.在目录重新组织之前,肯定没有发生这种酸洗问题.

python pickle

40
推荐指数
5
解决办法
2万
查看次数