Locked. This question and its answers are locked,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。








这是受此线程启发/从中获得的:http://www.allegro.cc/forums/thread/603383

问题

假设用户为您提供了从1到7的数字输入。输入应从控制台获取,参数不太理想。

输入为1时,打印以下内容:
***********
 *********
  *******
   *****
    ***
     *

大于1的值应生成模式的倍数,以上面的1结尾,但要对称堆叠。例如,3应该打印以下内容:
*********** *********** ***********
 *********   *********   *********
  *******     *******     *******
   *****       *****       *****
    ***         ***         ***
     *           *           *
      *********** ***********
       *********   *********
        *******     *******
         *****       *****
          ***         ***
           *           *
            ***********
             *********
              *******
               *****
                ***
                 *

如果您也打印反面则加分。
      *********** ***********
       *********   *********
        *******     *******
         *****       *****
          ***         ***
           *           *
            ***********
             *********
              *******
               *****
                ***
                 *
                 *
                ***
               *****
              *******
             *********
            ***********
           *           *
          ***         ***
         *****       *****
        *******     *******
       *********   *********
      *********** ***********

我们是否可以尝试将其保持为每种语言的答案,我们都会不断提高?

最佳答案

汇编程序,已组装165个字节

生成说明

  • here下载A86
  • 在DOS搜索路径
  • 中添加对A86可执行文件的引用
  • 将下面的代码粘贴到文本文件中(例如:triforce.asm)
  • 调用汇编程序:a86 triforce.asm
  • 这将创建一个名为triforce.com
  • 的.COM文件
  • 输入triforce以运行

  • 这是使用标准WinXP DOS框(开始->程序->附件->命令提示符)开发的。它应与其他DOS仿真器一起使用。

    使用A86进行组装,并且需要WinXP DOS框才能运行其生成的.COM文件。按“q”退出,按1-7键绘制输出。
      l20:mov ah,7
          int 21h
          cmp al,'q'
          je ret
          sub al,'0'
          cmp al,1
          jb l20
          cmp al,7
          ja l20
          mov [l0-1],al
          mov byte ptr [l7+2],6
          jmp $+2
          mov ah,2
          mov ch,0
          mov bh,3
       l0:mov bl,1
       l1:mov dh,0
       l3:cmp dh,ch
          je l2
          mov dl,32
          int 21h
          inc dh
          jmp l3
          ret
       l2:mov dh,bh
       l6:mov cl,12
       l5:mov dl,42
          cmp cl,bl
          ja l4
          mov dl,32
          cmp dh,1
          je l21
       l4:int 21h
          dec cl
          jnz l5
      l21:dec dh
          jnz l6
          mov dl,10
          int 21h
          mov dl,13
          int 21h
      l10:inc ch
       l9:add bl,2
       l7:cmp ch,6
          jne l1
      l13:add byte ptr [l7+2],6
      l11:dec bh
      l12:cmp bh,0
          jne l0
          xor byte ptr [l0+1],10
          xor byte ptr [l9+1],40
          xor byte ptr [l10+1],8
          xor byte ptr [l13+1],40
          sub byte ptr [l7+2],12
          mov dh,[l0-1]
          inc dh
          xor [l12+2],dh
          xor byte ptr [l11+1],8
          xor byte ptr [l1+1],1
          inc bh
          cmp byte ptr [l0+1],11
          je l0
          jmp l20
    

    它使用大量的自我修改代码来执行triforce及其镜像,甚至修改了自我修改代码。

    关于language-agnostic - 代码高尔夫:Triforce,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2406780/

    10-13 02:11