设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1849|回复: 24
打印 上一主题 下一主题

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
403 小时
注册时间
2015-8-30
帖子
395
跳转到指定楼层
1
发表于 2017-2-1 13:35:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 有丘直方 于 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
小仙女一枚~

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2017-2-1 13:46:21 | 只看该作者
本帖最后由 RaidenInfinity 于 2017-2-1 13:54 编辑

RUBY 代码复制
  1. #100改成输出的数量
  2. #输出"<><><><>...
  3. p ((60.chr + 62.chr) * 100)
  4. #输出"["<",">","<",">"...
  5. p ([60.chr,62.chr] * 100)


这到底有啥意义

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

点评

所以说这楼主啊 别整天想着装逼钻牛角尖 得虚心学习干正事去  发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
3
发表于 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方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2017-2-3 18:19:38 | 只看该作者
本帖最后由 taroxd 于 2017-2-3 18:39 编辑

RUBY 代码复制
  1. times = 10000  # 可改为任意数字
  2. begin
  3.   putc 60
  4.   putc 62
  5.   raise
  6. rescue
  7.   retry if (times -= 1) > 0
  8. end


10000 改成任意数字

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

点评

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

5
发表于 2017-2-3 19:36:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3195
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

6
发表于 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

楼主编辑前规则


化简后:

  1. class S
  2. def m
  3. @[email protected]_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

RUBY 代码复制
  1. def m
  2. @n=@n.to_s+60.chr+62.chr
  3. m if @n.size<1000
  4. @n
  5. end
  6. p m

点评

为什么在我的观念里使用主要用于返回字符串的方法都叫显式,,  发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-28 11:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表