Ruby Warrior是一个用Ruby代码控制一个小人打怪升级刷装备的小游戏,可以帮助小伙伴们了解Ruby
传送门
最近正好有同事想了解一下Ruby,就推荐给他们这个小游戏,同时把我的答案也分享一下,大家可以交流一下更漂亮的写法。
# level 1
class Player
def play_turn(warrior)
warrior.walk!
end
end
# level 2
class Player
def play_turn(warrior)
warrior.feel.empty? ? warrior.walk! : warrior.attack!
end
end
# level 3
class Player
def play_turn(warrior)
if warrior.feel.empty?
warrior.health < 10 ? warrior.rest! : warrior.walk!
else
warrior.attack!
end
end
end
# level 4
class Player
def play_turn(warrior)
@health ||= warrior.health
if warrior.feel.empty?
warrior.health < 15 && @health <= warrior.health ? warrior.rest! : warrior.walk!
else
warrior.attack!
end
@health = warrior.health
end
end
# level 5
class Player
def play_turn(warrior)
@health ||= warrior.health
if warrior.feel.empty?
warrior.health < 15 && @health <= warrior.health ? warrior.rest! : warrior.walk!
else
warrior.feel.enemy? ? warrior.attack! : warrior.rescue!
end
@health = warrior.health
end
end
# level 6
class Player
def play_turn(warrior)
@backward = true if @backward.nil?
if @backward
if warrior.feel(:backward).captive?
@backward = false
return warrior.rescue! :backward
else
return warrior.walk! :backward
end
end
@health ||= warrior.health
if warrior.feel.empty?
if warrior.health < 20 && @health <= warrior.health
warrior.rest!
else
direction = warrior.health < 10 ? :backward : :forward
warrior.walk! direction
end
else
warrior.feel.enemy? ? warrior.attack! : warrior.rescue!
end
@health = warrior.health
end
end
# level 7
class Player
def play_turn(warrior)
@health ||= warrior.health
if warrior.feel.empty?
if warrior.health < 20 && @health <= warrior.health
warrior.rest!
else
direction = warrior.health < 10 ? :backward : :forward
warrior.walk! direction
end
else
if warrior.feel.enemy?
warrior.attack!
elsif warrior.feel.wall?
warrior.pivot!
else
warrior.rescue!
end
end
@health = warrior.health
end
end
# level 8
class Player
def play_turn(warrior)
warrior.look.each do |space|
break if space.captive?
return warrior.shoot! if space.enemy?
end
warrior.feel.captive? ? warrior.rescue! : warrior.walk!
end
end
# level 9
class Player
def initialize
@first_turn, @archer_dead, @melee = true, false, false
end
def archer_dead?; @archer_dead; end
def play_turn(warrior)
# Kill archer with hardcode
if @first_turn
@first_turn = false
return warrior.pivot!
end
if !archer_dead?
if warrior.feel.enemy?
@melee = true
return warrior.attack!
else # feel.empty?
if @melee
@archer_dead = true
return warrior.pivot!
else
return warrior.walk!
end
end
end
warrior.look.each do |space|
break if space.captive?
return warrior.shoot! if space.enemy?
end
if warrior.feel.captive?
warrior.rescue!
elsif warrior.feel.wall?
warrior.pivot!
else
warrior.walk!
end
end
end
分享到:
相关推荐
Ruby Warrior 是一个游戏,它能让 Ruby 语言和人工智能以一种很有意思的方式互动。你所扮演的是一个爬上高塔顶层获得 Ruby 宝石的战士。每到一层你都要写下 Ruby 脚本指导战士与敌人战斗,拯救俘虏,获取梯子。你在...
codewarrior破解license
CodeWarrior是一款强大的嵌入式开发工具,由飞思卡尔(现为恩智浦半导体)推出,主要用于微控制器和嵌入式系统的编程与调试。本教程将深入浅出地介绍CodeWarrior的基础知识,帮助初学者快速掌握其使用方法。 一、...
1.IDE.exe是CodeWarrior v5.1 special的主程序,进行了图标替换 2.MyCodeWarriorComponent是一些调试时很有用的组件,v5.1所没有的组件在该目录下 3.license.dat是special版本授权文件,v4.6,v5.0,v5.1下都可以用 ...
本手册详细介绍了利用Freescale CodeWarrior 10.6 IDE 处理器专家系统(Processor Expert)快速建立KEA工程和调试的步骤,以及该IDE常用的编程及调试技巧,旨在帮助用户快速熟悉和掌握CodeWarrior 10.6的使用,利用...
codewarrior安装需要许可文件,中间可能会遇到一些麻烦,此文件说明安装codewarrior后配置机器设置
标题《codewarrior 10.7 import legacy project.pdf》所涉及的知识点主要是关于在Eclipse集成开发环境(IDE)中使用基于Eclipse的CodeWarrior 10.x版本导入旧版本CodeWarrior开发的项目。文档主要针对的是基于Power ...
《CodeWarrior 开发环境许可协议详解》 CodeWarrior是一款由Metrowerks公司开发的集成开发环境(IDE),主要用于编写嵌入式系统、微控制器以及游戏开发等领域的程序。在使用CodeWarrior时,我们需要关注的一个重要...
在NXP官网申请CodeWarrior 5.1 License的过程涉及到一系列操作步骤,既需要操作者对NXP官网有一定的了解,也需要对CodeWarrior软件及其 License机制有一定的认识。下面,我们将详细介绍从注册邮箱、创建NXP账号到...
视频介绍codewarrior 10.5创建工程的方法 后续上传资源包括codewarrior的烧写和debug,是以此为基础的。
Codewarrior是Freescale公司推出的一款强大的软件开发工具,用于编写、调试和优化嵌入式应用软件。本文旨在提供关于如何使用Codewarrior软件对xs128芯片进行程序烧写的手册,以下知识点将围绕该主题展开。 ### 新...
codewarrior烧写文件方法
CodeWarrior是一款强大的嵌入式开发工具,由Metrowerks公司开发,后被飞思卡尔(现为恩智浦半导体)收购。本教程将深入介绍如何使用CodeWarrior进行有效的编程和调试,帮助开发者更好地理解和掌握这款工具。 1. **...
### CodeWarrior 使用教程知识点详解 #### 一、CodeWarrior 概述 - **功能简介**:CodeWarrior 是一款强大的集成开发环境(Integrated Development Environment, IDE),主要用于C/C++编程,同时也支持Java开发...
### Warrior Field Operations Manual知识点 #### 一、简介与版权信息 - **软件名称与版本**:Scientific Data Systems, Inc.发布的Warrior Software Version 7.0 - Standard Cased Hole Field Operations Manual...
** Codewarrior 使用指南 ** Codewarrior是一款由NXP(原飞思卡尔)公司推出的集成开发环境(IDE),特别适用于8位和16位微控制器的编程,包括但不限于飞思卡尔的MCU系列,如DG128和XS128等。在智能车辆控制系统和...
《深入理解Codewarrior for HCS12 V4.6:飞思卡尔微控制器的仿真调试利器》 Codewarrior for HCS12 V4.6是一款专为飞思卡尔(现已被NXP半导体收购)HCS12系列微控制器设计的集成开发环境(IDE),它集成了编译器、...
CodeWarrior5.1特别版,适用于飞思卡尔s12系列芯片