首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >牧羊人这样说

牧羊人这样说
EN

Code Golf用户
提问于 2016-10-01 14:33:26
回答 3查看 1.4K关注 0票数 23

我累了,但我好像睡不着。帮我数羊。

给定输入N(正整数),让N只羊跳过ascii栅栏,如下面的示例所示。只应同时显示一个帧:

代码语言:javascript
复制
o |-|
──|-|──  0
代码语言:javascript
复制
 o|-|
──|-|──  0
代码语言:javascript
复制
   o
  |-|
──|-|──  0
代码语言:javascript
复制
  |-|o
──|-|──  0
代码语言:javascript
复制
  |-| o
──|-|──  0
代码语言:javascript
复制
o |-|
──|-|──  1
代码语言:javascript
复制
 o|-|
──|-|──  1
代码语言:javascript
复制
   o
  |-|
──|-|──  1

计数应保持在“地面”的右下角。允许尾随和前导空格和换行符。如果您选择的语言难以清除每个帧的屏幕,您可以添加足够的新行来清除屏幕--请在回答中说明为此添加了多少行。当N‘The羊在第五层地板上时,程序应该终止。

明天我需要早起,所以以字节为单位的最短代码将获胜。请提交一个功能或完整的程序。适用标准漏洞。

EN

回答 3

Code Golf用户

发布于 2016-10-01 16:21:54

C#,234 Bytes

代码语言:javascript
复制
using C=System.Console;class P{static void Main(string[]a){for(int n=0;n-1+""!=a[0];++n){foreach(int p in new[]{5,6,3,10,11}){C.Clear();C.Write("    \n  |-|  \n──|-|── ".Remove(p,1).Insert(p,"o")+n);for(var w=3e7;w>0;--w);}}}}
票数 4
EN

Code Golf用户

发布于 2016-10-01 19:30:11

Ruby,83字节

代码语言:javascript
复制
->n{(n*5).times{|i|A2gt;<<"   c
  |-|  
ab|-|de  #{i/5}
".tr('abcde',' '*(i%5)+'o ')}}

指纹到标准。以换行符分隔的输出。将屏幕高度降低到3,一次只能看到一幅图像。

票数 4
EN

Code Golf用户

发布于 2016-10-02 05:56:27

QBasic,110个字节

代码语言:javascript
复制
INPUT n
FOR i=0TO 5*n-1
CLS
?
?"  |-|"
?"--|-|-- ";i\5
x=i MOD 5
LOCATE(x=2)+2,1+x-(x>1)+x\3
?"o"
SLEEP 1
NEXT

5*n蜱上循环。在每个滴答处,清除屏幕,打印栅格和羊数,然后使用LOCATE在适当的位置打印ox是0到4之间的位置代码:

  • 行:(x=2)+2
    • 如果x=2为真,则-1+2 = 1
    • 如果x=2为false,则0+2 = 2

  • 专栏:1+x-(x>1)+x\3
    • 如果x01,则x>1为false,而x\301+x-0+0 = 12
    • 如果x2,则x>1为true,x\301+x-(-1)+0 = 4
    • 如果x34,则x>1为真,x\311+x-(-1)+1 = 67

最后,SLEEP为1秒并循环。如果您不介意在每个帧上点击enter,我可以通过删除SLEEP的参数来减少两个字节。

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

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

复制
相关文章

相似问题

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