查看: 2221|回复: 24

[随意闲聊] 我们来玩个Ruby的小游戏咋样

[复制链接]
梦石
0
星屑
1944
在线时间
404 小时
注册时间
2015-8-30
回帖
322
发表于 2017-2-1 13:35:56 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 有丘直方 于 2017-2-1 13:50 编辑

不能显式地出现成对的角括号(“<”、“>”)或用到字符串、数组、哈希表;全部代码只能有一个输出方法(p,print,msgbox_p或者msbox)且方法的参数只能有一个;不能显式地使用任何循环(for,while,loop,each等等);代码必须少于100个字符。使最后代码输出尽可能多的成对的角括号(“<”、“>”)。
我能弄出三对,很不容易了好吗

点评

不懂什么算作“显式地使用任何循环”  发表于 2017-2-3 20:39
所以说楼主你那弄出三对的代码在哪?  发表于 2017-2-3 16:29
小仙女一枚~
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2017-2-1 13:46:21 | 显示全部楼层
本帖最后由 RaidenInfinity 于 2017-2-1 13:54 编辑

[pre lang="ruby"]
#100改成输出的数量
#输出"<><><><>...
p ((60.chr + 62.chr) * 100)
#输出"["<",">","<",">"...
p ([60.chr,62.chr] * 100)
[/pre]

这到底有啥意义

据说我发这回复之后楼主才编辑帖子加了“用到字符串、数组、哈希表”这一段。

点评

所以说这楼主啊 别整天想着装逼钻牛角尖 得虚心学习干正事去  发表于 2017-2-3 16:15
chr这东西本身就生成了字符串 然后to_a数组啊  发表于 2017-2-3 16:14
忘了"C*"也是字符串,应该改成67.chr * 2比较好==  发表于 2017-2-3 16:11
p (60..62).to_a.delete_if{|i|i==61}.pack("C*") * 100  发表于 2017-2-3 16:09
感觉这个已经是不钻牛角尖的最简解了。  发表于 2017-2-1 19:56
回复

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2017-2-3 16:27:21 | 显示全部楼层
用printf应该没问题吧,规则里没写一定得用ruby啊,
如果c不行的话我就改用羊驼语⇁_⇁
  1. #include <stdio.h>
  2. int main(void) {
  3.           long long x = 0x3E3C3E3C3E3C;
  4.           printf(&x);
  5.         return 0;
  6. }
复制代码


羊驼的小名竟然被屏蔽了,我汗

点评

"Ruby的小游戏"  发表于 2017-2-5 12:20
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2017-2-3 18:19:38 | 显示全部楼层
本帖最后由 taroxd 于 2017-2-3 18:39 编辑

[pre lang="ruby"]
times = 10000  # 可改为任意数字
begin
  putc 60
  putc 62
  raise
rescue
  retry if (times -= 1) > 0
end
[/pre]

10000 改成任意数字

P.S. 在我回复的时刻,帖子的内容是
不能显式地出现成对的角括号(“<”、“>”)或用到字符串、数组、哈希表;全部代码只能有一个输出方法(p,print,msgbox_p或者msbox)且方法的参数只能有一个;不能显式地使用任何循环(for,while,loop,each等等);代码必须少于100个字符。使最后代码输出尽可能多的成对的角括号(“<”、“>”)。
我能弄出三对,很不容易了好吗

点评

这让我突然想起了callcc  发表于 2017-2-4 19:35

评分

参与人数 1星屑 +1 收起 理由
余烬之中 + 1 居然这么多人回复

查看全部评分

回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2017-2-3 19:36:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2017-2-3 20:57:38 | 显示全部楼层
本帖最后由 hys111111 于 2017-2-4 09:18 编辑
  1. class Scene_Title
  2.   attr_reader :n
  3.   def main
  4.     @n += 60.chr + 62.chr rescue @n = ""
  5.     main if @n.size < 1000
  6.   end
  7. end
  8. begin
  9.   $scene = Scene_Title.new
  10.   $scene.main
  11.   p $scene.n
  12. end
复制代码


很老土的办法,在XP里直接改Main和Scene_Title

楼主编辑前规则不能显式地出现成对的角括号(“<”、“>”)或用到字符串、数组、哈希表;全部代码只能有一个输出方法(p,print,msgbox_p或者msbox)且方法的参数只能有一个;不能显式地使用任何循环(for,while,loop,each等等);代码必须少于100个字符。使最后代码输出尽可能多的成对的角括号(“<”、“>”)。
我能弄出三对,很不容易了好吗


化简后:

  1. class S
  2. def m
  3. @n=@n.to_s+60.chr+62.chr
  4. m if @n.size<1000
  5. @n
  6. end
  7. end
  8. s=S.new
  9. p s.m
复制代码


当前长度: 97 字节,系统限制: 10 到 1000000 字节。

最后结果:
不过缺点是0太多的话会发生SystemStackError
XP下测试建议加一行Graphics.update

[pre lang="ruby"]def m
@n=@n.to_s+60.chr+62.chr
m if @n.size<1000
@n
end
p m[/pre]

点评

为什么在我的观念里使用主要用于返回字符串的方法都叫显式,,  发表于 2017-2-5 12:23
那也太简单了 puts (60.chr + 62.chr) * 10000  发表于 2017-2-4 13:31
显式地(我觉得仅仅是不能出现""而已)  发表于 2017-2-4 11:12
to_s, chr 和 "" 都用到了字符串吧  发表于 2017-2-4 10:29
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部