锁定老帖子 主题:玩”Ruby勇士“游戏来学习Ruby
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-11
最后修改:2009-05-14
项目主页:http://github.com/ryanb/ruby-warrior/tree/master git拖下来: git clone git://github.com/ryanb/ruby-warrior.git 也可以直接打开项目主页,点击下载按钮下载解压即可. 这个游戏以一种有趣交互的方式来教你使用Ruby语言和人工智能。 在游戏中你扮演一个勇士去攀登高塔得到顶层的珍贵的红宝石。 在塔中每一层也就是每一关,你需要编写一个Ruby脚本来指导主角如何到达楼梯处然后进入下一关。 这是Ruby勇士,play_turn相当于回合制游戏中的一个合回。 class Player def play_turn(warrior) # your code goes here 代码写在这里 end end 在每一关你必须给足主角战斗的力量,你得考虑主角还有多少生命值,什么时候得休息恢复一下生命值等等。注意:每一个回合里,主角只能有一步操作。 随着一关关的进行,游戏主角操作的能力会越来越多,敌人越来越难,就看你如何编写出漂亮的代码让主角通关啦。 具体玩法: 把项目下载到本地后,直接进入ruby-warrior/bin目录,运行rubywarrior命令就可以开玩了。 系统会提示你是选择入门级别还是高手级别的。输入数字选好后回车,会在当前的ruby-warrior/bin目录下生成一个ruby-warrior/beginner-tower目录(选择入门级别) 第一关会生成一个level-001目录,里面有player.rb和Readme文件,照着README文件来进行没错。 在每一关的目录中把代码编写好后,执行 ./rubywarrior 命令来运行 编写的代码 第一关: 这关很简单,就是要主角直接走到楼梯外就可以了。 class Player def play_turn(warrior) warrior.walk! # 在第一关只有这个行走的方法。 end end 第一关执行过程和结果: 引用 qichunren@qichunren-laptop:~/code/ruby-warrior/bin$ ./rubywarrior
Welcome to Ruby Warrior [1] qichunren - beginner - level 1 - score 0 [2] New Profile Choose profile by typing the number: 1 Starting Level 1 - turn 1 - -------- |@ >| -------- qichunren walks forward - turn 2 - -------- | @ >| -------- qichunren walks forward - turn 3 - -------- | @ >| -------- qichunren walks forward - turn 4 - -------- | @ >| -------- qichunren walks forward - turn 5 - -------- | @ >| -------- qichunren walks forward - turn 6 - -------- | @ >| -------- qichunren walks forward - turn 7 - -------- | @>| -------- qichunren walks forward Success! You have found the stairs. Level Score: 0 Time Bonus: 8 Clear Bonus: 2 Total Score: 10 Would you like to continue on to the next level? [yn] 第二关:这关里有一个敌人,主角得走一下判断一下,如果遇到了敌人就干掉它。 class Player def play_turn(warrior) if warrior.feel.empty? warrior.walk! else warrior.attack! end end end 第二关执行过程和结果: 引用 qichunren@qichunren-laptop:~/code/ruby-warrior/bin$ ./rubywarrior
Welcome to Ruby Warrior [1] qichunren - beginner - level 2 - score 10 [2] New Profile Choose profile by typing the number: 1 Starting Level 2 - turn 1 - -------- |@ s >| -------- qichunren walks forward - turn 2 - -------- | @ s >| -------- qichunren walks forward - turn 3 - -------- | @ s >| -------- qichunren walks forward - turn 4 - -------- | @s >| -------- qichunren attacks Sludge Sludge takes 5 damage, 7 health power left Sludge attacks qichunren qichunren takes 3 damage, 17 health power left - turn 5 - -------- | @s >| -------- qichunren attacks Sludge Sludge takes 5 damage, 2 health power left Sludge attacks qichunren qichunren takes 3 damage, 14 health power left - turn 6 - -------- | @s >| -------- qichunren attacks Sludge Sludge takes 5 damage, -3 health power left Sludge dies qichunren earns 12 points - turn 7 - -------- | @ >| -------- qichunren walks forward - turn 8 - -------- | @ >| -------- qichunren walks forward - turn 9 - -------- | @ >| -------- qichunren walks forward - turn 10 - -------- | @>| -------- qichunren walks forward Success! You have found the stairs. Level Score: 12 Time Bonus: 10 Clear Bonus: 4 Total Score: 36 Would you like to continue on to the next level? [yn] 很好玩的游戏,大家来继续,我这里就不演示下去了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-12
最后修改:2009-05-12
还挺好玩.lz共009关?
--------- 额.看到了原来是新手9关.. |
|
返回顶楼 | |
发表时间:2009-05-12
最近才剛開始學Ruby~
剛試了一下,似乎還挺不錯。 從遊戲中學習這概念真的很棒 不知道其他語言是否有類似這樣的傑作 順帶一提這讓我想到 Randy Pauch創的 Alice http://www.alice.org/ |
|
返回顶楼 | |
发表时间:2009-05-12
先收起来,以后再看
|
|
返回顶楼 | |
发表时间:2009-05-12
刚玩到新手第6关,发现已经写了很多if else,不知道下面编的会不会越来越烂……
|
|
返回顶楼 | |
发表时间:2009-05-12
java飘过。不过还是想去学学ruby。
|
|
返回顶楼 | |
发表时间:2009-05-13
第8关开始可以look,想要写个可处理各种情况的warrior就有点复杂了。
|
|
返回顶楼 | |
发表时间:2009-05-13
额,,,很强大~~~~~~~~不错的游戏,,还可以学习ruby,,哇咔咔
|
|
返回顶楼 | |
发表时间:2009-05-14
好玩。。作者是railscast那位哟
|
|
返回顶楼 | |
发表时间:2009-05-14
貌似可以做成GUI的..
|
|
返回顶楼 | |