我累了,但我好像睡不着。帮我数羊。
给定输入N(正整数),让N只羊跳过ascii栅栏,如下面的示例所示。只应同时显示一个帧:
o |-|
──|-|── 0 o|-|
──|-|── 0 o
|-|
──|-|── 0 |-|o
──|-|── 0 |-| o
──|-|── 0o |-|
──|-|── 1 o|-|
──|-|── 1 o
|-|
──|-|── 1计数应保持在“地面”的右下角。允许尾随和前导空格和换行符。如果您选择的语言难以清除每个帧的屏幕,您可以添加足够的新行来清除屏幕--请在回答中说明为此添加了多少行。当N‘The羊在第五层地板上时,程序应该终止。
明天我需要早起,所以以字节为单位的最短代码将获胜。请提交一个功能或完整的程序。适用标准漏洞。
发布于 2016-10-01 16:21:54
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);}}}}发布于 2016-10-01 19:30:11
->n{(n*5).times{|i|A2gt;<<" c
|-|
ab|-|de #{i/5}
".tr('abcde',' '*(i%5)+'o ')}}指纹到标准。以换行符分隔的输出。将屏幕高度降低到3,一次只能看到一幅图像。
发布于 2016-10-02 05:56:27
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在适当的位置打印o。x是0到4之间的位置代码:
(x=2)+2 x=2为真,则-1+2 = 1x=2为false,则0+2 = 21+x-(x>1)+x\3 x为0或1,则x>1为false,而x\3为0:1+x-0+0 = 1或2x是2,则x>1为true,x\3为0:1+x-(-1)+0 = 4x为3或4,则x>1为真,x\3为1:1+x-(-1)+1 = 6或7最后,SLEEP为1秒并循环。如果您不介意在每个帧上点击enter,我可以通过删除SLEEP的参数来减少两个字节。
https://codegolf.stackexchange.com/questions/95099
复制相似问题